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

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

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

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

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

מה שרואים ומה ששמור

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

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

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

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

שורת הסיכום מחברת את הערכים השמורים, והעין מחברת את המוצגים. חיבור ידני של עמודת המע
שורת הסיכום מחברת את הערכים השמורים, והעין מחברת את המוצגים. חיבור ידני של עמודת המע"מ נותן 403.88 ושל עמודת הסיכום 2,647.60

הבדיקה שלוקחת שלוש שניות

סמנו תא אחד בעמודה שנראית מעוגלת, והסתכלו בשורת הנוסחאות למעלה.

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

אם בתא כתוב 100.01 ובשורת הנוסחאות כתוב 100.0062, לא עיגלתם. עיצבתם.

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

התיקון, ואיפה הוא צריך לשבת

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

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

השאלה החשובה יותר היא איפה העיגול צריך לקרות, ויש לה שלוש תשובות.

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

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

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

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

האפשרות שנראית כמו הפתרון

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

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

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

למה בכלל יש ספרות שאף אחד לא ביקש

חלק מההפרשים אינם באים מהחישוב שלכם בכלל.

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

הדוגמה שמובאת שם קצרה מספיק כדי לנסות אותה עכשיו. כתבו בתא את החישוב של 43.1 פחות 43.2, ועוד אחד. הציגו את התוצאה בעיצוב מדעי עם חמש עשרה ספרות. במקום 0.9 יופיע 0.899999999999999, מפני שהערך הזמני של מינוס עשירית כבר נושא את השגיאה.

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

רגע, מה זה בכלל Power Query

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

וכאן מסתתר ההבדל שכמעט אף אחד לא בודק.

כשערך יושב בדיוק באמצע בין שתי אפשרויות עיגול, צריך כלל שיכריע. בתיעוד של פונקציית העיגול בשפת החישוב של Power BI כתוב שתיקו נשבר בעיגול חצי הרחק מאפס, מה שמכונה שם עיגול מסחרי, והדוגמאות המובאות הן 1.15 שהופך ל-1.2 ומינוס 1.15 שהופך למינוס 1.2.

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

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

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

הכלל

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

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

והשאלה שנשארה פתוחה

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

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

את הדיון הזה אני מנהל בתוך מועדון The UNIQUE Way, ושם נמצאת גם ערכת העיגול המלאה: הבדיקה של שלוש השניות, שלושת המקומות שבהם מותר לעגל, טבלת ההחלטה בין פונקציות העיגול, המלכודת של הגדרת הדיוק כפי שמוצג, ורשימת הבדיקה לפני שהדוח יוצא מהמחלקה. ההצטרפות חינם.

מקורות

שלומי פוסטלניק הוא Microsoft MVP ומייסד חברת יוניק. ניתן להצטרף למועדון The UNIQUE Way

Scroll to Top