استخدام وظائف معدّل التصفية

مكتمل

عند استخدام دالة CALCULATE، يمكنك تمرير في وظائف تعديل التصفية، والتي تسمح لك بإنجاز أكثر من إضافة عوامل التصفية وحدها.

إزالة عوامل التصفية

استخدم دالة DAX REMOVEFILTERS كتعبير عامل تصفية CALCULATE لإزالة عوامل التصفية من سياق التصفية. يمكن أن تزيل عوامل التصفية من عمود واحد أو أكثر أو من كافة الأعمدة في جدول واحد.

ملاحظة

دالة REMOVEFILTERS جديدة نسبيًا. في الإصدارات السابقة من DAX، قمت بإزالة عوامل التصفية باستخدام دالة أو متغيرات DAX ALL، بما في ذلك ALLEXCEPT ودالات DAX ALLNOBLANKROW. هذه الدالات تعمل مثل كل من معدلات التصفية والدالات التي تقوم بإرجاع جداول إلى قيم مميزة. يتم ذكر هذه الوظائف الآن لأنك من المحتمل أن تجد أمثلة على الوثائق والصيغ التي تزيل عوامل التصفية باستخدامها.

في المثال التالي، سيتم إضافة مقياس جديد إلى جدول Sales الذي يقيم مقياس Revenue ولكن يقوم بذلك عن طريق إزالة عوامل التصفية من الجدول Sales Territory. قم بتنسيق القياس كعملة مع منزلتين عشريتين.

Revenue Total Region = CALCULATE([Revenue], REMOVEFILTERS('Sales Territory'))

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

صورة تعرض مصفوفة بعنوان "إيرادات البائع" تحتوي على "مجموعة" و"بلد" و"منطقة" مجمعة في الصفوف وملخصات "الإيرادات" و"إجمالي الإيرادات في المنطقة". قيمة "إجمالي الإيرادات في المنطقة" هي نفسها لكل مجموعة صف.

لاحظ أن كل قيمة ⁧⁩"إجمالي الإيرادات للمنطقة"⁧⁩ هي نفسها. إنها قيمة إجمالي الإيرادات.

في حين أن هذه النتيجة من تلقاء نفسها ليست مفيدة، عندما يتم استخدامها كمقام في نسبة، فإنه يحسب في المئة من المجموع الكلي. لذلك، ستقوم الآن بتجاوز تعريف قياس⁩ ⁦⁩إجمالي إيرادات المنطقة بالتعريف التالي. (يغير هذا التعريف الجديد اسم القياس ويعلن عن متغيرين. تأكد من تنسيق القياس كنسبة مئوية مع رقمين عشريتين.)

Revenue % Total Region =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalRegionRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS('Sales Territory')
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalRegionRevenue
    )

تحقق من أن عنصر تحكم المصفوفة يعرض الآن قيم ⁧⁩"إجمالي الإيرادات ٪ للمنطقة"⁧.⁩

⁩⁧⁩صورة تعرض مرئيات مصفوفة بعنوان "إيرادات البائع" تضم "المجموعة" و"البلد" و"المنطقة" مجمعة في الصفوف، وملخصات "الإيرادات" و"إجمالي نسبة الإيرادات في المنطقة".⁧

ستقوم الآن بإنشاء مقياس آخر، ولكن هذه المرة، سوف تحسب نسبة الإيرادات لمنطقة مقسومة على إيرادات بلدها.

قبل إكمال هذه المهمة، لاحظ أن قيمة ⁧⁩"إجمالي الإيرادات ٪ للمنطقة"⁧⁩ للمنطقة الجنوبية الغربية هي 22.95 بالمئة. تحقق في سياق التصفية لهذه الخلية. بادر بالتبديل إلى طريقة عرض البيانات وبعد ذلك، ثم في جزء Fields حدد جدول Sales Territory.

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

  • ⁩مجموعة⁧⁩ - أمريكا الشمالية
  • ⁩البلد⁧⁩ - الولايات المتحدة
  • ⁩المنطقة⁧⁩ - جنوب غرب

صورة تعرض عوامل تصفية جدول Power BI Desktop لجدول "منطقة المبيعات". يتم تطبيق عوامل التصفية على (1) المجموعة = أمريكا الشمالية و(2) البلد = الولايات المتحدة و(3) المنطقة = الجنوب الغربي.

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

⁩⁧⁩تُظهر الصورة قائمة سياق العمود، ويتم تمييز أمر «مسح عوامل التصفية».⁧

لاحظ وجود خمسة صفوف الآن، كل صف ينتمي إلى الولايات المتحدة. وبناءً على ذلك، عند مسح عوامل تصفية العمود ⁧⁩"المنطقة"،⁧⁩ مع الاحتفاظ بعوام التصفية في أعمدة ⁧⁩البلد⁧⁩ ⁧⁩والمجموعة،⁩ سيكون لديك سياق تصفية جديد خاص ببلد المنطقة.

