תמונת שער.png


תמונת מקור - Leonardo AI

אפתח את המאמר במילי דאורייתא:

א. איתא במתניתין (מסכת פאה פרק ו משנה א) "בֵּית שַׁמַּאי אוֹמְרִים, הֶבְקֵר לָעֲנִיִּים, הֶבְקֵר. וּבֵית הִלֵּל אוֹמְרִים, אֵינוֹ הֶפְקֵר, עַד שֶׁיֻּפְקַר אַף לָעֲשִׁירִים, כַּשְּׁמִטָּה".

ב. בתלמודא דארץ ישראל נתבאר יסוד מחלוקתם של בית שמאי ובית הלל, וז"ל התלמוד ירושלמי:
"רִבִּי חִייָא בְשֵׁם רִבִּי יוֹחָנָן, טַעֲמַיְהוּ דְּבֵית שַׁמַּאי לֶעָנִי וְלַגֵּר, מַה תַלְמוּד לוֹמַר תַּעֲזוֹב אוֹתָם?
יֵשׁ לָךְ עֲזִיבָה אֲחֶרֶת כְּזוּ. מַה זוּ לָעֲנִייִם וְלֹא לָעֲשִׁירִים. אַף מַה שֶׁנֶּאֱמַר בְּמָקוֹם אַחֵר לָעֲנִייִם וְלֹא לָעֲשִׁירִים.

אָמַר רִבִּי שִׁמְעוֹן בֶּן לָקִישׁ טַעֲמַייְהוּ דְּבֵית הִלֵּל תִּשְׁמְטֶנָּה וּמַה תַלְמוּד לוֹמַר וּנְטַשְׁתָּהּ?
יֵשׁ לְךָ נְטִישָׁה אֲחֶרֶת כְּזוּ. מַה זוּ בֵּין לָעֲנִייִם בֵּין לָעֲשִׁירִים. אַף מַה שֶׁנֶּאֱמַר בְּמָקוֹם אַחֵר בֵּין לָעֲנִייִם בֵּין לָעֲשִׁירִים.

