تعبيرات جدول DAX

مكتمل

في معظم الأوقات في Power BI، تقوم بإنشاء جداول عن طريق استيراد البيانات إلى نموذجك من مصدر بيانات خارجي. باستخدام دالات الجدول، بدلاً من ذلك، يمكنك إضافة جداول جديدة استنادًا إلى البيانات التي قمت بتحميلها بالفعل في النموذج.

نظرة عامة

تسمح دالات الجدول لمستخدمي Power BI بإنشاء جدول متوسط، والذي يتم عرضه في نموذج البيانات ويمكن استخدامه في تعبيرات DAX الأخرى. تُعد دالات الجدول بمثابة جداول مؤقتة يمكنك استخدامها، ولكنها غير مرئية لأنها لا يتم إخراجها.

تُعد الدوال FILTER، وVALUES، وALL بعض الجداول الوسيطة الشائعة التي تُستخدم غالبًا داخل مقاييس DAX.

تطبيق الدالة FILTER

تعيّن الدالة FILTER عامل التصفية لجدول معين ثم تستخدم إصدارًا مكثفًا من الجدول في عملية حسابية. بعبارة أخرى، تقوم بإرجاع جدول يمثل مجموعة فرعية من جدول أو تعبير آخر.

على سبيل المثال، لنقل إن لديك جدول البيانات التالي:

جدول البيانات الذي سيشار إليه في مثال دالة FILTER.

في الجدول السابق، لديك بعض الصفوف التي تسلط الضوء على مبيعات سياتل. إجمالي مبيعات سياتل في عام 2018 هو 30.13 (20.46 + 9.67). للحصول على هذه النتيجة باستخدام الدالة FILTER:

2018 Sales = SUMX(
  FILTER(
    Sales,
    YEAR( Sales[SalesDate] ) = 2018
  ),
  [Price]*[Quantity]
)

تلميح

بالنسبة لـ TABLEAU: لإنشاء نفس الحساب في Tableau، يمكنك استخدام بناء الجملة IF/THEN: 2018 Sales = IF YEAR([SalesDate]) = 2018 THEN SUM([Price]*[Quantity]) END

في القصاصة البرمجية السابقة، قمت أولاً باسترداد البيانات لسياق عامل التصفية، وهو جدول "Sales fact":

معاينة البيانات لجدول "Sales fact".

بعد ذلك، قمت بتصفية بيانات Sales لتضمين مبيعات 2018 فقط.

معاينة البيانات لجدول "Sales fact" الذي يبرز مبيعات 2018.

وأخيرًا، قمت بتقييم التعبير ولكن فقط للسجلات الموجودة في الجدول المؤقت.

تمت تصفية معاينة البيانات لجدول "Sales fact" لإظهار مبيعات 2018.

تطبيق الدالة VALUES

تقوم الدالة VALUES بإرجاع جدول مكون من عمود واحد يحتوي على القيم المميزة من الجدول أو العمود المحدد، وتتم إزالة القيم المكررة ويتم إرجاع القيم الفريدة فقط.

على سبيل المثال، لقد تم تسليمك للتو مهمة تحتاج فيها إلى إظهار أي لاعب في فريق رياضي لديه آخر رصيد جيد مستحق يجب سداده.

فيما يلي جدول البيانات (المسمى "Team Fine Details") الذي ستستخدمه:

جدول البيانات الذي سيتم الرجوع إليه في مثال الدالة VALUES.

ما عليك القيام به هو اختبار ما إذا لم يتبق سوى لاعب واحد لدفع الغرامة. إذا كان الأمر كذلك، فأظهر اسمه. وإلا، عرض الرسالة "أكثر من لاعب واحد."

يمكنك إنجاز هذا باستخدام الدالة VALUES:

LastPlayer = IF(
  COUNTROWS( VALUES( 'Team Fine Details'[SportsTeam] ) ) = 1,
  VALUES( 'Team Fine Details'[PlayerName] ),
  "More than one player"
)

تلميح

بالنسبة لـ TABLEAU: هذه هي الطريقة التي يمكنك بها إجراء نفس الحساب في Tableau: LastPlayer = IF COUNTD([SportsTeam]) = 1 THEN [PlayerName] ELSE "More than one player" END

سيبدو هذا المقياس مثل التقرير/المرئيات أدناه:

تم تضمين تقرير مثال مع حساب LastPlayer.

تطبيق الدالة ALL

تخبر الدالة ALL Power BI بالاطلاع على جدول معين، وأخذ جميع القيم منه (لا تقم بتصفية الجدول) واستخدم هذه المجموعة الفرعية من القيم في تعبير.

الاستخدام الشائع لدالة ALL هو عندما تريد معرفة النسبة المئوية لإجمالي مقياس مجمع.

على سبيل المثال، ضع في اعتبارك سيناريو مبلغ الغرامة للفريق الرياضي. رئيسك سعيد بالنتائج التي توصلت إليها من المهمة السابقة، لكنهم يريدون معرفة الفريق الذي لديه أعلى نسبة من الغرامات المستحقة.

تم تضمين أحدث تقرير مع حساب LastPlayer.

الخطوة الأولى هي وضع مقياس للمجموع الكلي للغرامات المستحقة:

TotalAllFineAmount = CALCULATE( [TotalFineAmount], ALL( 'Team Fine Details'[SportsTeam] ) )

تلميح

بالنسبة إلى TABLEAU: هذه هي الطريقة التي يمكنك إجراء نفس الحساب بها في Tableau باستخدام التعبير "FIXED LOD". تجمع إجمالي TotalFineAmount على مستوى الجدول: TotalAllFineAmount = { FIXED : SUM([TotalFineAmount]) }

الخطوة الثانية والأخيرة هي إنشاء النسبة المئوية من إجمالي القياس باستخدام الدالة DIVIDE:

FineAmountPercentOfTotal = DIVIDE( [TotalFineAmount], [TotalAllFineAmount] )

تلميح

بالنسبة لـ TABLEAU: هذه هي الطريقة التي يمكنك بها إجراء نفس الحساب في Tableau: FineAmountPercentOfTotal = SUM([TotalFineAmount]) / SUM([TotalAllFineAmount])