כיצד נחזיר רק חלק מעמודות הטבלה המקורית באמצעות הפונקציה FILTER
הפונקציה FILTER מיועדת לסינון רשומות (שורות) על פי קריטריונים,
וניתן להחזיר באמצעותה את כל העמודות של טבלת הנתונים, או חלק מהעמודות, בתנאי שהן רציפות.
אבל מה אם נרצה להחזיר טבלה שכוללת פרט לסינון השורות הסטנדרטי רק חלק מהעמודות, והן לא צמודות זו לזו?
יש לכך כמה פתרונות.
אפשר להשתמש ב FILTER עטוף ב FILTER, כפי שמוסבר במאמר הזה
או להשתמש בפונקציה בפונקציה CHOOSE, כפי שיוסבר להלן:
אז מה יש לנו?
טבלת קריאות חכמה בשם Calls שמתעדת את הפניות למרכז התמיכה:
תא עזר לבחירת הסטטוס על ידי רשימה נפתחת (אימות נתונים):
סדר הפעולות
- שימוש ב UNIQUE כדי ליצור רשימת סטטוסים יחודיים
- יצירת אימות נתונים שמבוסס על הערכים הנ"ל
(במאמר זה לא אחזור על הדרך שבה יצרתי את הרשימה, משום שהיא מפורטת במאמר 'רשימה נפתחת שתלויה ברשימה נפתחת אחרת') - יצירת טבלה שמכילה את העמודות הרלוונטיות בלבד
- סינון שורות הטבלה על פי הקריטריון הרצוי שנבחר בתא שמכיל את הרשימה הנפתחת.
במה נשתמש כדי לפתור את הדרישה?
- אימות נתונים
- UNIQUE
- CHOOSE
- FILTER
ולעבודה…
הרשימה הייחודית ואימות הנתונים כבר קיימים בקובץ.
כעת נשתמש בפונקציה CHOOSE כדי ליצור טבלה שמכילה את העמודות הרצויות מתוך כל עמודות הטבלה המקורית – תאריך, סיבת פניה ותומך.
בשימוש המקורי, הפונקציה CHOOSE מקבלת ערך אינדקס בודד, ואז שולפת את הערכים המתאימים עבורו.
מכיוון שאנחנו מעוניינים בשלוש עמודות, אנחנו צריכים לתת שלושה ערכי אינדקס.
הבעיה היא שהפונקציה מצפה לערך אינדקס אחד. כדי לפתור זאת, נכניס את שלושת הערכים לתוך סוגריים מסולסלים,
כלומר – לתוך מערך. מבחינת האקסל מערך הוא ערך אחד, ולכן הטריק הזה מתקבל ויעזור לנו לקבל את התוצאות הרצויות.
=CHOOSE({1,2,3}, Calls[תאריך],Calls[סיבת פניה],Calls[תומך])
בעצם, באמצעות התחביר {1,2,3} אמרתי לאקסל שאני רוצה להציג שלוש עמודות ובהמשך שייכתי את העמודות התואמות לכל אחד מהערכים:
לערך אינדקס 1 שייכתי את התאריך
לערך האינדקס השני שייכתי את סיבת הפניה
ולערך האינדקס השלישי שייכתי את התומך
אם נלחץ על אנטר, נקבל את הטבלה הימנית על כל הרשומות שלה, אבל רק עבור העמודות שבחרנו:
אז עכשיו יש לנו טבלה, ועליה אנחנו יכולים להפעיל הפונקציה FILTER, כדי לקבל את הרשומות המתאימות.
נניח שאנחנו רוצים לפלטר את הקריאות הפתוחות על פי סטטוס השיחה, נבחר בתא העזר את הסטטוס הרצוי. במקרה שלנו – 'פתוח'
עכשיו נקיף את הפונקציה CHOOSE, שכרגע מהווה את טווח הנתונים, בפונקציה FILTER, באופן הבא:
=FILTER(CHOOSE({1,2,3}, Calls[תאריך],Calls[סיבת פניה],Calls[תומך]),Calls[סטטוס שיחה]=J5)
שימו לב שהפונקציה FILTRER עדיין מקבלת שני ארגומנטים – טבלת הנתונים שמיוצגת על ידי הפונקציה CHOOSE, והתנאי לסטטוס השיחה.
וזו התוצאה שהתקבלה:
אם נשנה את הסטטוס לסגור, זו התוצאה שתתקבל:
שימו לב שלמרות שהסטטוס לא נמצא כלל בטבלה הסופית, יכולנו לסנן על פיו, משום שהוא כן נמצא בטבלה הראשית, שממנה אנחנו גוזרים את התוצאות.
מעוניינים לתרגל עם הקובץ? תוכלו להוריד אותו מכאן
כאן תוכלו ללמוד עוד על הפונקציה FILTER
כאן תוכלו ללמוד עוד על הפונקציה UNIQUE
מעוניינים ללמוד בקורס על פונקציות המערך החדשות?
צרו קשר כאן ואחזור אליכם בהקדם