דלג לתוכן הראשי
DataFusion
Power BI

DAX: שפת הנוסחאות של Power BI

מה שלומכם מקווה שעברתם על המאמרים האחרונים שמתחילים להוות בסיס להמשך המסע בעולם ה BI

נכתב על ידי ניסים אלאלוף1 בינואר 20248 דקות קריאה

היום נקבל טעימה מהדבר האמיתי

מה שלומכם מקווה שעברתם על המאמרים האחרונים שמתחילים להוות בסיס להמשך המסע בעולם ה BI

עד עכשיו במאמרים האחרונים סקרנו את עולם ה Bi

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

סיימנו את המאמר האחרון לאחר פירוט התכונות העיקריות כמו גם יתרונות בולטים בו, אך אי אפשר לכתוב על Power bi ללא התייחסות לשפת הDAX

לינק לסקרנים - Power Bi

Data Analysis Expressions

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

אז בואו נתחיל עם היסודות של DAX בסדר?

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

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

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

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

למה כדאי ללמוד DAX

זה פותח עולם חדש לגמרי!

משתמש ב- Power BI שלא משתמש בDAX הוא כמו משתמש ב- Excel בלי להכיר נוסחאות כלל ולפתע הוא מגלה את האפשרות של השימוש בהן, סבבה - הצלחת עד כה לבנות את הטבלאות שלך, להוסיף כמה תרשימים וללחוץ על כפתור הסכום / הממוצע / ... אבל פתאום אתה מגלה את העולם של פונקציות VLOOKUP, IF ומה לא. למרות שהשוואה זו אינה לחלוטין נכונה לפחות לדעתי, שהרי Power BI הוא כבר כלי חזק להפליא גם ללא DAX, ולעומת זאת, כל דבר מעבר לשימוש קל באקסל כבר דורש נוסחאות. עם זאת, לימוד DAX יפתח בפניכם עולם חדש של Power BI.

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

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

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

חשוב להשתמש במספרים שלמים ככל האפשר חיפוש בשורות של נתונים מספריים הוא הרבה יותר מהיר מאשר חיפוש במחרוזות. לכן במידת האפשר, תשתמש במספרים שלמים. לדוגמא, עדיף להשתמש בערכי 0/1 במקום "כן / לא". או 1/2/3 במקום "נמוך / בינוני / גבוה". ושים לב, שספרה אינה בהכרח מספר שלם. יכול להיות שיש לך 1/2/3 כערכים, אך הם עדיין יכולים להיחשב מחרוזות. אז בדוק תמיד את פורמט הנתונים בעורך השאילתות.

דבר אחרון DAX הוא השקעה בטוחה

המיומנות שתרכשו לא להיות מוגבלת לסביבת Power BI. ניתן להשתמש ב- DAX במוצרי מיקרוסופט בטבלה כמו:

Power BI

Microsoft Analysis Services

Microsoft Power Pivot for Excel

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

טוב חפרתי מספיק

בואו ניגש לתכלס

** **

תמונהתמונה

לשפה יש שלושה מושגים בסיסיים:

1.    תחביר - Syntax

2.    הקשר - Context

3.    פונקציות - Functions

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

1.   תחביר - Syntax

התחביר כולל מרכיבים שונים המרכיבים נוסחה ואת

אופן כתיבתה. תסתכלו על נוסחת פשוטה זו.

תמונהתמונה

כשמנסים להבין נוסחת DAX, לעתים קרובות יעזור לכם לפרק כל אחד מהאלמנטים לשפה שאנו חושבים ומדברים בה מדי יום. למשל: אנו יכולים לקרוא זאת כך "עבור המדד בשם סך המכירות, נחשב את סכום הערכים בעמודה [SalesAmount] בטבלת המכירות."

נוסחה זו כוללת את רכיבי התחביר הבאים:

A. שם המדד.

B. אופרטור = שמציין את תחילת הנוסחה.

C.פונקציית SUM, שמסכמת את כל המספרים בעמודה SalesAmount בטבלת Sales.

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

E. הטבלה הרלוונטית Sales.

F. העמודה הרלוונטית אותה נדרש לסכום SalesAmount

2.   הקשר – Context

הקשר הוא נושא חשוב וקריטי בהבנה של השפה ומתחלק

לשניים

Row context

בפשטות זה ביצוע האיטרציה (חזרתיות)

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

ואנו רוצים לדעת כמה הטוטאל של המכירות שלי

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

נצטרך להגיד : DAX יקירי לך בבקשה ולכל שורה ושורה בטבלה שלי תכפיל את המחיר בכמות

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

וזה ייראה כך:

תמונהתמונה

כמובן שנוכל גם להוסיף עמודה מחושבת חדשה ועליה לבצע SUM רגיל

Filter context

בפשטות זה פילטר

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

ואם תרצו לראות דוגמה פשוטה בקוד

תמונהתמונה

שימו לב שאני משתמש בתוצאת החישוב מהפסקה הקודמת [Total Sales] כמדד בסיס ועליו מוסיף פילטר. 

על פונקציית Calculate נלמד בהמשך אך חשוב לדעת שהפונקציה CALCULATE שימושית מאוד מכיוון שהיא יכולה לשנות את ה Filter Context של הביטוי כמו שראינו בדוגמה.

חשוב להבין את השורה התחתונה🎯

**    Filter context מפלטר לא מבצע איטראציה.**

**    Row context : מבצע איטראציה, לא פילטר.**

3.   פונקציות - Functions

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

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

וכמובן שיש עוד

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

תמונהתמונה

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

1)    ציין את היתרונות של שימוש במשתנים (Variable) ב- DAX.

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

2)    ציין את ההבדלים העיקריים בין פונקציות MAX ו- MAXA

אם ברצונך לחשב ערכים מספריים, השתמש ב- MAX. עם זאת, אם מדובר בערכים שאינם מספריים, עליך להשתמש ב- MAXA.

3)    למה פונקציות מקוננות של Dax שוות ערך ב SQL?

שאילתות משנה בSQL.

טוב

זה יצא קצת ארוך מקווה שאהבתם וקיבלתם ערך

בהמשך הסדרה על DAX אכתוב על הנושאים הבאים

עמודות מחושבות לעומת מדדים מהן ומתי משתמשים במה.

סוגי פונקציות ב- DAX – נרחיב וניתן דוגמאות ההבדלים בין DAX ל MDAX

 תכתבו לי על נושאים נוספים בהם הייתם רוצים להרחיב ואשתדל לכתוב גם עלייהם😎

שווה לעקוב...

Power BI

צריכים דשבורד Power BI מקצועי?

נבנה לכם מודל נתונים ודשבורדים שנותנים תשובות מיידיות.