בעבודתי עם מנהלי מכירות אני נתקלת לעתים במצבים שבהם יש צורך לבצע השוואה בין תקופות,
ולבצע זאת באמצע התקופה הנוכחית ולא להמתין עד סופה.
ההשוואה הזו מאפשרת לזהות מגמות וחריגות בזמן אמת ומאפשרת קבלת החלטות ניהוליות שוטפות ויעילות יותר.
לדוגמא, כאשר יוצאים במבצע מכירות או הנחה מוגבלת בזמן על מוצר מסוים ורוצים לבצע את ההשוואה למכירות שנה קודמת תוך כדי תנועה ולא רק בסוף תקופה, כשכבר לא ניתן יהיה לבצע התאמות.
או אם רואים חריגה מיעדי המכירות, מעניין לבדוק כבר באמצע תקופה את ההשוואה לתקופה המקבילה כדי לבחון כמה חמור המצב (ייתכן לדוגמא שקצב המכירות תקין והפער צפוי להיסגר עד סוף התקופה,
אם לא, אז כדאי כבר באמצע התקופה לנקוט בצעדים שיגבירו את המכירות לטובת עמידה ביעדים)
מצב כזה מייצר אתגרים משמעותיים בניתוח מגמות והשוואה בין התקופות.
לאחרונה, עבדתי עם צוות המכירות של מותג מזון על דוח מכירות מקיף
ובין השאר התבקשתי לבצע השוואה בין תקופות באמצע החודש.
הבעיה: השוואה "רגילה" של תקופה מול תקופה תיתן נתונים חלקיים.
לדוגמא (* כל המספרים כאן הם לא נתוני מכירות אמיתיים והם לצורך המחשה בלבד):
כשמשווים חודש אחד מול אותו חודש בשנה הקודמת, הנוסחה הבאה מספקת נקודת התחלה טובה:
PreviousYear =
CALCULATE)
[TotalSales],
SAMEPERIODLASTYEAR ( 'Date'[Date] )
(
בעזרת המדד הזה אפשר להשוות נתוני מכירות של השנה הנוכחית לעומת השנה הקודמת
אבל, החישוב הזה לא נותן פתרון מספיק טוב.
כלומר, ברמת השנה, הוא משווה את השנה הקודמת המלאה לשנה נוכחית לא שלמה.
בנוסף על כך, הניתוח נעשה ב 20 לאפריל, כלומר, ישנה בעיה בהשוואה בין תוצאות החודש הנוכחי מול אותו חודש בשנה קודמת.
מדד חודש אפריל שנה קודמת מחזיר מכירות של כל חודש אפריל, בעוד מדד חודש אפריל שנה נוכחית מחזיר רק 20 ימי מכירות.
הפתרון:
יצרתי עמודה מחושבת בטבלת התאריכים, כדי להוציא מהחישוב את התאריכים בעבר שיש להתעלם מהם.
למשל, אם התאריך האחרון בטבלת המכירות הוא 20 באפריל לשנה הנוכחית, אז ניתן לסמן את כל התאריכים שאחרי 20 באפריל בשנים קודמות כדי להימנע מלהתייחס אליהם בחישוב.
נוסחת ה DAX עבור אותה עמודה מחושבת היא:
IsPrevious=
VAR LastSaleDate = MAX ( Sales[Order Date] )
VAR LastSaleDatePY = EDATE ( LastSaleDate, -12 )
RETURN
'Date'[Date] <= LastSaleDatePY
הנוסחה בודקת מהו תאריך המכירה האחרון, "מזיזה" אותו שנה אחורה ואז בודקת האם התאריך הנוכחי מוקדם יותר מאשר התאריך בשנה שעברה.
השלב האחרון הוא לבנות את המדד המעודכן עבור מכירות שנה שעברה שמתייחסות למכירות רק עד לתאריך שבו היו מכירות בתקופה המקבילה הנוכחית:
AdjustedPreviousYear =
CALCULATE)
[TotalSales],
SAMEPERIODLASTYEAR ( 'Date'[Date] ),
'Date'[IsPrevious] = TRUE
(
התוצאה שמתקבלת עכשיו היא יותר נכונה:
אתם מוזמנים לפנות אלי ואשמח לעזור לכם להבין יותר את הנושא ולשדרג את הדרך שבה ניתן ליצור תובנות בזמן אמת.