محتويات الدورة

Power BI / أساسي: أسس التحليل والنمذجة / الدرس 5

المقاييس والتجميع والنسب

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

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

أهداف الدرس

  • تمييز المقياس عن عمود محسوب مخزن.
  • اختيار SUM وSUMX بحسب تفصيل التعبير.
  • شرح سلوك إجمالي النسب والمقام الصفري.

اختر دور الحساب

يقيم المقياس نتيجة مفردة في سياق الاستعلام والتصفية الحالي. وينتج العمود المحسوب قيمة لكل صف تخزن أثناء معالجة النموذج، وفق افتراض Import التعليمي هنا. استخدم مقياسا لإجمالي أو نسبة ديناميكية؛ واستخدم عمودا حين تحتاج سمة صف مستقرة للتجميع أو العلاقات وتبرر كلفتها. لا يعاد حساب العمود مستقلا لكل اختيار slicer. وتوضح المقاييس الصريحة ملكية تعريف المقياس أكثر من الاعتماد على التجميع الضمني الذي يختاره عرض ما لعمود عددي.

جمع على تفصيل السطر

إذا كان FactSales يحتوي LineAmount متحققا، تستطيع SUM جمع العمود. وإذا لم يوجد إلا Quantity وUnitPrice، تمر SUMX على الصفوف المشمولة وتجمع حاصل ضربهما. يفترض المقطع الأول بيانات السطور الثلاثة دون مرشحات إضافية، فيكون الإيراد المقصود 70. يجيب ضرب إجمالي الكمية بسعر مجموع أو متوسط عن سؤال آخر عندما تختلف الأسعار. تبقى المقاطع غير منفذة وتشتق توقعاتها من البيانات الموثقة. احفظ الفرق بين تعريف مقياس وبين نموذج كامل أو استعلام DAX يستطيع تقييم ذلك التعريف فعلا.

dax مقاييس صريحة لإيراد السطر والنسبة
Revenue = SUMX(FactSales, FactSales[Quantity] * FactSales[UnitPrice])
Units = SUM(FactSales[Quantity])
Average Unit Revenue = DIVIDE([Revenue], [Units])

بالكميات 2 و1 و3 والأسعار 10 و20 و10، يكون Revenue المقصود 70 وUnits ستة وAverage Unit Revenue يساوي 70/6. لم تقيم DAX هذه التعريفات.

أعد النسبة بسياق الإجمالي

ينبغي عادة حساب النسبة الإجمالية بقسمة إجمالي البسط على إجمالي المقام في سياق الإجمالي، لا بجمع نسب الصفوف المعروضة. يقارن البرنامج الثاني نسب تحويل مرجحة وغير مرجحة. لمجموعة نجاح واحد من فرصتين، ولأخرى تسعة من تسعين؛ لذلك يكون الكلي 10/92 لا متوسط 50% و10%. يعيد إجمالي المصفوفة تقييم المقياس في سياقه، ولا يلزم أن يحسب من الخلايا الظاهرة. حدد عقد العمل أولا؛ فقد يصح متوسط متساوي الوزن للمجموعات لسؤال آخر، لكن ينبغي تسميته وفقا لذلك.

python مقارنة نسب افتراضية بحساب دقيق
from fractions import Fraction
groups = [(1, 2), (9, 90)]
overall = Fraction(sum(a for a, _ in groups), sum(b for _, b in groups))
unweighted = sum((Fraction(a, b) for a, b in groups), Fraction(0)) / len(groups)
print(overall)
print(unweighted)
الناتج المتوقع
5/46
3/10

5/46 معدل الفرص الكلي، و3/10 متوسط المجموعات غير المرجح. كلاهما حساب دقيق لكن معناه مختلف.

قرر الفراغ والصفر

توفر DIVIDE بديلا معرفا عندما يكون المقام صفرا، وتعيد BLANK افتراضيا عند عدم تقديم البديل. قد يعني الفراغ عدم وجود نسبة مفيدة، بينما يعني الصفر نتيجة صفرية حقيقية. لا تستبدل الفراغات بأصفار لملء بطاقة دون مراعاة تفسيرها. وتوثق الدالة اشتراط ثبات النتيجة البديلة. يحتاج الاختيار الفارغ والصفوف المفقودة حالات صريحة أيضا. نسق النسبة مئويا بعد صحة معناها العددي؛ فقد يسبب تنسيق قيمة ضُربت سلفا في مئة خطأ عرض يضاعفها مئة مرة أخرى.

اختبر المقاييس بسياقات صغيرة

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

الأخطاء الشائعة وإصلاحها

إجبار الإجمالي على جمع نسب الصفوف

لماذا يحدث؟
أُهمل معنى مقام النسبة.
كيف تصلحه؟
عرف عقد الترجيح أو متوسط المجموعات المقصود صراحة.
كيف تتجنب تكراره؟
احتفظ بحالة مجموعتين ذواتي مقامين غير متساويين.

توقع استجابة عمود محسوب لاختيارات slicer

لماذا يحدث؟
اختلط حساب الصف المخزن بتقييم المقياس عند سياق الاستعلام.
كيف تصلحه؟
استخدم مقياسا مناسبا للتجميع الديناميكي.
كيف تتجنب تكراره؟
اختر دور الحساب قبل كتابة التعبير.

تحويل نسبة فارغة إلى صفر دون تفسير

لماذا يحدث؟
حل اكتمال العرض محل دلالة المقياس.
كيف تصلحه؟
وثق سلوك غياب البيانات والمقام الصفري.
كيف تتجنب تكراره؟
اختبر الحالة الفارغة والصفر الفعلي بصورة مستقلة.

اختبر فهمك

1. لماذا تختلف النسبة الكلية 10/92 عن متوسط 1/2 و9/90؟

اعرض الحل المشروح

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

2. متى ينبغي استخدام SUM لعمود LineAmount موجود بدلا من إعادة حساب SUMX؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • يعاد تقييم المقاييس في السياق، بما يشمل المجاميع العامة.
  • يجب أن يتبع التجميع وترجيح النسب تفصيل العمل المعلن.

المراجع الرسمية