Applies ToExcel لـ Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

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

في هذه المقالة

إنشاء عامل تصفية على جدول مستخدم في صيغة

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

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

=SUMX(      FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 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 لتجاوز أي عوامل تصفية. الصيغة التالية هي أحد الأمثلة على كيفية استخدام ALL لتجاوز تأثيرات عوامل التصفية السابقة:

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • يحسب الجزء الأول من الصيغة SUM (Sales[Amount]) البسط.

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

  • الجزء الثاني من الصيغة، يحسب المقام. تتجاوز الدالة ALL أي عوامل تصفية قد يتم تطبيقها على جدول Products .

لمزيد من المعلومات، بما في ذلك الأمثلة التفصيلية، راجع الدالة ALL.

تجاوز عوامل تصفية محددة باستخدام الدالة ALLEXCEPT

تتجاوز الدالة ALLEXCEPT أيضا عوامل التصفية الموجودة، ولكن يمكنك تحديد أنه يجب الاحتفاظ ببعض عوامل التصفية الموجودة. تحدد الأعمدة التي تسميها كوسيطات إلى الدالة ALLEXCEPT الأعمدة التي ستستمر تصفيتها. إذا كنت ترغب في تجاوز عوامل التصفية من معظم الأعمدة ولكن ليس كلها، فإن ALLEXCEPT أكثر ملاءمة من ALL. تكون الدالة ALLEXCEPT مفيدة بشكل خاص عند إنشاء PivotTables التي قد تتم تصفيتها على العديد من الأعمدة المختلفة، وتريد التحكم في القيم المستخدمة في الصيغة. لمزيد من المعلومات، بما في ذلك مثال مفصل حول كيفية استخدام ALLEXCEPT في PivotTable، راجع الدالة ALLEXCEPT.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

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