FILTER על פי שני ערכים כאשר לפחות אחד מהשניים מתקיים
על הפונקציה FILTER למדנו במאמר הזה
וכאן הראיתי לכם איך להחזיר רשומות שעונות על שני קריטריונים בו זמנית ('וגם')
במאמר הזה נראה איך אפשר להחזיר תוצאות על פי שני תנאים שמקיימים ביניהם תנאי של 'או'.
אז מה יש לנו?
טבלת נתונים בשם CallsTbl שמרכזת פרטים שונים על הקריאות שהתקבלו במוקד:
מה אנחנו רוצים להשיג?
טבלה שתציג לנו את כל הקריאות כאשר לפחות אחד משני התנאים מתקיים,
לדוגמה – החזר לנו את כל הקריאות שהסטטוס שלהן הוא 'פתוח', או שסיבת הקריאה היא 'התנתקות'
הקריאה בשורה 9 עונה על התנאי, כי שני התנאים מתקיימים – גם 'קריאה פתוחה', וגם סיבת הפנייה היא 'התנתקות';
הקריאה בשורה 10 עונה גם היא על התנאי, כי למרות שסיבת הפנייה היא 'לקוח חדש', מדובר בקריאה פתוחה, כלומר – לפחות אחד מהתנאים מתקיים, ולכן אנחנו מבקשים להציג אותה;
וכנ"ל הקריאה שבשורה 19, כי למרות שהיא סגורה, הסיבה היא 'התנתקות', כך שלפחות אחד מהתנאים מתקיים גם כאן.
כלומר – ראינו שלוש דוגמאות לשלושה מקרים שונים, שבהם לפחות אחד מהתנאים מתקיים, ולכן נרצה לראות את הרשומה הרלוונטית בטבלה הסופית.
במה נשתמש?
- בפונקציה UNIQUE ליצירת רשימת סטטוסים
- באימות נתונים לבחירת הסטטוס
- בפונקציה FILTER להצגת התוצאות הרלוונטיות
שלב ראשון – אימות נתונים
השלב הזה מורכב משני שלבים:
- יצירת רשימה ייחודית של סטטוסים, שתהווה את הבסיס לרשימה הנפתחת, באמצעות הפונקציה UNIQUE
- שימוש ברשימה כמקור לרשימה הנפתחת.
לא אחזור כאן על הדרך שבה יצרתי את הרשימה, מי שמעוניין להבין איך עשיתי זאת,
מוזמן לקרוא את המאמר 'רשימה נפתחת שתלויה ברשימה נפתחת אחרת', שם התהליך מוסבר בפירוט.
שלב שני – שימוש בפונקציה FILTER
לקבלת התוצאות הרלוונטיות על פי הסטטוס הנבחר
ראשית, נכיר את התחביר של הפונקציה:
=FILTER(ARRAY, INCLUDE, [IF EMPTY])
בחלק הראשון אנחנו מצביעים על הטווח שממנו נרצה לסנן את הנתונים.
מדובר בטבלת הנתונים כולה או בחלק ממנה, אך חשוב שהטווח יהיה רציף
(מיטיבי לכת יכולים להציג בטבלה הסופית נתונים חלקיים שאינם רציפים, אך הידע הזה חורג מהכתוב במאמר זה)
האופרטור השני הוא ביטוי לוגי שאומר לאקסל מה אנחנו רוצים שיכלל בטווח.
לדוגמה – בחר את כל הרשומות שהסטטוס שלהן הוא 'פתוח', כשבמקרה שלנו, אנחנו מעוניינים לקבל את הרשומות שעונות על שני הקריטריונים
האופרטור השלישי מאפשר לנו להחליט מה לעשות אם אף רשומה לא עונה על התנאי,
למשל – להשאיר תא ריק, לכתוב הודעה שאומרת שהטווח ריק וכו' (טווח ריק יציג את הודעת השגיאה CALC#. האפשרות הזאת חוסכת לנו שימוש ב IFERROR))
רגע האמת – שימוש בפונקציה
בדיוק כפי שלמדנו במאמר 'FILTER על פי שתי עמודות – וגם',
אנחנו צריכים לזכור את הלוגיקה – הטבלה מציגה את כל מה שמקבל ערך TRUE בתנאי.
אני מזכירה לכם: באקסל FALSE מציין 0 ואילו TRUE מציין 1, אבל כדאי לדעת שגם כל ערך שגדול מ-1 מציין TRUE
מכאן זה כבר קל…
הבנו שאנחנו צריכים ליצור ערכי TRUE ו FALSE, אבל הפעם במקום להכפיל את הערכים זה בזה, פשוט נחבר אותם,
כך שאם אף אחד מהתנאים לא מתקיים, אזי החיבור של FALSE עם FALSE, או של 0+0 יתן לנו 0, כלומר – FALSE והרשומה לא תוצג.
אבל, אם לפחות תנאי אחד מתקיים, אז החיבור של TRUE ו-FALSE יתן לנו 0+1=1, כלומר TRUE והרשומה תוצג,
וחיבור של TRUE ו-TRUE, שמשמעותו 1+1=2, גם הוא יחזיר לנו ערך TRUE והרשימה תוצג!
ואיך עושים את זה?
אז עכשיו, כשאנחנו מבינים את הלוגיקה, כל מה שנשאר לנו לעשות זה פשוט לחבר את שני התנאים
=FILTER(CallsTbl,(CallsTbl[סטטוס שיחה]=J5)+(CallsTbl[סיבת פניה]=J7),"")
כלומר – ביקשנו להשתמש בפונקציה FILTER על הטבלה CallsTBL, כאשר סטטוס השיחה שווה לערך שכתוב בתא העזר J5, וסיבת הפנייה שווה לערך שנבחר בתא העזר J7.
ובואו נראה איך זה נראה בקובץ שלנו:
כעת נוכל לשנות כל אחד מהתנאים, ולקבל את הטבלה המסוננת, על פי התנאים שקבענו:
מעוניינים לתרגל עם הקובץ? תוכלו להוריד אותו מכאן:
כאן תוכלו ללמוד עוד על הפונקציה UNIQUE
מעוניינים ללמוד בקורס על פונקציות המערך החדשות?
צרו קשר כאן ואחזור אליכם בהקדם