تعديل سياق التصفية

مكتمل

يمكنك استخدام دالة DAXCALCULATE لتعديل سياق عامل التصفية في الصيغ الخاصة بك. صياغة دالة CALCULATE كما يلي:

CALCULATE(<expression>, [[<filter1>], <filter2>]…)

تتطلب الدالة تمرير التعبير الذي يقوم بإرجاع قيمة عددية والعديد من عوامل التصفية كما تحتاج. يمكن أن يكون التعبير مقياس (وهو تعبير مسمى) أو أي تعبير يمكن تقييمه في سياق التصفية.

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

عندما يكون لديك عوامل تصفية متعددة، يتم تقييمها باستخدام عامل التشغيل المنطقي AND مما يعني أن جميع الشروط يجب أن تكون TRUE في نفس الوقت.

ملاحظة

دالة ⁧DAX CALCULATETABLE تنفذ تمامًا نفس وظيفة الدالة CALCULATE، بيد أنها تُعدل سياق عامل التصفية الذي يتم تطبيقه على التعبير الذي يقوم بإرجاع عنصر الجدول. في هذه الوحدة، تستخدم التفسيرات والأمثلة دالة CALCULATE، ولكن ضع في اعتبارك أن هذه السيناريوهات قد تنطبق أيضًا على الدالة CALCULATETABLE.

تطبيق عوامل تصفية التعبير المنطقية

عامل تصفية تعبير منطقية هو تعبير تقييم إلى TRUE أو FALSE. يجب أن تلتزم عوامل التصفية المنطقية بالقواعد التالية:

  • يمكن أن تشير إلى عمود واحد فقط.
  • لا يمكنهم الرجوع إلى التدابير.
  • لا يمكنهم استخدام الدالات التي تفحص أو إرجاع جدول يتضمن دالات التجميع مثل SUM.

في هذا المثال، سيتم إنشاء مقياس. أولا، تنزيل وفتح ⁧⁩⁧⁩Adventure Works DW 2020 M06.pbix⁧⁩⁧⁩ ملف. ثم باشر بإضافة القياس التالي إلى الجدول Sales الذي يقوم بتصفية قياس Revenue باستخدام عامل تصفية تعبير منطقي للمنتجات الحمراء.

Revenue Red = CALCULATE([Revenue], 'Product'[Color] = "Red")

إضافة قياس ⁧⁩"الإيراد الأحمر"⁧⁩ إلى عنصر تحكم الجدول الذي تم العثور عليه في ⁧⁩الصفحة 1⁧⁩ من التقرير.

⁩تظهر الصورة جدولاً من ثلاثة أعمدة: المنطقة، والإيرادات، و»الإيراد الأحمر». يعرض الجدول 10 صفوف والإجمالي.⁧

في هذا المثال التالي، يقوم المقياس التالي بتصفية مقياس ⁧⁩الإيرادات⁧⁩ بواسطة ألوان متعددة. لاحظ استخدام عامل التشغيل IN متبوعًا بقائمة قيم الألوان.

Revenue Red or Blue = CALCULATE([Revenue], 'Product'[Color] IN {"Red", "Blue"})

يقوم المقياس التالي بتصفية مقياس ⁧⁩الإيرادات⁧⁩ حسب المنتجات الباهظة الثمن. المنتجات باهظة الثمن هي تلك التي لديها قائمة سعر أكبر من 1000 دولار أمريكي.

Revenue Expensive Products = CALCULATE([Revenue], 'Product'[List Price] > 1000)

تطبيق عوامل تصفية تعبير الجدول

يطبق عامل تصفية تعبير الجدول كائن جدول كعامل تصفية. ويمكن أن يكون مرجعًا لجدول نموذجي؛ ومع ذلك، فمن المحتمل أن دالة DAX هي التي تُرجع كائن الجدول.

بشكل عام، ستستخدم الدالة DAX FILTER لتطبيق شروط التصفية المعقدة، بما في ذلك تلك التي لا يمكن تعريفها بواسطة تعبير عامل تصفية Boolean. يتم تصنيف دالة FILTER كدالة مكرر، وهكذا قد تمرر في جدول أو تعبير جدول، وتعبير لتقييم كل صف من ذلك الجدول.

