כל אחד נתקל בצורך להשוות בין רשימות ולסנן רק את אלא שלא מופיעים.
אם רשימת תלמידים, רשימת מספרי טלפון, רשימת קניות או אפילו משימות בין בוצעו או לא.
ישנם כמה פתרונות לעשות זאת, רובם כוללים טורי עזר, העתק הדבק ובטח יותר משלב אחד.
הפתרון המתואר כאן על ידי, כולל נוסחה אחת המורכבת משלוש פונקציות, ללא טורי עזר, ללא העתק הדבק וללא סינון תוצאות.
השוואה בין שתי רשימות - google sheets
תאור מקרה:
למספר אנשי שיווק קיימת רשימה אחת של מספרי טלפון שעליהם לעשות בכדי לעבוד ביעילות, כל איש שיווק עובד ממקום אחר וכולם עובדים על אותו הקובץ מרחוק, הם עובדים לפי כל הקודם זוכה ולא חילקו את המספרים בינהם.
בכל פעם שהם מבצעים שיחת טלפון מתוך ה"רשימה המקורית" הם רושמים את המספר שביצעו ב"רשימה לסינון".
אנשי השיווק צריכים רשימה דינמית של מספרים לאחר סינון שבכל פעם שמישהו מוסיף מספר ברשימה לסינון הוא יורד מהרשימה לביצוע, כלומר בודק לאילו מספרים נשאר עוד להתקשר.
הפתרון:
רשימת פונקציות:
הפונקציה ARRAYFORMULA - מאפשרת להציג ערכים שהתקבלו מנוסחת-מערך בתוך שורות ו/או עמודות, ולהפעיל על מערכים פונקציות שלא נועדו להצבת מערכים.
הפונקציה FILTER - מחזירה גרסה מסוננת של טווח המקור, כלומר, מחזירה רק שורות או עמודות שעונות על התנאים שצוינו.
הפונקציה COUNTIF - סופרת ערכים בטווח בהתאם לתנאי מסוים.
חיבור שלוש הפונקציות:
=Filter(B4:B21,ArrayFormula(Countif(D4:D21,B4:B21))=0)
מה שהנוסחה עושה היא ראשית בודקת ע"י ספירה (COUNTIF) אילו מספרים מ"הרישמה לסינון" מופיעים ב"רישמה המקורית".
מאחר וזהו מערך מספרים אחד שנספר כנגד מערך תנאים שני (ולא כנגד תנאי אחד) יש להוסיף את הפונקציה שמגדירה שזוהי נוסחאת מערך (ARRAYFORMULA).
כל זה עטוף בפונקצית (FILTER) לסינון הערכים השווים לאפס, כלומר הערכים שלא נספרו ברשימה המקורית.