TOP

DAX-الدرس الثاني. CALCULATE الدالة

YouLibreCalc for Excel logo

وصف

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

بناء جملة الدالة CALCULATE()

=CALCULATE(< التعبير الإحصائي >، < مرشح1 >، < filter2 >،...)

< التعبير الإحصائي >

التعبير الإحصائي يجب أن تعيد لنا نتيجة الحساب (قيمة، وليس جدول). ولهذا السبب، غالبًا ما يتم استخدام الوظائف الإحصائية من هذا النوع في هذا الإعداد SUM , دقيقة , الأعلى , العدادات إلخ.

  1. SUM([ اسم العمود ])
  2. SUM([ أعمدة الاسم1 ]) / الأعلى([ أعمدة الاسم2 ])
  3. اسم حقل حساب آخر (قياس)

< مرشح1 >، < filter2 >، ...

منقي يحدد نطاق البيانات التي سيتم العمل عليها. شروط اختيار القيم محددة هنا.

  1. [ اسم العمود ] = آلي
  2. [ اسم العمود ] >= 6
  3. ALL( 'اسم الطاولة' ) أو ALL( 'اسم الطاولة' [ اسم العمود ] )
  4. FILTER ( 'اسم الطاولة' , 'اسم الطاولة' [ اسم العمود ] = " أخضر ")

لنفترض أن لدينا مثل هذا الجدول، الذي يسمى Demo وتحميلها في PowerPivot .

لنقم بإنشاء جدول ملخص بناءً عليه ونحسب عدد السجلات لكل منتج.

الآن لنقم بإنشاء حقل حسابي جديد (Measure) Count_All_Product في جدولنا المحوري، والذي سيعرض إجمالي عدد السجلات في جميع الصفوف.

كيف حصلنا على الأرقام في حقل الحساب Count_All_Product 16 ؟ والتفسير هو أننا قمنا بإزالة جميع عوامل التصفية التي تم تطبيقها في الجدول المحوري لهذا الحقل (كل صف في الجدول المحوري عبارة عن مرشح منفصل)، وذلك باستخدام الدالة ALL() . وهذا يعني، بمعنى آخر، وظيفة ALL (Demo) يعطي الأمر لإزالة كافة عوامل التصفية للحقل المحسوب Count_All_Product المطبق على الجدول Demo .

دعونا نضيف حقل آخر (City) في صفوف لمعرفة مبيعات كل منتج حسب المدينة:

نرى أن الأرقام موجودة في الميدان Count of Rows التغيير، ولكن ليس في حقل الحساب Count_All_Product. هذا صحيح، لأنه بالنسبة للصيغة الأخيرة، قمنا بإزالة جميع عوامل التصفية في الصيغة. الآن دعونا نجري بعض التغييرات الطفيفة على صيغتنا ونرى النتيجة.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

قمنا بتغيير الوسيطة إلى الدالة ALL() عن طريق الاستبدال Demo على Demo[Product] . الآن لن تتم إزالة عوامل التصفية للجدول بأكمله Demo ، ولكن فقط لعموده Demo[Product] .

لذلك نرى ما هو على أرض الملعب Count of Rows المرشحات سارية المفعول Product و City وعامل التصفية فقط في الحقل المحسوب Count_All_Product City .