תמונת שער.png


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

האם אתם לא לא מכירים את האופרטור השלילי הכפול (double negative) בנוסחאות האקסל?

אקצר מעט את השאלה -האם אתם כן מכירים את האופרטור השלילי הכפול (double negative) בנוסחאות האקסל?

וזה כמו לשאול -האם אתם מכירים את האופרטור השלילי הכפול (double negative) בנוסחאות האקסל?

לא באתי להשתעשע בלשון מסורבלת…

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

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

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


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

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

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

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

בואו נתחיל:

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

שלב 1:

תמונה 1 אקסל.png


אתחיל בטווח תאים A1:A5
בטווח זה מופיעים שמות שונים.

בתא A8 אנו מבקשים מפונקציית len לספור את ס"ך התווים שבכל תא (אני מדגיש!) מתא A1 עד A5.

קוד:
=LEN(A1:A5)

עד כאן הכול מצוין ומובן.

שלב 2:

כעת אנו נוסיף בתא A15 תנאי למשוואה ,התנאי הוא לכלול בספירה רק תאים המכילים מעל 3 תווים.

קוד:
=LEN(A1:A5)>3

תמונה 2 אקסל.png


כאן כללי הספירה כבר שונים. יש כאן תנאי!

תנאי נמדד בהחזר של true או false.


סה טו!

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

הפונקציה מחזירה בשרשור (כלומר "כמערך") את סדר התאים והתשובה האם מדובר ב true או false?

הלאה, הבה נתקדם שלב…

שלב 3:

אם נרצה לדעת במספר כמה תאים בסה"כ הוחזר true
לכאורא הפתרון הוא לעטוף את כל הסיפור הזה בפונקציית sumproduct.

אז הנה, זה בדיוק מה שכתבתי זאת בתא A22…

קוד:
=SUMPRODUCT(LEN(A1:A5)>3)

תמונה 3 אקסל.png


הופ!! התשובה היא 0 !!!

מה קרה פה בדיוק?


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

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

ומה קרה פה ?

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

אבל הפונקציה "לא יודעת"/לא יכולה לבדה לבצע את ההמרה הזו מביטוי לוגי לערך מספרי.

שהפונקציה עושה חיבור של כל התוצאות ,אז כל התוצאות שוות ל 0 .

0 = 0 + 0 + 0 + 0 + 0

מה הפתרון לכך?

תכף תראו…

שלב 4:

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

איזה push קטן…

תמונה 4 אקסל.png


כאן בתא A25 זה קורה סוף סוף בעזרת טכניקת Double unary , התוצאה היא 3!

קוד:
=SUMPRODUCT(--(LEN(A1:A5)>3))

3 פעמים של החזר true .

כל true שכזה שווה ערך ל 1.

אבל תשאלו, איך זה קורה? מה מתחולל פה מאחורי הקלעים?

ובכן , המינוס הראשון (איזה מינוס שנבחר כאן, הימני או השמאלי) הופך ערך בוליאני של true לערך של 1- וערך בוליאני של false לערך של 0.

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

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


בואו נראה ונחשב יחד את התוצאות…

מינוס 1 * מינוס 1 = 1.

(זוכרים מה שכתבתי לעיל? במתמטיקה- מינוס * מינוס שווה חיובי)

0 כפול 0 = 0.

ולכן כל ערך true הופך למספר 1 בסיומו של ההליך.

ומאידך, כל ערך false הופך למספר 0 בסיומו של ההליך.

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

0
1
1
0
1

אם כעת נחבר את כל התוצאות 0+1+1+0+1 התוצאה היא - 3.

זו בדיוק תשובתה של פונקציית sumproduct בתא A25.!!!


אדגיש כאן נקודה חשובה כי כל ההסבר כאן תקף לגיליון אקסל בלבד.

בגיליון שיטס- ישנם חשבונות אחרים והכרח לעטוף את הפונקציות בפונקציית arrayformula וזה כבר משנה את כל כללי המשחק והלוגיקה…

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


עד כאן!

מקווה שנהניתם מהיופי והלוגיקה של טכניקת Double Negative באקסל…

לסיום, בדוגמא לעיל ראינו שיש צורך "בתיווך" בין הלוגיקה הבוליאנית (קרי, true או false) לערכים בינארים (קרי 1 או 0) עבור פונקציית sumproduct.

והתיווך הזה נעשה על ידי double negative.

אבל תחשבו על זה, גם האדם להבדיל….לפעמים יודע במוחו/בשכלו על מעשה x שהוא אמת או שקר (true או false).אבל זה רק ברמת "הידיעה".

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

ועל כך ציוותה התורה הקדושה: (דברים ד. ל"ט)

"וְיָדַעְתָּ הַיּוֹם וַהֲשֵׁבֹתָ אֶל לְבָבֶךָ כִּי ה' הוּא הָאֱלֹקים בַּשָּׁמַיִם מִמַּעַל וְעַל הָאָרֶץ מִתָּחַת אֵין עוֹד"

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

מעשיו של אדם - אלו הנעשים בחדרי חדרים מבטאים את מדרגתו הפנימית האמיתית, בניגוד לחוכמתו,

כי הרי אפשר לאדם לדעת אודות מציאות הרבה מדרגות עליונות מבלי שתבואנה אצלו לידי הגשמה מעשית כלל.

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

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

ממש לא!

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


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


ואנו מורגלים לפרש/לחשוב שמדובר כאן על עונש…

אך הרב דסלר זצ"ל (שם) מסביר שמדובר פה בחסד ממש!

ומדוע?

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

ברגע שקדושת הכלי גבוהה/היא למעלה מקדושת זה שמשתמש בו - יש כאן חילול (מלשון חלל- כלומר פַּעַר) הקדושה (של הכלי).

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

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

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

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

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

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

והדברים נפלאים מאוד ונוקבים…

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

"וְיָדַעְתָּ הַיּוֹם וַהֲשֵׁבֹתָ אֶל לְבָבֶךָ…"

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