يوضح هذا القسم كيفية إنشاء عوامل تصفية داخل صيغ تعبيرات تحليل البيانات (DAX). يمكنك إنشاء عوامل تصفية داخل الصيغ، لتقييد القيم من البيانات المصدر المستخدمة في العمليات الحسابية. يمكنك تنفيذ ذلك عن طريق تحديد جدول كمدخل للصيغة، ثم تعريف تعبير عامل تصفية. يتم استخدام تعبير عامل التصفية الذي توفره للاستعلام عن البيانات وإرجاع مجموعة فرعية فقط من البيانات المصدر. يتم تطبيق عامل التصفية بشكل ديناميكي في كل مرة تقوم فيها بتحديث نتائج الصيغة، استنادا إلى السياق الحالي للبيانات.
في هذه المقالة
إنشاء عامل تصفية على جدول مستخدم في صيغة
يمكنك تطبيق عوامل التصفية في الصيغ التي تأخذ جدولا كمدخل. بدلا من إدخال اسم جدول، يمكنك استخدام الدالة FILTER لتعريف مجموعة فرعية من الصفوف من الجدول المحدد. ثم يتم تمرير تلك المجموعة الفرعية إلى دالة أخرى، لعمليات مثل عمليات التجميعات المخصصة.
على سبيل المثال، لنفترض أن لديك جدول بيانات يحتوي على معلومات طلبات حول البائعين، وتريد حساب المبلغ الذي باعه كل موزع. على الرغم من ذلك، ستحتاج إلى إظهار مبلغ المبيعات فقط لأولئك البائعين الذين باعوا وحدات متعددة من منتجاتك ذات القيمة الأعلى. تعرض الصيغة التالية، استنادا إلى مصنف DAX النموذجي، مثالا واحدا لكيفية إنشاء هذه العملية الحسابية باستخدام عامل تصفية:
=SUMX(
FILTER ('ResellerSales_USD', 'ResellerSales_USD'[الكمية] > 5 &&
'ResellerSales_USD'[ProductStandardCost_USD] > 100),
'ResellerSales_USD'[SalesAmt]
)
يحدد الجزء الأول من الصيغة إحدى دالات التجميع Power Pivot، التي تأخذ جدولا كوسيطة. تحسب الدالة SUMX المجموع في جدول.
الجزء الثاني من الصيغة يحدد
FILTER(table, expression),SUMXالبيانات التي يجب استخدامها.SUMXتتطلب جدولا أو تعبيرا ينتج عنه جدول. هنا، بدلا من استخدام كل البيانات الموجودة في جدول، يمكنك استخدام الدالةFILTERلتحديد الصفوف التي سيتم استخدامها من الجدول.
يتكون تعبير عامل التصفية من جزأين: الجزء الأول يسمي الجدول الذي ينطبق عليه عامل التصفية. ويعرف الجزء الثاني تعبيرا لاستخدامه كشرط التصفية. في هذه الحالة، تقوم بالتصفية على البائعين الذين باعوا أكثر من 5 وحدات والمنتجات التي تكلف أكثر من 100 دولار. يعد عامل التشغيل && عامل تشغيل AND منطقي، مما يشير إلى وجوب تشي جزأي الشرط صحيحا لكي ينتمي الصف إلى المجموعة الفرعية التي تمت تصفيتها.يحدد الجزء الثالث من الصيغة الدالة
SUMXبالقيم التي يجب جمعها. في هذه الحالة ، فأنت تستخدم مبلغ المبيعات فقط.
لاحظ أن دالات مثل FILTER، التي ترجع جدولا، لا ترجع الجدول أو الصفوف مباشرة أبدا، بل تكون دائما مضمنة في دالة أخرى. لمزيد من المعلومات حول الدالة FILTER والدالات الأخرى المستخدمة للتصفية، بما في ذلك المزيد من الأمثلة، راجع دالات التصفية (DAX).ملاحظة
يتأثر تعبير عامل التصفية بالسياق الذي يتم استخدامه فيه. على سبيل المثال، إذا كنت تستخدم عامل تصفية في مقياس، وتم استخدام القياس في PivotTable أو PivotChart، فقد تتأثر المجموعة الفرعية من البيانات التي يتم إرجاعها بعوامل التصفية أو مقسمات طرق العرض الإضافية التي قام المستخدم بتطبيقها في PivotTable. لمزيد من المعلومات حول السياق، راجع السياق في صيغ DAX.
عوامل التصفية التي تزيل التكرارات
بالإضافة إلى تصفية قيم معينة، يمكنك إرجاع مجموعة فريدة من القيم من جدول أو عمود آخر. قد يكون هذا مفيدا عندما تريد حساب عدد القيم الفريدة في عمود، أو استخدام قائمة قيم فريدة للعمليات الأخرى. توفر DAX دالتين لإرجاع القيم المتميزة: الدالة DISTINCTوالدالة VALUES.
- تفحص الدالة DISTINCT عمودا واحدا تحدده كوسيطة للدالة، وترجع عمودا جديدا يحتوي على القيم المميزة فقط.
- ترجع الدالة VALUES أيضا قائمة بالقيم الفريدة، ولكنها ترجع أيضا العضو غير المعروف. يفيد ذلك عندما تستخدم قيما من جدولين تربطهما علاقة، وتكون قيمة مفقودة في أحد الجداول وموجودة في الجدول الآخر. لمزيد من المعلومات حول العضو المجهول، راجع السياق في صيغ DAX.
ترجع كلتا الدالتين عمودا كاملا من القيم؛ وبالتالي، يمكنك استخدام الدالات للحصول على قائمة بالقيم التي يتم تمريرها بعد ذلك إلى دالة أخرى. على سبيل المثال، يمكنك استخدام الصيغة التالية للحصول على قائمة بالمنتجات المميزة التي تم بيعها من قبل بائع معين، باستخدام مفتاح المنتج الفريد، ثم حساب المنتجات الموجودة في تلك القائمة باستخدام الدالة COUNTROWS:
=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))
كيفية تأثير السياق على عوامل التصفية
عند إضافة صيغة DAX إلى PivotTable أو PivotChart، يمكن أن تتأثر نتائج الصيغة بالسياق. إذا كنت تعمل في جدول Power Pivot، فإن السياق هو الصف الحالي وقيمه. إذا كنت تعمل في PivotTable أو PivotChart، يعني السياق مجموعة البيانات أو مجموعتها الفرعية التي يتم تعريفها بواسطة عمليات مثل التقسيم أو التصفية. يفرض تصميم PivotTable أو PivotChart أيضا سياقا خاصا به. على سبيل المثال، إذا أنشأت PivotTable يجمع المبيعات حسب المنطقة والسنة، فستظهر البيانات التي تنطبق على تلك المناطق والسنوات فقط في PivotTable. لذلك، يتم حساب أي مقاييس تقوم بإضافتها إلى PivotTable في سياق عناوين الأعمدة والصفوف، بالإضافة إلى أي عوامل تصفية في صيغة القياس.
لمزيد من المعلومات، راجع السياق في صيغ DAX.
إزالة عوامل التصفية
عند استخدام صيغ معقدة، قد تحتاج إلى معرفة عوامل التصفية الحالية بالضبط، أو قد ترغب في تعديل جزء عامل التصفية في الصيغة. يوفر DAX العديد من الدالات التي تمكنك من إزالة عوامل التصفية، والتحكم في الأعمدة التي يتم الاحتفاظ بها كجزء من سياق عامل التصفية الحالي. يوفر هذا القسم نظرة عامة حول كيفية تأثير هذه الدالات على النتائج في صيغة.
تجاوز كافة عوامل التصفية باستخدام الدالة ALL
يمكنك استخدام الدالة ALL لتجاوز أي عوامل تصفية تم تطبيقها مسبقا، وإرجاع جميع الصفوف في الجدول إلى الدالة التي تقوم بتنفيذ العملية التجميعية أو أي عملية أخرى. إذا استخدمت عمودا واحدا أو أكثر، بدلا من جدول، كوسيطات ل ALL، ALL ترجع الدالة كل الصفوف، متجاهلة أي عوامل تصفية سياق.
ملاحظة
إذا كنت ملما بمصطلحات قاعدة البيانات الارتباطية، يمكنك التفكير ALL في إنشاء الصلة الخارجية اليسرى الطبيعية لكل الجداول.
على سبيل المثال، لنفترض أن لديك الجداول، المبيعات، والمنتجات، وتريد إنشاء صيغة لحساب مجموع المبيعات للمنتج الحالي مقسوما على مبيعات كل المنتجات. يجب أن تأخذ في الاعتبار حقيقة أنه إذا تم استخدام الصيغة في مقياس، فمن المحتمل أن مستخدم PivotTable يستخدم مقسم طريقة عرض لتصفية منتج معين، مع وجود اسم المنتج في الصفوف. لذلك، للحصول على القيمة الحقيقية للمقام بغض النظر عن أي عوامل تصفية أو مقسمات طرق عرض، يجب إضافة الدالة ALL لتجاوز أي عوامل تصفية. الصيغة التالية هي مثال لكيفية استخدام الكل لتجاوز تأثيرات عوامل التصفية السابقة:
=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))
- يحسب الجزء الأول من الصيغة، SUM (المبيعات [المبلغ])، البسط.
- يأخذ المجموع في الاعتبار السياق الحالي، مما يعني أنه إذا أضفت الصيغة إلى عمود محسوب، فسيتم تطبيق سياق الصف، وإذا أضفت الصيغة إلى PivotTable كمقياس، فسيتم تطبيق أي عوامل تصفية مطبقة في PivotTable (سياق عامل التصفية).
- يحسب الجزء الثاني من الصيغة المقام. تتجاوز الدالة ALL أي عوامل تصفية قد يتم تطبيقها على
Productsالجدول.
لمزيد من المعلومات، بما في ذلك الأمثلة التفصيلية، راجع الدالة ALL.
تجاوز عوامل تصفية معينة باستخدام الدالة ALLEXCEPT
تتجاوز الدالة ALLEXCEPT أيضا عوامل التصفية الموجودة، ولكن يمكنك تحديد الاحتفاظ ببعض عوامل التصفية الموجودة. تحدد الأعمدة التي تسميها كوسائط للدالة ALLEXCEPT الأعمدة التي ستستمر في تصفيتها. إذا أردت تجاوز عوامل التصفية من معظم الأعمدة وليس جميعها، فستكون الدالة ALLEXCEPT أكثر ملاءمة من ALL. تعتبر الدالة ALLEXCEPT مفيدة بشكل خاص عند إنشاء تقارير PivotTable قد تتم تصفيتها على أعمدة متعددة مختلفة، وتريد التحكم في القيم المستخدمة في الصيغة. لمزيد من المعلومات، بما في ذلك مثال مفصل حول كيفية استخدام الدالة ALLEXCEPT في PivotTable، راجع الدالة ALLEXCEPT