استخدام الدالة CALCULATE

مكتمل

بنهاية هذه الوحدة، سيكون لديك فهم قوي لكيفية كون دالة CALCULATE واحدة من أكثر الوظائف تنوعًا في Power BI.

على مستوى عالٍ، يمكنك التحكم في سياق الصف وعامل التصفية. باستخدام الدالة CALCULATE، يمكنك إضافة عوامل تصفية، ويمكنك حذفها، ويمكنك تحديثها. هذه هي قوة السلطة في دالة واحدة!

إضافة عامل تصفية باستخدام الدالة CALCULATE

أولاً، كيفية إضافة عامل تصفية باستخدام الدالة CALCULATE.

جدول البيانات الذي سيتم الرجوع إليه عند إضافة عامل تصفية باستخدام دالة CALCULATE.

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

Total Sales = SUM( [Sales Amount] )

لديك أيضًا إصدار تمت تصفيته من إجمالي المبيعات، حيث تقوم بتقييم إجمالي المبيعات وتطبيق سياق عامل تصفية الطائرة:

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

تلميح

بالنسبة لـ TABLEAU: توضح القصاصة البرمجية التالية كيفية إجراء نفس الحساب في Tableau: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)

تجاهل عامل تصفية باستخدام الدالة CALCULATE

بعد ذلك، كيفية تجاهل عامل تصفية باستخدام الدالة CALCULATE.

جدول البيانات الذي سيتم الرجوع إليه عند تجاهل عامل تصفية باستخدام دالة CALCULATE.

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

الطريقة الأكثر شيوعًا للقيام بنسبة مئوية من الإجمالي في DAX من خلال الدالة ALL.

Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )

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

تلميح

بالنسبة لـ TABLEAU: توضح القصاصة البرمجية التالية كيفية إجراء نفس العملية الحسابية في Tableau باستخدام تعبير EXCLUDE LOD: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }

قد يبدو مثال عامل التصفية تجاهلاً مختلفًا على هذا النحو:

جدول البيانات الذي سيتم الرجوع إليه عند تجاهل عوامل التصفية باستخدام دالة CALCULATE.

في الجدول السابق، لديك إجمالي المبيعات حسب الدولة، وإجمالي المبيعات حسب كل المناطق الجغرافية (مع استبعاد جميع عوامل التصفية الجغرافية)، وأخيرًا، لديك إجمالي المبيعات حسب جميع الولايات ولكن مع استمرار تطبيق عامل التصفية المدينة.

بناءً على الصورة، توجد مدينة الإسكندرية في العديد من الدول. لذلك، كنت ترغب فقط في العثور على إجمالي مبيعات تلك الدول التي يُشار فيها إلى الإسكندرية كمدينة:

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

تلميح

بالنسبة إلى TABLEAU: هذه هي الطريقة التي يمكنك إجراء نفس الحساب في Tableau، باستخدام تعبير "EXCLUDE LOD". ستلاحظ أن هذا التعبير LOD يختلف عن الآخر من حيث التنفيذ المتكرر الخاص به. مع هذا التعبير، تحتاج فقط إلى استبعاد الدولة من طريقة العرض، بدلا من الدولة والمدينة: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }

تحديث عامل تصفية باستخدام الدالة CALCULATE

وأخيرًا، فإن المعاينة النهائية لتسليط الضوء على فائدة الدالة CALCULATE ستكون من خلال تحديث عامل التصفية.

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

في جدول البيانات السابق، لديك إجمالي المبيعات بشكل عام (تجاهل السنة)، وإجمالي المبيعات في سياق عامل التصفية الذي يطبقه مقسم طريقة العرض في المرئي، ثم العمود الأخير هو إجمالي المبيعات فقط لعام 2018.

للحصول على عمود "2018 Sales"، ستحتاج إلى كتابة شيء مثل هذا:

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

تلميح

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

في Tableau، غير متاح حاليًا. Power BI، يتحكم في سياق عامل التصفية عن طريق تحديث عامل التصفية باستخدام الدالة CALCULATE.

لنلخص ما قمت بمراجعته في وحدة CALCULATE هذه:

  • يمكن وضع أي تعبير كوسيطة أولى.

  • ينظر التعبير إلى كل سياق عامل التصفية على الصفحة (مقسمات طريقة العرض للمرئيات).

  • إذا كانت عوامل التصفية موجودة، ستتم إضافتها.

  • إذا كان هناك عامل تصفية موجود بالفعل في قائمة عوامل التصفية وهو نفس سياق الصفحة، فسيتجاوز ذلك.

  • بعد كل هذه الفروق الدقيقة (المذكورة أعلاه)، فإنه سيتم تقييم التعبير في النهاية.

ملاحظة

من الواضح أن هذا ليس شيئًا يجب عليك القيام به دون التحقق من إجاباتك لفهم ترتيب العمليات حقًا. يجب أن تسأل نفسك "هل تم إلغاء عوامل التصفية الخاصة بي أم لا؟"