في تعريف القياس التالي، لاحظ كيف يمكنك مسح أو إزالة عامل تصفية من عمود. في منطق DAX، هو تغيير صغير وخفي يتم إجراؤه على صيغة قياس إجمالي الإيرادات ٪ : تزيل الدالة REMOVEFILTERS عوامل التصفية من عمود Region بدلاً من جميع الأعمدة في جدول Sales Territory.

Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS('Sales Territory'[Region])
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalCountryRevenue
    )

أضف مقياس Revenue % Total Country إلى الجدول Sales ثم نسقه كنسبة مئوية مع مكانيين عشريين. إضافة مقياس جديد إلى المصفوفة المرئية.

صورة تعرض مرئيات مصفوفة بعنوان "إيرادات البائع" تضم "مجموعة" و"بلد" و"منطقة" مجمعة في الصفوف، وملخصات "الإيرادات" و"إجمالي نسبة الإيرادات في المنطقة" و"إجمالي نسبة الإيرادات في البلد". قيم "إجمالي نسبة الإيرادات في البلد" للولايات المتحدة ليست 100٪.

لاحظ أن كافة القيم، باستثناء تلك القيم لمناطق الولايات المتحدة، هي 100 بالمئة. والسبب هو شركة " Adventure Works"، فإن الولايات المتحدة لديها مناطق، في حين أن جميع البلدان الأخرى لا تفعل ذلك.

ملاحظة

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

المثال التالي هو آخر إجراء ستقوم بإنشائه. أضف مقياس ⁧⁩إجمالي الإيرادات %⁧ للمجموعة⁩ ثم قم بتنسيقه كنسبة مئوية مع منزلتين عشريتين. ثم إضافة مقياس جديد إلى المصفوفة المرئية.

Revenue % Total Group =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalGroupRevenue =
    CALCULATE(
        [Revenue],
        REMOVEFILTERS(
            'Sales Territory'[Region],
            'Sales Territory'[Country]
        )
    )
RETURN
    DIVIDE(
        CurrentRegionRevenue,
        TotalGroupRevenue
    )

⁩⁧⁩صورة تعرض مرئيات مصفوفة بعنوان "إيرادات البائع" تضم "المجموعة" و"البلد" و"المنطقة" مجمعة في الصفوف، وملخصات "الإيرادات" و"إجمالي نسبة الإيرادات في المنطقة" و"إجمالي نسبة الإيرادات في البلد" و"إجمالي نسبة الإيرادات للمجموعة".⁧

عند إزالة عوامل التصفية من عمودي Region و Country في الجدول Sales Territory، سيحسب المقياس إيراد المنطقة كنسبة من إيرادات المجموعة.

الحفاظ على عوامل التصفية

يمكنك استخدام دالة DAX KEEPFILTERS كتعبير عامل تصفية في الدالة CALCULATE للاحتفاظ بعوامل التصفية.

لمشاهدة كيفية إنجاز هذه المهمة، قم بالتبديل إلى ⁧⁩الصفحة 1⁧⁩ من التقرير. ثم تعديل تعريف قياس Revenue Red لاستخدام الدالة KEEPFILTERS.

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

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

في عنصر تحكم بالجدول، لاحظ وجود قيمة واحدة فقط ⁧⁩»الإيراد الأحمر».⁩ السبب هو لأن تعبير عامل التصفية المنطقية يحتفظ عوامل التصفية الموجودة على عمود Color في جدول Product. السبب في الألوان الأخرى غير الأحمر هي BLANK لأن سياقات عامل التصفية وتعبيرات التصفية يتم دمجها من أجل عاملي التصفية هذين. يتم تقاطع اللون الأسود والأحمر ولأن ما غير ذلك لا يمكن أن يكون TRUE في نفس الوقت، يتم تصفية التعبير بواسطة صفوف المنتج. من الممكن فقط أن يكون كلا المرشحين الأحمرين TRUE في نفس الوقت، وهو ما يفسر سبب إظهار قيمة Revenue Red واحدة.

استخدام العلاقات غير النشطة

يمكن أن تقوم علاقة النموذج غير نشطة فقط بنشر عوامل التصفية عند تمرير دالة DAX USERELATIONSHIP كتعبير عامل تصفية لدالة CALCULATE. عند استخدام هذه الوظيفة لإجراء علاقة غير نشطة، ستصبح العلاقة النشطة غير نشطة تلقائياً.

راجع مثالاً لتعريف القياس الذي يستخدم علاقة غير نشطة لحساب قياس ⁧⁩الإيرادات⁧⁩ حسب التواريخ المشحونة:

Revenue Shipped =
CALCULATE (
    [Revenue],
    USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)

تعديل سلوك العلاقة

يمكنك تعديل سلوك علاقة النموذج عند تقييم تعبير بتمرير دالة DAX CROSSFILTER كتعبير عامل تصفية إلى دالة CALCULATE. إنها إمكانية متقدمة

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