התקשרו אלינו: 052-2928949
ימים א'-ה' בין השעות 9:00-17:00

התקשרו אלינו: 052-2928949 א-ה 9:00-17:00

FILTER על פי שתי עמודות – 'וגם'

אקסל 365

FILTER על פי שתי עמודות – 'וגם'

אקסל 365

FILTER על פי שני ערכים

הפונקציה FILTER יודעת להחזיר טבלה על פי תנאי, כפי שראינו במאמר הזה

במאמר הנוכחי נראה איך אפשר להחזיר תוצאות על פי שני תנאים, ובדוגמה שלנו – גם על פי הסטטוס וגם על פי סיבת הפניה

מה יש לנו?

טבלת נתונים בשם CallsTbl שמרכזת פרטים שונים על הקריאות שהתקבלו במוקד:

מה אנחנו רוצים להשיג?

טבלה שתציג לנו את הקריאות מסוננות על פי סטטוס וסיבת הפניה, כך:

במה נשתמש?

  • בפונקציה UNIQUE ליצירת רשימת סטטוסים
  • באימות נתונים לבחירת הסטטוס
  • בפונקציה FILTER להצגת התוצאות הרלוונטיות

שלב ראשון – אימות נתונים

השלב הזה מורכב משני שלבים:
יצירת רשימה ייחודית של סטטוסים, שתהווה את הבסיס לרשימה הנפתחת, באמצעות הפונקציה UNIQUE
ושימוש ברשימה כמקור לרשימה הנפתחת.
לא אחזור כאן על הדרך שבה יצרתי את הרשימה.
מי שמעוניין להבין איך עשיתי זאת, מוזמן לקרוא את המאמר 'רשימה נפתחת שמבוססת על רשימה נפתחת אחרת', שם התהליך מוסבר בפירוט.

שלב שני – שימוש בפונקציה FILTER לקבלת התוצאות הרלוונטיות על פי הסטטוס הנבחר

ראשית, נכיר את התחביר של הפונקציה:

=FILTER(ARRAY, INCLUDE, [IF EMPTY])

בחלק הראשון אנחנו מצביעים על הטווח שממנו נרצה לסנן את הנתונים.
מדובר בטבלת הנתונים כולה או בחלק ממנה, אך חשוב שהטווח יהיה רציף
(מיטיבי לכת יכולים להציג בטבלה הסופית נתונים חלקיים שאינם רציפים, אך הידע הזה חורג מהכתוב במאמר זה)
האופרטור השני הוא ביטוי לוגי שאומר לאקסל מה אנחנו רוצים שיכלל בטווח.
לדוגמה – בחר את כל הרשומות שהסטטוס שלהן הוא 'פתוח', כשבמקרה שלנו, אנחנו מעוניינים לקבל את הרשומות שעונות על שני קריטריונים;
האופרטור השלישי מאפשר לנו להחליט מה לעשות אם אף רשומה לא עונה על התנאי,
למשל – להשאיר תא ריק, לכתוב הודעה שאומרת שהטווח ריק וכו' (טווח ריק יציג את הודעת השגיאה CALC#. האפשרות הזאת חוסכת לנו שימוש ב IFERROR))

רגע האמת – שימוש בפונקציה

בשלב הזה אני רוצה ליצור את הטבלה המסוננת בהתאם למה שנבחר באימות, אבל הפונקציה הבסיסית מאפשרת לבחור בתנאי אחד בלבד.
אז רגע לפני שאנחנו מרימים ידיים, כדאי שנבין איך עובדת הפונקציה, מאחורי הקלעים.
כעקרון, הטבלה מציגה את כל מה שמקבל ערך TRUE בתנאי.
בדוגמה הפשוטה של תנאי אחד, השווינו את סטטוס השיחה למה שכתוב ב J3. כל שורה שבה הוחזר הערך TRUE,
כלומר – כל שורה שבה התנאי התקיים, תיכנס לטבלה הסופית, ואילו שורות שבהן התנאי לא מתקיים, לא יכנסו לטבלה הסופית.
אם נסמן את החלק הלוגי בנוסחה, נוכל לראות רשימה של ערכי True ו False:

קל לראות שהרשומה הראשונה קיבלה את הערך FALSE, כלומר, הסטטוס שלה שונה מ'פתוח',
ואילו הרשומה השנייה קיבלה את הערך TRUE, משום שהסטטוס שלה הוא פתוח.
אז בעצם מה שמתרחש מאחורי הקלעים זה שאקסל עוברת שורה שורה, ומעריכה את התנאי. השורות שבהן התנאי מתקיים, הן השורות שיוצגו בטבלה הסופית.

חשוב לדעת

באקסל FALSE מציין 0 ואילו TRUE מציין 1

מצוין, אבל איך ממשיכים?

אם הבנו שאנחנו צריכים ליצור ערכי TRUE ו FALSE, נחפש נוסחה שתחזיר לנו את הערכים הרצויים, וכאן מגיע הטריק:
ניצור שני תנאים, שכל אחד מהם מקבל ערך TRUE או FALSE ונכפיל אותם זה בזה.
מכיוון שאנחנו רוצים לראות רק רשומות שעונות על שני התנאים, כלומר – שני תנאים שהתוצאה שלהם היא TRUE, המכפלה שלהם צריכה להיות 1.
אם אף תנאי אינו מתקיים, אזי מכפלה של FALSE ב FALSE, או 0 ב-0 תיתן אפס, וכנ"ל גם מכפלה של TRUE ב FALSE, כלומר 0 ב-1, במקרה שבו רק אחד מהתנאים נכון.

אז איך עושים את זה?

במקום התנאי, נכתוב שני תנאים ונכפיל אותם אחד בשני:

=FILTER(CallsTbl,(CallsTbl[סטטוס שיחה]=J5)*(CallsTbl[סיבת פניה]=J7),"")

כלומר – ביקשנו להשתמש בפונקציה FILTER על הטבלה CallsTBL, כאשר סטטוס השיחה שווה לערך שכתוב ב J5, וסיבת הפנייה שווה לערך שנבחר בתא J7.
ייתכן שיהיה לכם קל יותר להבין באמצעות הטבלה הבאה:

ובואו נראה איך זה נראה בקובץ העבודה שלנו:

כעת נוכל לשנות כל אחד מהתנאים, ולקבל את הטבלה שעונה על התנאים

מעוניינים לתרגל עם הקובץ? תוכלו להוריד אותו מכאן.

כאן תוכלו ללמוד עוד על הפונקציה UNIQUE

מעוניינים ללמוד בקורס על פונקציות המערך החדשות?
צרו קשר כאן ואחזור אליכם בהקדם

דילוג לתוכן