Calculated Group בתוך Power BI

נושאים

עקבו אחרינו

Calculated Group

נמאס לכם ליצור מדדים זמן יחסיים (MTD, YTD וכו') שחוזרים על עצמם על בסיס מדדים שיש לכם במודל שלכם?

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

מבוא

בעדכון האחרון של חודש יולי נוספה האפשרות של הוספת כלים חיצוניים ל Power BI desktop.

הכלים האלו מאפשרים לנו לנהל בצורה נוחה יותר את המודל שלנו וניתן בעזרתם להשתמש בפיצ'רים נוספים שלא קיימים ב Power BI Desktop.

עד היום הכלים האלו היו קיימים אבל מהחודש הם כבר לא זרים אלא קיבלו מקום של כבוד (עם לשונית משלהם) בבית החדש שלהם – ב Power BI Desktop. הדבר היה יוצר גישה קלה יותר אליהם וזמינות שלא הייתה קיימת עד כה.

בנוסף לכלים החיצוניים הקיימים, ניתן לבנות כלים משל עצמך (כן כן אבל מי המשוגע שיבנה כזה דבר?!) של External Tool ואתה יכול להשתמש בהם.
השבוע בנה מישהו כלי חיצוני שיש לו פעולה אחת שהוא יודע לעשות – ברגע שלוחצים עליו הוא פותח אקסל עם חיבור ל PBIX – לינק.


אז לענייננו, היום אנחנו נדבר על הכלי החיצוני בשם Tabular Editor ועל היכולת שלו לבנות Calculated Groups ובסוף הפוסט תוכלו להוריד קוד שניתן בעזרתו להוסיף ל Power BI קבוצת מדדים של Calculated Group בכמה קליקים.

בקצרה על Tabular Editor

Tabular Editor הוא כלי עזר שנוצר אי שם בשלהי בשנת 2016 בשפת C#.

הוא הוקם ע"י דניאל אוטיקייר (משוגע כבר אמרנו?) והמטרה שלו הייתה לנהל בצורה קלה יותר את המודל של הקוביית ה Tabular ולמזלנו גם את Power BI על כל האלמנטים הקיימים בקוביית Tabular:

  1. מדדים
  2. טבלאות
  3. Perspective
  4. Roles
  5. Translations

וכשאני אומר לנהל אני מתכוון פשוט לשנות/לערוך את האלמנטים הנ"ל מחוץ לסביבה הטבעית שלהם – בתוך הכלי Tabular Editor.

למה לעשות את זה בכלל באמצעות הכלי הזה?

אז כמו שאמרנו הכלי הזה מאפשר לנו לבצע פעולות שלא ניתן לבצע אותם עם ה Power BI Desktop לבד.

מה זה Calculation Groups ולמה צריכים את זה?

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

ההסבר האידיאלי יהיה באמצעות דוגמא:

נניח ויש לכם מדד של סה"כ מכירות בכסף (Sales) במודל. וכעת אתם מעוניינים ליצור כל מיני מדדים שמנתחים את סה"כ המכירות לפי זמנים שונים. ולכן אתם נאלצים ליצור מדדים נוספים על בסיס המדד המקורי כמו – YTD, MTD, YOY וכו'

ועכשיו יש לכם מדד נוסף של סה"כ כמויות שנמכרו, וגם עליו אתם הולכים לבנות את אותם המדדים כמו שבניתם קודם.

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

בשביל לחסוך את הבניה החוזרת של המדדים הללו הוקמו ה Calculated Groups. בקבוצה הזו קיימים רשימה גנרית של מדדים שמטרתם לחשב חישובים גנריים של זמנים כמו – MTD, YTD, QTD, PY, YOY וכו'.

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

סקריפט יצירה אוטומטית של Calculated Group

בהמשך הפוסט נדגים כיצד ניתן להטמיע את ה Calculated Group בתוך המודל שלכם וזו רשימת המדדים שקבוצה זו תכיל (קובץ טקסט להורדה נמצא בסוף הפוסט):

  • MTD
  • QTD
  • YTD
  • PY
  • PY MTD
  • PY QTD
  • PY YTD
  • YOY
  • YOY%

אז מספיק חפרנו, בואו נראה איך נראית התוצאה הסופית של היישום של Calculated Group:

יצרתי מטריקס בו הכנסתי שלוש עמודות:

  • שורות – שירשור של חודש + שנה
  • עמודות – Calculated Group – קבוצה של מדדים שמחשבים – YTD,MTD וכו'
  • ערכים (VALUES) – מדד פשוט של סה"כ מכירות – Total Sales

כך נראית התוצאה:

וכעת החלפתי את המדד שעליו מבוסס המטריקס לסה"כ כמויות – Total Quantity

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

Use Calculated Group 

איך מטמיעים Calculation Group במודל?

  1. מוודאים שיש לכם את שני הדברים הבאים:
    1. הגרסה של חודש יולי ומעלה של Power BI.
    2. תוסף של Tabular Editor בלשונית של External Tool
  2. מוודאים שיש לכם מימד זמן במודל בשם Date ועמודת Date בתוכה המכילה את התאריכים.
    זה חשוב שיהיה לכם את הטבלה הזו קיימת מכיוון שהסקריפט ליצרת ה Calculated Group מבוסס על טבלה זו.
  3. לחצו על External Tool ופתחו את ה Tabular Editor
  4. בטלו את האפשרות ל IMPLICIT MEASURES  (**הסבר בסוף המאמר מה זה אומר)

5. בתמונה הבאה מצויין עבורכם מהו ה INSTANCE ID שלכם.
את הקוד הזה עליכם לשתול בתוך הסקריפט (בשורה השניה) שיוצר את ה Calculated Group

6. אחרי ששתלתם את קוד של ה Instance ID בתוך הסקריפט עימדו על Tables והדביקו את הקוד (בלשונית EDIT).

כך זה נראה כל 6 הפעולות יחדיו:

Calculated Group

** הסבר על Implicit Measure 

למה זה חשוב שאנחנו נבטל את האפשרות של Implicit Measure ומה זה אומר?

כל עמודה מספרית שאנחנו מציגים בתוך ה Power BI מתורגמת למדד – יצירת מדד ספציפי באמצעות נוסחא נקראת Explicit Measure ואילו Implicit Measure הינו מצב שבו סתם גררנו עמודה מספרית לתוך הקנבס ו – Power BI  יצר באופן אוטומטי מדד של סכימה על העמודה שגררנו.

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

ברגע שאנחנו עובדים עם Calculated Group ישנה מגבלה שהמנוע של טאבולר לא מאפשר לנו לעבוד עם Implicit Measure ולא תוכלו לגרור סתם עמודה מספרית לתוך הקנבס, וזה בא לידי ביטוי בצורה הבאה:

ברגע שכיביתם את האפשרות הזו יעלמו מיד הסיגמות בצד ימין כמו בצילום הבא:

לסיכום

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

תודה שקראתם ואשמח לשמוע אם יש לכם הערות/שאלות

תגובות אחרונות