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

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

בדיקת פונקציית LAMBDA בגיליון

אקסל 365

בדיקת פונקציית LAMBDA בגיליון

אקסל 365

איך בודקים פונקציית LAMBDA בגיליון

במאמרים הקודמים ראינו איך כותבים LAMBDA, איפה שומרים אותה, ואיך משתמשים בה.

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

עם זאת, ברוב הפעמים נרצה לכתוב נוסחאות מורכבות יותר, ולכן יהיה לנו קל יותר לבדוק אותן בגיליון עצמו.

אז איך בודקים פונקציית LAMBDA שכוללת פרמטרים ישירות בגיליון?

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

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

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

אז מה יש לנו?

טבלת נתונים:

ושני שדות לפיהם נרצה לסנן את הרשימה:

בניית ה LAMBDA

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

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

1. טווח הטבלה, ובמקרה שלנו A8:F32

2. העמודה שעליה נבדק התנאי הראשון, ובמקרה שלנו – B8:B32

3. העמודה שעליה נבדק התנאי השני, ובמקרה שלנו – C8:C32

4. התא שבו נבחר הפילטר הראשון, ובמקרה שלנו J5

5. התא שבו נבחר הפילטר השני, ובמקרה שלנו J7

השלב הראשון – בחירת הפרמטרים (משתנים)

אני תמיד משתדלת לתת שמות משמעותיים, אבל קצרים, ולכן אקרא להם כך:

1. TBL כדי לציין את הטבלה

2. COL_1 כדי לציין את העמודה הראשונה שאני רוצה לסנן

3. COL_2 כדי לציין את העמודה השנייה שאני רוצה לסנן

4. Fltr1 לפרמטר הראשון שעל פי נסנן את הטבלה

5. Fltr2 לפרמטר השני שעל פי נסנן את הטבלה

אני מזכירה לכם שהשם COL1 הוא שם של תא באקסל, ולכן לא ניתן להשתמש בו כפרמטר.

השלב השני – כתיבת הפונקציה

אתחיל מכתיבת הפרמטרים בפונקציה.

הדרך הקלה ביותר היא לעטוף את הפונקציה הקיימת:

=FILTER(A8:F32,(B8:B32=J5)*(C8:C32=J7),"")

ב-LAMBDA.

=LAMBDA(Tbl,Col_1,Col_2,Fltr1,Fltr2,FILTER(A8:F32,(B8:B32=J5)*(C8:C32=J7),""))

לצורך כך מיקמתי את הסמן אחרי הסימן "=", הקלדתי LAMBDA ואת הפרמטרים שלה,
ואת הפונקציה שכבר קיימת לנו השארתי כפרמטר האחרון, שהוא פרמטר החישוב.

לא לשכוח לסגור את הפונקציה החדשה בסוגריים!

כעת נחליף את ההפניות לטווחים לשמות המשתנים שיצרנו, וכך זה נראה:

=LAMBDA(Tbl,Col_1,Col_2,Fltr1,Fltr2,FILTER(Tbl,(Col_1=Fltr1)*(Col_2=Fltr2),""))

בדיקת הפונקציה

נלחץ על אנטר, ולמרות שאנחנו מצפים לקבל תוצאה, מתקבלת השגיאה #CALC!

למה?

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

כדי לעשות זאת, עלינו להוסיף את הפונקציה למנהל השמות, כפי שלמדנו במאמרים הקודמים,
אולם לעתים נרצה לבדוק אותה קודם בגיליון עצמו, ואת זה עושים על ידי הוספת הפרמטרים מיד בסיום הפונקציה, באופן הבא:

=LAMBDA(Tbl,Col_1,Col_2,Fltr1,Fltr2,FILTER(Tbl,(Col_1=Fltr1)*(Col_2=Fltr2),""))(A8:F32,B8:B32,C8:C32,J5,J7)

ואכן, קיבלנו את התוצאות הרצויות:

שמירת הפונקציה במנהל השמות

לאחר שבדקנו שהפונקציה עובדת כראוי, נעתיק אותה (ללא הפרמטרים לבדיקה) אל מנהל השמות, וניתן לה שם משמעותי, לדוגמה – FilterBy2Cols

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

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

אני מתחילה להקליד את שמה, ובוחרת אותה מתוך הרשימה:

(שימו לב לסימן הטבלה עם התאים הכחולים, שמראה לנו שמדובר בשם ממנהל השמות)

כעת נקליד את הפרמטרים הרצויים:

=FilterBy2Cols(A8:F32,B8:B32,C8:C32,J5,J7)

ונלחץ על אנטר.

נקבל את התוצאה הבאה:

אז מה בעצם חסכנו כאן?

חסכנו מהמשתמש להבין את הלוגיקה של FILTER על פי שתי עמודות, ואפשרנו לו לבחור את הטווחים הרצויים בלבד, בלי לכתוב את הפונקציה עצמה.
ה-LAMBDA שיצרנו תעשה את כל העבודה הקשה.

כמו כן, יהיו פעמים, בנוסחאות ארוכות במיוחד, שהפונקציה שכתבנו ב-LAMBDA תהיה קצרה משמעותית מהקלדת הפונקציה בגיליון, בעיקר אם יש חזרה על פרמטרים.

טיפים

  • כשאנחנו מנסים לערוך פונקציה בחלונית 'מפנה אל', כל פעולה שאנחנו עורכים,
    בדרך כלל תזוזה עם העכבר כדי להגיע למקום הנכון בנוסחה, מוסיפה הפניות מיותרות, ומשבשת את הכתוב.
    אם נלחץ על F2, החלונית תעבור למצב עריכה, ותאפשר לנו תזוזה עם העכבר.
  • כשמדובר בעריכה של פונקציות ארוכות ומסובכות אני נוהגת להעתיק אותן אל ה NOTEPAD, ושם להשתמש באפשרות ההחלפה המובנית כדי להחליף את כל ההפניות לשמות המשתנים.
    אני מוצאת שהדרך הזאת קלה יותר מאשר להתחיל להחליף בתוך האקסל, שלא תמיד נותן לנו את מה שרצינו…
    מקמו את הסמן בתחילת המסמך, לחצו על Ctrl+H לפתיחת חלונית ההחלפה, הקלידו את הערכים המתאימים ולחצו על Find Next. רק אחרי אתם בטוחים שהטווח הנכון סומן, לחצו על Replace.
    אני לא ממליצה לכם להשתמש ב Replace All, כי אנחנו רוצים לוודא שהטווח הנכון מסומן.
  • כאשר שומרים את הפונקציה במנהל השמות, אפשר לקבוע שהיא תחול בגיליון הספציפי או בכל חוברת העבודה.
    אבל אם נרצה להעתיק אותה לקובץ אחר, כל מה שצריך לעשות זה להעתיק גיליון כלשהו לחוברת החדשה, ואז למחוק אותו.
  • אפשר גם לשמור בתבנית, כך שבכל פעם שיפתח קובץ שמבוסס על התבנית הזאת, אפשר יהיה להשתמש בפונקצייה שיצרנו
  • ייתכן שיהיה לכם קל יותר לערוך את הפונקציות או הנוסחאות ב Formual Editor. זהו תוסף שנמצא בחנות התוספים של אקסל,
    ומאפשר עריכה קלה יותר. הדרכה על התוסף חורגת מתחולת מאמר זה.

הפונקציה החדשה תישמר במנהל השמות באופן אוטומטי.

להורדת הקובץ לחצו כאן

 

דילוג לתוכן