وظيفة CALCULATE DAX: المشكلات والحلول

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

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

جدول المحتويات

نظرة عامة على دالة CALCULATE DAX

قبل بضعة أشهر ، قدمت في لـ LuckyTemplates. كان يطلق عليه DAX Counterculture حيث قدمت بعض وجهات النظر البديلة حول DAX. 

يتعلق أحد أهمها باستخدام وظيفة CALCULATE. لقد تحدثت عن سبب عدم استخدام CALCULATE خاصة إذا كنت جديدًا في DAX. 

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

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

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

احسب صيغة DAX

ستتعمق هذه المدونة في مقياس سريع يسمى متوسط ​​لكل فئة . إذا كنت في LuckyTemplates لسطح المكتب ، فابدأ بالانتقال إلى جزء الحقول وإنشاء مقياس جديد سريع .

وظيفة CALCULATE DAX: المشكلات والحلول

في نافذة القياس السريع التي ستنبثق ، اختر المتوسط ​​لكل فئة في القائمة المنسدلة للحساب . ثم اسحب ؟ القيمة في حقل نص القيمة الأساسية ، والشهر في حقل الفئة .

وظيفة CALCULATE DAX: المشكلات والحلول

ثم انقر فوق "موافق" وستحصل على صورة مرئية بهذا الشكل. 

وظيفة CALCULATE DAX: المشكلات والحلول

في المحور السيني هي الأرباع - الربع 1 و 2 و 3 و 4. 

وما تريد القيام به هو تلخيص القيم لكل شهر كما هو موضح أدناه ثم أخذ المتوسط ​​عبر هذه القيم. باختصار ، المتوسط ​​لكل فئة ، وهو موضوع مدونتنا. 

وظيفة CALCULATE DAX: المشكلات والحلول

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

وظيفة CALCULATE DAX: المشكلات والحلول

ولدينا نفس الشيء في جدول التواريخ الخاص بنا مع جدول التقويم والشهر وفرز الشهر والربع. هذا يعني أنه يمكننا اختيار ربع السنة أو الشهر إما من جدول التاريخ أو الجدول الأول. 

وظيفة CALCULATE DAX: المشكلات والحلول

الخبر السار مع المتوسط ​​لكل فئة هو أنه يعمل بالفعل بغض النظر عما إذا كان لديك نموذج جدول واحد أو مخطط نجمي.

في هذه المرئيات ، نستخدم الربع من الجدول الأول ...

وظيفة CALCULATE DAX: المشكلات والحلول

 ... بينما يستخدم هذا الربع من جدول التواريخ لدينا. يعمل في كلتا الحالتين. 

وظيفة CALCULATE DAX: المشكلات والحلول

لكن المشكلة في المتوسط ​​لكل فئة هي ببساطة رمز DAX. 

وظيفة CALCULATE DAX: المشكلات والحلول

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

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

يحير ذهني عندما أرى هؤلاء لأنه مجرد مؤشر فوري على أنه ليس لديهم فكرة عما يفعلونه بوظيفة CALCULATE. لذلك أوصي فقط بالابتعاد عنه بدلاً من ذلك. 

رمز DAX للمتوسط ​​لكل فئة

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

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

بشكل أساسي ، ما يحدث هنا هو أنهم يستخدمون وظيفة VALUES للحصول على جميع فئاتنا. على سبيل المثال في الربع الأول ، أي يناير وفبراير ومارس. تقوم VALUES أيضًا بإرجاع جدول لكنها تستخدم عبارة KEEPFILTER لجعلها صالحة كمعامل أول في . 

كما أنهم يحتفظون بوظيفة CALCULATE للتنفيذ في سياق KEEPFILTERS. نظرًا للطريقة التي يعمل بها AVERAGEX ، فإنه يأخذ التعبير الثاني وينفذه في سياق التعبير الأول. 

ما هي المشكلة إذن؟

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

تعتبر المقاييس السريعة فكرة رائعة ، مثل "لنكتب بعض المقاييس الشائعة بحسابات مختلفة من أجلك لأنك جديد في DAX ولا تعرف كل ما يمكن معرفته عن DAX." لكن لماذا يبنونها بهذه الطرق الغريبة والمعقدة؟ 

