QuickQuiz
- מה מפנה תמיד לפונקציה?
- האם נוסחה יכולה להכיל יותר מפונקציה אחת?
- איזו קטגוריה של פונקציות היית משתמשת לשרשור שתי מחרוזות טקסט למחרוזת אחת?
תשובות מסופקות בסוף נושא זה.
הקשר
הקשר הוא אחד מושגי DAX החשובים ביותר לה להבין. קיימים שני סוגים של הקשר ב- DAX ;הקשר שורה והקשר סינון. תחילה נחפש הקשר שורה.
הקשר שורה
הקשר השורה הוא הדבר החשוב ביותר כשורה הנוכחית. לדוגמה, זוכר את השוליים המחושבים עמודה שראית קודם לכן בעת למידה על התחביר? הנוסחה =[SalesAmount] – [TotalCost] מחשבת ערך בתיבת עמודה שוליים עבור כל שורה בטבלה. ערכים עבור כל שורה מחושבים מתוך ערכים בשתי עמודות אחרות, [SalesAmount] ו- [TotalCost] באותה שורה DAX יכול לחשב את הערכים עבור כל שורה ב- Margin עמודה מאחר שהיא כוללת את ההקשר: עבור כל שורה, היא מקבלת ערכים ב- [TotalCost] עמודה ומפחתה אותם מערכים ב- [SalesAmount] עמודה.
בתא שנבחר המוצג להלן, הערך, $49.54 בשורה הנוכחית מחושב על-ידי חיסור הערך $51.54 ב- [TotalCost] עמודה מתוך הערך $101.08 ב- [SalesAmount] עמודה.
הקשר השורה אינו חל רק על עמודות מחושבות. הקשר השורה חל גם בכל פעם שנוסחה כוללת פונקציה שמחילה מסננים כדי לזהות שורה בודדת בטבלה. הפונקציה תחיל מטבעה הקשר שורה עבור כל שורה בטבלה שבה היא מסינון. סוג זה של הקשר שורה חל לרוב על מידות.
הקשר סינון
הקשר הסינון קצת יותר קשה לה להבין מהקשר השורה. ניתן לחשוב בקלות על הקשר הסינון כ: מסנן אחד או יותר המוחלים בחישוב הקובע תוצאה או ערך.
הקשר המסנן אינו קיים במקום הקשר שורה; במקום זאת, היא חלה בנוסף להקשר השורה. לדוגמה, כדי לצמצם עוד יותר את הערכים שיש לכלול בחישוב, באפשרותך להחיל הקשר מסנן שלא רק מציין את הקשר השורה, אלא גם מציין רק ערך מסוים (מסנן) בהקשר שורה זה.
הקשר הסינון נראה בקלות בטבלאות PivotTableלדוגמה, בעת הוספת TotalCost לאזור ערכים ולאחר מכן הוספת שנה ואזור לשורה או לעמודות, אתה מגדיר הקשר מסנן שבו בוחר קבוצת משנה של נתונים בהתבסס על שנה ואזור נתון.
מדוע הקשר הסינון כל כך חשוב ל- DAX? מאחר, בעוד שהקשר הסינון יכול להיות מוחל בקלות רבה על-ידי הוספת תוויות עמודה ותוויות שורה וכלי פריסה ב- PivotTable, ניתן להחיל הקשר סינון בנוסחה DAX על-ידי הגדרת מסנן באמצעות פונקציות כגון ALL, RELATED, FILTER, CALCULATE, לפי קשרי גומלין, ועל-ידי אמצעים ועמודות אחרים. לדוגמה, בוא נחפש את הנוסחה הבאה במידה בשם StoreSales:
ברור שנוסחה זו מורכבת יותר מאשר חלק מהנוסחאות האחרות שראית. עם זאת, כדי להבין טוב יותר נוסחה זו, אנו יכולים לבשר אותה, בדיוק כמו שעשינו עם נוסחאות אחרות.
נוסחה זו כוללת את רכיבי התחביר הבאים:
- שם המידה StoreSales, ואחריו נקודתיים : .
- אופרטור סימן השוויון (=) מציין את תחילת הנוסחה.
- הפונקציה CALCULATE מעריכה ביטוי, כארגומנט, בהקשר שהשתנה על-ידי המסננים שצוינו.
- סוגריים () מקיפים ארגומנט אחד או יותר.
- מידה [Sales] באותה טבלה כמו ביטוי. מדד המכירות כולל את הנוסחה: =SUM(FactSales[SalesAmount])
- פסיק (,) מפריד בין כל מסנן.
- ההפניה עמודה וערך מסוים, DimChannel[ChannelName] ="Store", כמסנן.
נוסחה זו תבטיח שרק ערכי מכירות, המוגדרים על-ידי מדידה מכירות, כמסנן, יחושבו רק עבור שורות ב- DimChannel[ChannelName] עמודה עם הערך "Store", כמסנן.
כפי שאתה יכול לדמיין, היכולת להגדיר הקשר סינון בתוך נוסחה כוללת יכולת עצומה וחזקה. היכולת להפנות לערך מסוים בלבד בטבלה קשורה היא דוגמה אחת בלבד. אל דאגה אם אינך מבין לחלוטין את ההקשר מיד. בעת יצירת נוסחאות משלך, תוכל להבין טוב יותר את ההקשר ומ מדוע הוא חשוב כל כך ב – DAX.