והלכתא כבית הלל, כמבואר בשולחן ערוך (חושן משפט- סימן רע"ג סעיף ה)

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

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

וכיצד דין ההפקר? כל הקודם וזכה בו - קנהו לעצמו ונעשה שלו.

ואפילו זה שהפקיר דינו בו כדין כל אדם אם קדם וזכה בו קנהו". עכ"ל.

והנה, בהא מילתא שכתב הרמב"ם שדין הפקר כמו "נדר", כבר נשתברו בו קולמוסים רבים בפילפולא דאורייתא כדרכה של תורה, ואזכיר מקצתם של הנהו רבני קשישאי מלכי ארץ(מאן מלכי רבנן) קצות החושן סימן רע"ג ס"ב, שערי יושר שער ה פרק כ"ג, ובספר יד המלך על הרמב"ם, ובערוך לשולחן חו"מ סימן רע"ג סק"ד. תן לחכם ויחכם עוד…

ד. עוד פסק השולחן ערוך שם (סעיף י"א) וז"ל: "דבר המופקר שבא אחד ושמרו והיה מביט בו שלא יטלנו אדם, לא זכה עד שיגביהנו אם הוא מטלטל או יחזיק בקרקע כדרך שקונים הלקוחות".

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

וכל הקודם זוכה!

הכול תלוי ועומד בסדר הקדימה לקניין של אותו דבר המופקר…

ולאחר שאדם אחד הגביה(שמדובר במיטלטלין) את החפץ המופקר. הרי שזכה בחפץ זה ומעתה הוא שלו ובחזקתו וכל שם "הפקר" שהיה בחפץ זה - פקע ואינו רלוונטי עוד.(אא"כ הלה שהגביהו יפקירנו גם הוא…)

וכעת, בואו נראה איך כל הנ"ל קשור לאקסל ולעולמן של הפונקציות…

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

הדרך הידועה ביותר היא - פונקציית if מקונן.

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

מוכנים???
קדימה התחלנו…

פונקציית switch:

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

1. בפונקציה זו כותבים פעם אחת בלבד בארגומנט הראשון((expression) - את התא שעליו יש לבצע את הבדיקה (מהבחינה הזו מדובר בקיצור דרך מאוד משמעותי במבנה הפונקציה לעומת if מקונן או ifs).

2. כל שנותר הוא להריץ תנאי ראשון ואת התוצאה שיש להחזיר. וכן תנאי שני וכו…
כל זאת מארגומנט השני והלאה. כאשר כל תנאי מוזן בזוג ארגומנטים (value1, result1 וכו').

3. הפונקציה הזו יכולה לחשב עד 126 "זוגות" של תנאי ומה להחזיר כאשר מתקיים התנאי.

4. הפונקציה קיימת בגרסאות אקסל 2016 ומעלה, (וכמובן ב)אופיס 365 וכן בגוגל שיטס.
(זהו גם יתרון מסוים לעומת ifs שזמינה באקסל מגרסת 2019 ומעלה).

5. החיסרון הגדול שיש בפונקציה זו, שלא ניתן לבצע בה חישוב מסוג "אופרטור לוגי" כמו גדול/קטן מ...על ידי > או <.
הפתרון לכך. הוא בהצבת פונקציית true בארגומנט הראשון.

6. הארגומנט האחרון בפונקציה הוא Default. בארגומנט זה ניתן להזין את הערך שיוחזר במידה ולא מתקיים שום תנאי.
(יש כאן יתרון מסוים , בפונקציית ifs יתרון זה לא קיים ויש להזין זאת בפונקציית ifna כפי שאכתוב להלן).

פונקציית ifs:

1.
בפונקציה זו יש לכתוב בכל צמד ארגומנטים את התנאי (שמוחזר true/false) שיש לבדוק בתא מסוים וכן את ההחזר אם מתקיים תנאי זה.
לדוגמא: הארגומנט הראשון - logical_test1 והארגומנט השני- value_if_true1.

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

3. פונקציה זו זמינה החל מגרסת אקסל 2019 ומעלה, (וכמובן ב) אופיס 365 וכן בגוגל שיטס.

4. כאשר לא מתקיים שום תנאי, הפונקציה תחזיר שגיאת n/a. וכאשר מעוניינים במקום זאת להחזיר תא ריק, יש לעטוף את הפונקציה בפונקציית ifna למשל…

ועד כאן להקדמה…

מה שמיוחד/נפלא בפונקציות אלו. הוא בדוגמה המצורפת בצילומי מסך כאן(מתוך הגיליון שיטס בלינק להלן).

פונקציית switch:

תמונה גיליון swich.png


פונקציית ifs:

תמונה גיליון ifs.png


בשני צילומי מסך אלו ניתן לראות כי בטבלה 1 ו 2 הצבתי בעמודה B את אותם ערכים בדיוק.
אבל התוצאות (בעמודה C)בתאים הצהובים המסומנים שונות.

אז ראשית כדאי ללמוד את הפונקציות מתחילתן לסופן (כמובן משמאל לימין)...

בעמודות E-F-G יצרתי פילוח מדויק של רשימת 3 התנאים האם הם מתקיימים...
ומה שהכי מעניין כאן הם התאים שציינתי בהם "לא רלוונטי"

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

ואם תשאלו, למה זה כל כך משנה הסדר?

התשובה היא-שהלוגיקה /המנגנון בפונקציות אלו הוא לחשב את כל התנאים ברמת העיקרון אך על בסיס כל הקודם…
אני אסביר: פונקציית switch/ifs עוברת וסוקרת את התנאי הראשון. אם הוא לא מתקיים - אז היא ממשיכה לבדוק את התנאי השני וכו' וכו'.

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

אם נחזור להתבונן שוב בתאים המסומנים בצהוב.

בטבלה 1:

התנאי השני הוא -אם הערך בתא B4 גדול מ 10 מוחזר בו התוצאה "ב".

האם המספר 20 עונה על התנאי?
התשובה היא -כן!

ולכן למרות שבתנאי השלישי ישנה התייחסות מפורשת לגבי המספר 20 (להחזיר "ג").זה פשוט לא מעניין בכלל את הפונקציה.

בטבלה 2:

סדר החישוב הוא שונה .מהסכום הגדול זה יורד בהדרגה למספר הקטן.
וכיון שתנאי ראשון מתקיים,(כלומר שהערך בתא B13 הוא 20)לכן מוחזר "ג" בלבד.
כל זאת למרות שגם תנאי ב הוא נכון ויכול להיות רלוונטי לחישוב.

שימו לב. התאים שמסומנים בצבע תכלת הם מוחזרים ריקים "".
ההוראה לכך נמצאת (כאמור לעיל) בארגומנט האחרון של פונקציית switch / על ידי פונקציית ifna העוטפת את פונקציית ifs.

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

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

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

ולהבדיל…אם נערוך אנלוגיה לאקסל ולעולמן של הפונקציות, ניתן לראות בפונקציות ifs / switch מכנה משותף לאותן עקרונות הנ"ל.
אנו רואים כי כל כלל (תנאי) וכלל שנכתב בארגומנטים של הפונקציות יש בו כדי "להכריע" באופן בלעדי מה יהא ערך ההחזר מהפונקציה.
כל כלל שנכתב הוא יכול "לזכות" בבלעדיות זו -"בכוח" בלבד, כלומר בפוטנציאל…

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

כל הקודם זוכה…כן…זה תקף גם באקסל/שיטס.

זה מעניין ונפלא…
תחשבו על זה…


אחתום "במרגניתא טבא" אפרופו דין הפקר שהוזכר לעיל.
אתם יודעים מי נמשלה בדברי רבותינו ז"ל להפקר?
התשובה היא - התורה הקדושה!

והיינו הן לגבי "החפצא" ,כלומר גופה של תורה ואותיותיה הקדושות, והן לגבי "הגברא" כלומר לכל יהודי הלומד את התורה.

וכך אמרו רבותינו ז"ל במדרש רבה (במדבר פרשה א' .ז):
"וַיְדַבֵּר ה' אֶל משֶׁה בְּמִדְבַּר סִינַי, לָמָּה בְּמִדְבַּר סִינַי? מִכָּאן שָׁנוּ חֲכָמִים בִּשְׁלשָׁה דְבָרִים נִתְּנָה הַתּוֹרָה, בָּאֵשׁ, וּבַמַּיִם, וּבַמִּדְבָּר…

וְלָמָּה נִתְּנָה בִּשְׁלשָׁה דְבָרִים הַלָּלוּ, אֶלָּא מָה אֵלּוּ חִנָּם לְכָל בָּאֵי הָעוֹלָם כָּךְ דִּבְרֵי תוֹרָה חִנָּם הֵם, שֶׁנֶּאֱמַר הוֹי כָּל צָמֵא לְכוּ לַמַּיִם,

דָּבָר אַחֵר, וַיְדַבֵּר ה' אֶל משֶׁה בְּמִדְבַּר סִינַי, אֶלָּא כָּל מִי שֶׁאֵינוֹ עוֹשֶׂה עַצְמוֹ כַּמִּדְבָּר, הֶפְקֵר, אֵינוֹ יָכוֹל לִקְנוֹת אֶת הַחָכְמָה וְהַתּוֹרָה, לְכָךְ נֶאֱמַר: בְּמִדְבַּר סִינָי." עד כאן לשון המדרש.

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

אנו מורגלים שישנו זוכה אחד בהפקר על ידי שעשה מעשה קנין.
אך התורה היא נמשלה להפקר כזה שיש מקום לכל יהודי ויהודי לזכות בתורה - בלימוד וקנין התורה.
הפקר לכל… כל אחד יכול לזכות (כמובן על פי דרכי ו-מ"ח קנייני התורה) וללא הגבלה…

אין אדם נוגע במוכן לחברו… כל אחד נוטל את חלקו בתורה השייך לו משורש נשמתו.

כי בתורה יש שישים ריבוא אותיות (כדברי הזוהר חדש דף צ"א ע"א), ומנגד - "כלל ישראל" מונה שישים ריבוא נשמות. וידוע מה שדרשו בעלי הרמז והקבלה - ישראל נוטריקון יש שישים ריבוא אותיות לתורה.

על כך אנו מתפללים ומבקשים "ותן חלקנו בתורתך"... חלקנו דייקא-השייך לכל אחד ואחד משורש נשמתו.

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

לינק הכולל הסבר אודות פונקציות ifs & switch באקסל / שיטס - מצורף כאן.