كيف يُفترض أن يقوم شخص جديد في DAX بإلقاء نظرة على هذا ومعرفة ما يحدث حتى عندما يحتمل أن يكون محترفو DAX يخدشون رؤوسهم قليلاً فوق هذا؟ 

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

الحل الأسهل

استخدام وظيفة SUMMARIZE

كما ذكرت سابقًا ، هناك طريقة أفضل وأبسط للقيام بذلك.

أولاً ، قم بإنشاء متغير جدول باستخدام VAR_Table . بعد ذلك ، سنستخدم لأخذ الجدول ، وتلخيصه حسب الشهر ، وإنشاء عمود القيمة ، وتلخيص قيمنا.

أخيرًا ، سنأخذ متوسط ​​قيمنا باستخدام دالة AVERAGEX

وظيفة CALCULATE DAX: المشكلات والحلول

هذا الرمز أبسط وأكثر منطقية. لا يتضمن الحساب ، الذي لا تحتاجه على أي حال. 

قد تصادف مقالة مدونة تنتقد SUMMARIZE. تقول المدونة إن الطريقة التي يعمل بها SUMMARIZE داخليًا معقدة للغاية.

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

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

استخدام وظيفة GROUPBY

لا أحد لديه مشكلة في استخدام وظيفة GROUPBY ، لذلك دعونا نتعلم كيفية استخدامها أيضًا. مرة أخرى ، قم بإنشاء متغير جدول باستخدام VAR_Table. بعد ذلك ، نقوم بتجميع الشهر وإنشاء عمود القيمة.

بعد ذلك ، نطبق باستخدام CURRENTGROUP ، وهي طريقة عمل GROUPBY. دعنا نلخص قيمتنا ونأخذ AVERAGEX عبرها مرة أخرى. 

يجب أن يبدو رمزنا هكذا.

وظيفة CALCULATE DAX: المشكلات والحلول

مقارنة النتائج: SUMMARIZE vs GROUPBY vs CALCULATE DAX Functions

الآن ، دعنا نرى ما إذا كانت الاختصارات التي قمنا بإرجاع نفس النتائج. 

كما ترى في الصور أدناه ، فإن كلاً من SUMMARIZE المسمى بمتوسط ​​أفضل لكل فئة و GROUPBY المصنف على أنه متوسط ​​أفضل لكل فئة 2 يعرضان نفس الأرقام. 

وظيفة CALCULATE DAX: المشكلات والحلول

تعيد كلتا الصيغتين 3.4 ألف للربع الأول ، و 3.6 ألف للربع الثاني ، و 3.4 ألف للربع الثالث ، و 3.5 ألف للربع الرابع. ومرة أخرى ، فهم يعملون في نموذج بيانات جدول واحد باستخدام الأرباع لجدولنا.

كما أنها تعمل في مخطط النجوم حيث نستخدم الأرباع في جدول التواريخ لدينا. 

وظيفة CALCULATE DAX: المشكلات والحلول


إجراءات سريعة - كيفية استخدامها في نماذج LuckyTemplates
باستخدام وظيفة الحساب داخل
طرق LuckyTemplates الفعالة لاستخدام وظيفة GROUPBY في LuckyTemplates

خاتمة

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

في الواقع ، ربما في 80٪ - 90٪ من الحالات ، لا يوجد أي سبب على الإطلاق للعناء باستخدام CALCULATE لأي شيء. بدلاً من ذلك ، يمكنك استخدام الدالتين SUMMARIZE و GROUPBY وهما أبسط وأكثر منطقية.

إذا كنت ترغب في استكشاف ملف PBIX هذا ، فقد قمت بالفعل بنشره في معرض المقاييس السريعة وقمت بتسمية الملف Better Average Per Category . ما عليك سوى التمرير لأسفل الصفحة للعثور على ملف PBIX الذي يمكنك تنزيله ولعبه بنفسك. 

أتمنى لك كل خير،

جريج ديكلر

Leave a Comment

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

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

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

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

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

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