ترجع دالة FILTER عناصر جدول بنفس البنية تمامًا مثل الذي تم تمرير الجدول فيه. صفوفه الخاصة هي مجموعة فرعية من تلك الصفوف التي تم تمريرها، بمعنى الصفوف التي تم تقييم التعبير بها على أنه TRUE.

يعرض المثال التالي تعبير عامل تصفية جدول يستخدم دالة FILTER:

Revenue High Margin Products =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[List Price] > 'Product'[Standard Cost] * 2
    )
)

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

جميع تعبيرات عامل التصفية التي يتم تمريرها إلى دالة CALCULATEهي تعبيرات عامل تصفية الجدول. تعبير عامل تصفية منطقية هو تدوين مختصر لتحسين تجربة الكتابة والقراءة. داخليًا، يقوم Microsoft Power BI بترجمة تعبيرات التصفية المنطقية إلى تعبيرات تصفية الجدول، وهي الطريقة التي يترجم بها تعريف قياس ⁧⁩"الإيراد الأحمر"⁧.⁩

Revenue Red =
CALCULATE(
    [Revenue],
    FILTER(
        'Product',
        'Product'[Color] = "Red"
    )
)

سلوك التصفية

يحدث ناتجان قياسيان محتملان عند إضافة تعبيرات عامل التصفية إلى دالة CALCULATE:

  • إذا لم تكن الأعمدة (أو الجداول) في سياق التصفية، فستضاف عوامل تصفية جديدة إلى سياق عامل التصفية لتقييم تعبير CALCULATE.
  • إذا كانت الأعمدة (أو الجداول) موجودة بالفعل في سياق التصفية، فسيتم الكتابة فوق عوامل التصفية الموجودة بواسطة عوامل التصفية الجديدة لتقييم تعبير CALCULATE.

تظهر الأمثلة التالية كيفية عمل إضافة تعبيرات عامل التصفية إلى دالة CALCULATE.

ملاحظة

في كل من الأمثلة، لا يتم تطبيق أية عوامل تصفية على الجدول المرئي.

كما في النشاط السابق، تمت إضافة مقياس ⁧⁩"الإيراد الأحمر"⁧⁩ إلى عنصر تحكم جدول يقوم بتجميع حسب المنطقة ويعرض الإيرادات.

⁩تظهر الصورة جدولاً من ثلاثة أعمدة: المنطقة، والإيرادات، و»الإيراد الأحمر». يعرض الجدول 10 صفوف والإجمالي.⁧

لأنه يتم تطبيق أي عامل تصفية على عمود Color في الجدول Product، يضيف تقييم القياس عامل تصفية جديد إلى سياق التصفية. في الصف الأول، تبلغ قيمة المنتجات الحمراء التي تم بيعها في المنطقة الأسترالية 2,681,324.79 دولارًا.

سيؤدي تبديل العمود الأول من الجدول المرئي من Region إلى Color إلى إنتاج نتيجة مختلفة لأن عمود Color في جدول Product الآن في سياق التصفية.

⁩⁧⁩صورة تعرض جدولاً مكونًا من ثلاثة أعمدة: «اللون» و»الإيرادات» و»الإيراد الأحمر». يعرض الجدول 10 صفوف والإجمالي. قيمة «الإيراد الأحمر» هي نفسها لكل صف.⁧

تقيِّم صيغة قياس Revenue Red مقياس Revenue بإضافة عامل تصفية على عمود Color (إلى الأحمر) في جدول Product. ومن ثمَّ، في عنصر التحكم هذا الذي يُجمع حسب اللون، تقوم صيغة القياس بالكتابة فوق سياق التصفية مع عامل تصفية جديد.

قد تكون هذه النتيجة أو لا تكون ما تريده. تقدم الوحدة التالية دالة DAX KEEPFILTERS، وهي دالة لتعديل عامل تصفية يمكنك استخدامها للحفاظ على عوامل التصفية بدلاً من الكتابة فوقها.