תמונת מקור - Leonardo AI
אפתח את המאמר במילי דאורייתא:
א. שבת זו הקרבה ובאה נקראת "שבת שקלים" ובה נקרא בתורה את פרשת מחצית השקל. "כִּי תִשָּׂא אֶת רֹאשׁ בְּנֵי-יִשְׂרָאֵל לִפְקֻדֵיהֶם, וְנָתְנוּ אִישׁ כֹּפֶר נַפְשׁוֹ לַה' בִּפְקֹד אֹתָם, וְלֹא יִהְיֶה בָהֶם נֶגֶף בִּפְקֹד אֹתָם"
ב. במדרש שיר השירים רבה (ז.ג) דרשו רבותינו ז"ל על הפסוק "בטנך ערימת חיטים… אָמַר רַבִּי יִצְחָק מַה חִטִּים הַלָּלוּ כְּשֶׁהֵן יוֹצְאִין לְזֶרַע אֵינָן יוֹצְאִין אֶלָּא בְּמִנְיָן, וּכְשֶׁנִּכְנָסִין מֵהַגֹּרֶן נִכְנָסִין בְּמִנְיָן,
כָּךְ כְּשֶׁיָּרְדוּ יִשְׂרָאֵל לְמִצְרַיִם יָרְדוּ בְּמִנְיָן, שֶׁנֶּאֱמַר (דברים י, כב) בְּשִׁבְעִים נֶפֶשׁ יָרְדוּ אֲבֹתֶיךָ מִצְרָיְמָה, וּכְשֶׁעָלוּ עָלוּ בְּמִנְיָן, שֶׁנֶּאֱמַר (שמות יב, לז): כְּשֵׁשׁ מֵאוֹת אֶלֶף רַגְלִי".
ג. בדיני "תערובות" של דבר איסור בהיתר, ישנם כללים מרובים וסוגיות רחבות ועמוקות מיני ים.
אך אני אתייחס לכלל אחד בלבד (ובקיצור נמרץ).
בשו"ע (יורה דעה סימן ק"י הלכה א) כתב המחבר "דבר חשוב אוסר במינו בכל שהוא והם ז' דברים ואלו הם: אגוזי פרך ורמוני בדן וחביות סתומות וחלפות תרדין וקלחי כרוב ודלעת יונית וככרות של בעל הבית וכן בעלי חיים חשובים הם ואינם בטלים אבל שאר דברים אף על פי שדרכן לימנות הרי אלו עולים כשיעורן. "
וכתב הרמ"א "הגה ויש אומרים, דכל דבר שבמנין דהיינו שדרכו למנותו תמיד אינו בטל (טור בשם ר"י וב"י) וכן נוהגין"
מקור סוגיא זו היא בתלמוד בבלי (מסכת ביצה ג') לגבי ביצה שנולדה ביום טוב שנתערבה באחרות והדין הוא שכולן אסורות. אע"פ שמהתורה מועיל "ביטול ברוב". גזרו חכמים שבדבר שבמנין אפילו באלף לא בטיל.
ההגדרה של "דבר שבמנין" הוא: כל דבר שרגילים למכור אותו במספר של יחידות ולא על פי משקל /נפח/אומד.
והיינו בגלל שכל דבר שנמנה יש לו חשיבות מצד עצמו ולכן גזרו חכמים וקבעו שאפילו באלף לא בטל.
(בשו"ת תרומת הדשן סימן ק"ג כתב "חידוש" שאפילו דבר שנמכר במשקל וכדומה, אך יש בו מנין "מצד מצוותו" כמו נרות חנוכה שרגילים למנותם בכל לילה.גם זה בכלל "דבר שבמנין".
ולכן אם נתערב נר חנוכה לאחר שהודלק ונאסר בהנאה -באחרים הכול אסור בהנאה ואפילו באלף לא בטיל. וכך פסק הרמ"א בחלק אורח חיים סימן תרע"ג סעיף א)
ד. על פי זה ביאר ר' צדוק הכהן מלובלין זצ"ל (פרי צדיק-פרשת שקלים) את המדרש (תנחומא) האומר שפרשת כי תשא, שהיא פרשת שקלים, באה כדי לזקוף ולהרים את ראש בני ישראל, שהכוונה היא שעצם העניין שמונים וסופרים את בני ישראל גורם להם חשיבות, כי כל דבר שסופרים אותו הוא חשוב.
כעת, בואו ותראו איך כל הנ"ל קשור לאקסל ולעולמן של הפונקציות…
ובכן.(להבדיל בין קודש לחול…)אם נרצה לבצע בדיקה אם תא מסוים באקסל מכיל מספר, (זה יכול להיות מספר "כפשוטו" או "מספר סידורי" של תאריך תקני…) אז כולנו מכירים את פונקציית isnumber (במאמר בלינק כאן כתבתי אודותיה ונפלאותיה של פונקציה זו.)
פונקציה זו מחזירה ערכים לוגים של true או false (אמת או שקר).
היכן הבעיה מתחילה?
העניין שפונקציה זו מחזירה true רק כאשר כל הערכים שכתובים בתא הם מספריים.
אך מה קורה כאשר חלק מערכי התא הוא ערך טקסט וחלק ממנו הוא מספרי?
התשובה לכך: שהפונקציה תחזיר false.
כך בדיוק פונקציה זו תוכנתה!
וזה האלגוריתם שלה!
תראו בצילום מסך מתוך הגיליון המצורף. בתאים B4:B7 - בכולם מוחזר הביטוי false.
ועתה נשאל. מה בכל אופן ניתן לעשות אם נרצה לבצע בדיקה כזו, דהיינו לבדוק האם בתא מסוים קיים ערך מספרי ואפילו בכלשהו ???
אז בואו ונכיר היום את פונקציית find.
תפקידה של פונקציה זו הוא לחפש טקסט מסוים בתוך מחרוזת .ולהחזיר את מספר התו מתחילת המחרוזת שבו מופיע הערך לחיפוש.(לפרטים נוספים ראו בלינק כאן).
ועכשיו אקח כדוגמא את הפונקציות שבתא D4 ואסביר את הלוגיקה שבחישוב זה.
זהו מבנה הפונקציות בתא הנ"ל:
קוד:
=ARRAYFORMULA(COUNT(FIND({0,1,2,3,4,5,6,7,8,9},A4))>0)
פונקציית find "מסתכלת" על כל ערך (כל אחד "בתורו" לפי הסדר…)לחיפוש שהוזן בתוך הסוגריים המסולסלים (כפי שהסברתי בפורום זה פעמים רבות, תפקיד הסוגריים הם ליצור מעין "בנק/תיבה לשליפת נתונים").
ואז מחפשת את הערך במחרוזת שנכתבה בתא A4 שהיא "abc123"
יש לזכור שכאשר הפונקציה לא מוצאת את הערך לחיפוש תוחזר שגיאת value…
ההחזר שמתקבל בדוגמא הנ"ל יהיה רצף של 10 תוצאות:
כנגד 0 - value
כנגד 1- 4 (זה מספר התו מתחילת המחרוזת-הקריאה היא משמאל לימין כי מדובר באנגלית ובספרות…)
כנגד 2 - 5
כנגד 3 - 6
כנגד 4 - value
כנגד 5 ומעלה עד 9 - value
יופי מצוין.
כעת נתקדם לשלב הבא בחשבון כאן:
כעת מקיפים את הפונקציה בפונקציית count זאת על מנת לספור כמה פעמים מופיעה תוצאה מספרית?
ואם תשאלו למה דווקא פונקציית count ולא counta?
התשובה לכך: כי פונקציית counta מתייחסת גם לערכי טקסט כמו value .ופונקציית count מתעלמת מערכי טקסט וסופרת רק תאים בעלי ערך מספרי בלבד.
עכשיו תראו איזה נפלא החשבון כאן-
אם כל ההחזרים מפונקציית find הם value - אז פונקציית count תחזיר 0.
ואם נמצא ערך מספרי אפילו אחד .אז הפונקציה תחזיר ערך מספרי (1 לפחות).
בדוגמא הנ"ל פונקציית count תחזיר תשובה של 3.
אם עד כאן הכול מובן נתקדם עוד צעד…
כאשר אנו שואלים האם בתא מסוים יש ערך מספרי כל שהוא .אנו מצפים לתשובה של כן ולא /אמת או שקר/true או false…
אם נקבל בדוגמא הנ"ל תשובה של 3 זה לא רלוונטי עבור השואל.
נשאלת השאלה.מה יגרום לפונקציית count "לשנות מטבעה ומנהגה" ולהחזיר לנו תשובה של ביטוי לוגי?
שאלה יפה…נכון?
אז כפי שהסברתי במאמר כאן (בסעיף 2).
גם כאן נשתמש עם אותה טכניקה ונציב תנאי לפונקציית count של גדול מ 0.
וכאשר יש תנאי, ההחזרים מהפונקציה משתנים ומותאמים (בסוג של "אילוץ וכפיה") לעולמם של הביטויים הלוגים דהיינו אחד מהשניים או true או false.
נקודה!!!
וכעת נשאל:
ולמה התנאי הוא דווקא גדול מ0?
התשובה היא- שהתשובה 0 תתקבל רק כאשר כל ההחזרים מפונקציית find הם value.במקרה זה פונקציית count תחזיר false.
אבל… כאשר יש במחרוזת אפילו ספרה אחת פונקציית count תספור אותה כ1.
1 (וקל וחומר 2 או 3 וכו וכו) הוא גדול מ0 …
וזו כבר סיבה "מספיק טובה" להחזיר כאן true.
זה באמת נפלא, מדויק וגאוני…
תהנו מהלוגיקה!
תהנו מכל הדרך הארוכה והנפלאה עד לפתרון הסופי באקסל...
הערה חשובה!
גיליון זה נערך בגיליון שיטס ולכן הוספתי בו עטיפה של פונקציית arrayformula.
אם אתם פותחים את הגיליון באקסל יש להשמיט ידנית את הפונקציה הנ"ל.
שימו לב. כי בעמודה F קיימת בדיקה על ידי פונקציית search.
(במאמר בלינק כאן כתבתי אודותיה ועל הלוגיקה/המאפיין שבה)
התוצאות הן אותן תוצאות כמו בבדיקה באמצעות find+count.
פונקציית search - היא "אחותה התאומה" של פונקציית find ותפקידן דומה מאוד מאוד.
ובכל זאת קיימים הבדלים דקים ביניהן…(בהזדמנות בל"נ ארחיב בנושא זה).
אך כאמור.בגיליון זה וערכיו התוצאות המתקבלות משתיהן הן זהות.
לסיום, אחתום עם מסר חשוב עבורנו מכל הנ"ל:
בתחילת דבריי הזכרתי את הכלל התלמודי/הלכתי שדבר שבמנין אפילו באלף לא בטיל…
כאשר ניסינו לבדוק ולשאול את האקסל שיחפש האם ישנו מספר כל שהוא (אפילו שהוא "נחבא" בתוך סבך המחרוזת טקסט),אז ראינו שפונקציית isnumber היא לא הכתובת לכך…
אך עם קצת מאמץ ומחשבה (בעזרת הפונקציות find וכו ), גם האקסל מגלה ואף מונה וסופר כל אחד מהמספרים שנחבאים להם במחרוזות טקסט שבתא.
לכל מספר יש חשיבות אפילו "בעיניו" של האקסל…
כל מספר הוא "ערך עצמאי וישות בפני עצמו" .הוא פשוט נוכח וקיים…
והלא דברים קל וחומר…אם כך הם הדברים באקסל שהוא חומר ודומם.
קל וחומר שכל יהודי עם נשמה אלוקית ממעל הוא דבר חשוב ובעל ערך עליון כלפי המקום(וכן כלפי עצמו)
החשיבות היא כאשר יש כאן גדר של "דבר שבמנין".
וכפי שהבאתי לעיל את דברי רבי צדוק הכהן זצ"ל, שזו הסיבה שהקב"ה מצווה לספור את עם ישראל שוב ושוב.(ובודאי שמצד המספר עצמו הכל גלוי וידוע לפניו יתברך…ולא נצרכת שום ספירה.ובכל זאת הסיבה (לציווי על ספירת עם ישראל)היא כאמור על מנת לייקר כל אחד מישראל שלא יהיה שייך בו שום מושג של "ביטול" חלילה…כי דבר שבמנין לא בטל לעולם).
איתא בתלמוד בבלי (מסכת מגילה דף י"ג ע"ב) "אמר ריש לקיש גלוי וידוע לפני הקדוש ברוך הוא שעתיד המן לשקול שקלים על ישראל, לפיכך הקדים שקליהם לשקליו"
ובספר ברית שלום (דרושים על התורה והמועדים מר' פנחס בן פילטא זצ"ל מפוזנא - בתחילת פרשת שמות) מבאר על כך ביאור נפלא על פי האמור לעיל. שהמן הרשע טען "ישנו עם אחד מפוזר ומפורד…" דהיינו שכיון שעם ישראל מפורדים ומפוזרים בין האומות.הדין הוא שיהיו בטלים "ברוב" וכיון שרוב העולם גויים אז לכל יהודי אין קיום ליהדותו חלילה (עפרא לפומיה) ולכן דין העם היהודי להמיר דתו או ליהרג.
ועל כך אמר ריש לקיש שהקב"ה "הקדים שקליהם לשקליו" והיינו שכאשר עם ישראל נספרים הם "חשובים" ולא שייך בהם דין ביטול לעולם בשום צד ואופן.
כי כך הוא הדין שדבר שבמנין לא בטיל לעולם…!
נפלא מאוד!
וזהו מוסר וחיזוק/תזכורת/התעוררות עבור כל יהודי שידע את חשיבותו ומעלתו לפני המקום ברוך הוא.שהקב"ה שמח ואוהב כל יהודי בפרט ומחבב את "מספר בני ישראל" כאדם (להבדיל אלף הבדלות)שמונה מרגליות טובות…
יהי רצון שנזכה בזמן הזה כבימים ההם, ויתקיים בנו הפסוק "וְנַהֲפוֹךְ הוּא, אֲשֶׁר יִשְׁלְטוּ הַיְּהוּדִים הֵמָּה בְּשֹׂנְאֵיהֶם", אמן.
לינק לגיליון שיטס הכולל ביאור אודותיה של פונקציית find - מצורף כאן.
הנושאים החמים