פונקציית and לא רלוונטית במקרה כאן
צריך לעשות פונקציית if מקונן.
3 תנאים שכולם פועלים ותקפים.
שלום לכל חברי הפורום.
אשתף אתכם כאן את אשר עלה בליבי ומוחי לגבי הסוגייה של
פונקציית Switch
ובכן,הוזכר (לא אחת..)בפורום זה את פונקציית if "מקונן".(הציטוט לעיל הוא אחד המקרים...)
באקסל כמו באקסל...ניתן להגיע לתוצאה גם בדרכים שונות.
ניתן לבצע זאת גם על ידי פונקציית ifs או על ידי פונקציות vlookup/xlookup ועוד..
אבל הפעם,באתי לדבר על פונקצייה שדווקא פחות מוכרת (גילוי נאות,גם אני הכרתי אותה רק בימים האחרונים...).אך יש בה הרבה לוגיקה ועומק,וכאמור לעיל אני מדבר על פונקציית switch
אז ראשית,כמה מילים על הפונקצייה:
א.בפונקצייה זו ניתן לכתוב פעם אחת בארגומנט הראשון את התא שעליו יש לבצע את הבדיקה (מהבחינה הזו מדובר בקיצור דרך
מאוד משמעותי במבנה הפונקצייה לעומת if מקונן)
ב.כל שנותר הוא להריץ תנאי ראשון ואת התוצאה שיש להחזיר.וכן תנאי שני וכו...
הפונקצייה הזו יכולה לחשב עד 126 "זוגות" של תנאי ומה להחזיר.
ג.הפונקצייה קיימת בגירסאות אקסל 2019 ואופיס 365 וכן בגוגל שיטס.
החיסרון הגדול שיש בפונקצייה זו שלא ניתן לבצע בה חישוב מסוג "אופרטור לוגי" כמו גדול/קטן מ...על ידי > או <.
הפיתרון לכך.הוא בהצבת פונקציית true בארגומנט הראשון.
ועד כאן להקדמה....
מה שמיוחד ונפלא (ועבורי היה לנושא מחקר לא פחות "ממרתק"...) בפונקצייה זו .הוא בדוגמא שאציג בצילום מסך הבא:
בטבלה 1 ו2 הצבתי בעמודה b את אותם ערכים בדיוק.אבל התוצאות (בעמודה c)בתאים הצהובים המסומנים שונות כפי שניתן לראות.
אז ראשית כדאי ללמוד את הפונקצייה מתחילתה לסופה (כמובן משמאל לימין)...
בעמודות e-f-g יצרתי פילוח מדויק של רשימת 3 התנאים האם האם מתקיימים...
ומה שהכי מעניין כאן הם התאים שציינתי בהם "לא רלוונטי"
עכשיו.מי שילמד את המבנה פונקצייה בטבלה 1 ובטבלה 2.יגלה שהרעיון המרכזי לפילוח הוא זהה.
רק הסדר נכתב באופן שונה.
ולמה זה משנה הסדר?
התשובה היא-שהלוגיקה /המנגנון בפונקצייה זו הוא לחשב את
כל התנאים ברמת העיקרון אך על בסיס "כל הקודם ...".
אני אסביר:.הפונקצייה עוברת וסוקרת את התנאי הראשון.אם הוא לא מתקיים אז היא ממשיכה לבדוק את התנאי השני.וכו וכו.
אך אם התנאי הראשון מתקיים,שם נעצרת פעולת הבדיקה של הפונקצייה.
אם נחזור שוב לתאים המסומנים בצהוב.
אז בטבלה 1.כיון שבתנאי השני כל מי שגדול מ10 מוחזר בו התוצאה "ב".
אז המספר 20 עונה על התנאי.
וכך למרות שבתנאי השלישי ישנה התייחסות
מפורשת לגבי המספר 20 (להחזיר "ג").זה פשוט לא מעניין בכלל את הפונקצייה.
בטבלה 2.סדר החישוב הוא שונה .מהסכום הגדול זה יורד בהדרגה למספר הקטן.
וכיון שתנאי ראשון מתקיים .מוחזר "ג" בלבד.אפילו שגם תנאי ב נכון ויכול להיות רלוונטי לחישוב.
(באגב.התאים שסימנתי בירוק המוחזרים בתוצאה של ריק.הם תוצאה של התוספת בסיום הפונקצייה. וזאת על מנת להעלים את שגיאת n/a המוחזרת כאשר אין התאמה בכלל לתנאים בפונקצייה)
רבותי.הלוגיקה הנ"ל היא בעלת חשיבות רבה בכל פעם שנרצה לבצע פילוח כל שהוא בעזרת פונקציית switch.
תכנון מבנה הפונקצייה וארגומנטים חייבים להיות בקפדנות רבה ולאחר מחשבה.כי כאמור,סדר הארגומנטים הוא מילת המפתח כאן.
מצורף כאן גיליון דוגמא.נסו זאת בעצמכם.תהנו מהלוגיקה הנפלאה.
בהצלחה ומועדים לשמחה!