استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

لدينا سيناريو مثير للاهتمام لك اليوم. ظهر هذا عدة مرات مؤخرًا في منتدى LuckyTemplates. ما أراد الناس فعله هو التقاط صورة مرئية (يمكن أن تكون رسمًا بيانيًا خطيًا أو مخططًا شريطيًا) وتغييرها ديناميكيًا في تاريخ البدء. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي أسفل هذه المدونة.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

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

عينة من السيناريوهات الخاصة بذكاء الوقت في DAX

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

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

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

دعنا ننتقل إلى LuckyTemplates ونلقي نظرة على نموذج البيانات الخاص بنا أولاً. هذا نموذج بيانات بسيط حقًا مع جدول تواريخ ممتد وجدول أسعار موضعي متصل بالتواريخ.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

استخدام إزاحات لتحليل الوقت في DAX

أحد الأشياء التي سنعمل عليها هو التعويضات . يتم حساب الإزاحات في جدول التاريخ الممتد ديناميكيًا. في كل مرة يتم فيها تحديث التقرير أو فتحه ، يمر عبر رمز M. على سبيل المثال ، في إزاحة شهرية ، تقوم بتعيين الشهر الحالي بـ 0 ، والشهر السابق بـ -1 ، وشهرين للخلف بـ -2. بالنظر إلى المستقبل ، فإنه يخصص الشهر التالي +1 ، ولمدة شهرين في المستقبل +2.

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

يعني استخدام التعويضات استخدام سلسلة متصلة من الأرقام حيث يكون العودة بالشهر دائمًا -1 والمضي قدمًا كل شهر دائمًا +1 بغض النظر عن المكان الذي قد تكون فيه في السنة.

تنفيذ استراتيجية البط المطاطي لذكاء الوقت في DAX

في الماضي ، تحدثت عن " التملص المطاطي " ، وهو عبارة عن تفسير استراتيجيتك لفظيًا بصوت عالٍ قبل أن تبدأ في كتابة مؤشر DAX الخاص بك.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

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

حصاد الإزاحات من تاريخ البدء

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

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

حساب المدى الشهري

هذا هو مقياسنا لـ " ضمن النطاق الشهري" ، حيث نختار سنتنا (التي حصدناها من جدول السنة المنفصلة) وشهرنا (الذي حصدناه من جدول الشهر غير المتصل).

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

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

حساب إزاحة شهر البدء والانتهاء

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

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

من هذه النقطة ، يمكننا أخذ تعويض الشهر المنتهي ، وهو فقط شهر البداية + 11 شهرًا.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

ثم ننظر إلى كل تاريخ محدد ونحدد ما إذا كان يقع ضمن إزاحة الشهر الأول وإزاحة شهر النهاية. إذا كان ضمن تلك الفترة ، فإننا نعطيه 1 وإذا لم يكن كذلك ، فإننا نعطيه 0.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

حساب المدى الأسبوعي

دعونا نرى كيف يبدو هذا من وجهة نظر أسبوعية. تبدأ الصورة المرئية في البداية بشكل جيد وتنتقل من الأسبوع الأول إلى الأسبوع 52. حتى الآن ، جيد جدًا.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

ولكن إذا نقرنا على السنوات الأخرى في أداة تقطيع العام ، فيمكننا أن نرى الأسبوع 52 بينما البعض لديه أسبوع 53 ، والذي يمثل الكثير من المشاكل. يمكنك أن ترى من هذا المثال أن المشكلة بدأت في الظهور.

لدينا فترة تبدأ من عام 2020 والأسبوع 15 ، ولكن فترة الانتهاء هي عام 2021 والأسبوع 13 بدلاً من عام 2021 والأسبوع 14 .

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

إذا عدنا إلى الأسبوع 1 ، يمكننا أن نرى أنه يبدأ جيدًا ، لكنه ينتهي في الأسبوع 52. إذا نظرنا إلى حساب الأسبوع 53 هنا ، فإن الحد الأقصى لرقم الأسبوع لعامي 2020 و 2021 هو 53 أسبوعًا. هذا لن يعمل من أجل التفاصيل الأسبوعية.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

دعونا نرى ما يمكننا القيام به لإنجاح هذا. نحتاج إلى إصلاح حساب DAX هنا في هذا الجزء:

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

هذا لأنه في بعض الحالات ، يكون 51 صحيحًا عندما يكون هناك 52 أسبوعًا فقط في السنة ، ولكن بالنسبة للسنة التي يوجد فيها 53 أسبوعًا ، فإنها ستتوقف عن تلك الفترة الأخيرة. هذا هو بالضبط ما رأيناه في الصورة الديناميكية لأسابيع ، حيث أزال الحساب تلك الفترة الأخيرة في عامي 2020 و 2021.

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

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

ولكن إذا عدنا هنا إلى ISO WeekNumber ، فيمكننا أن نرى أن رقم السنة والأسبوع لا يحددان بشكل فريد الإزاحة الأسبوعية في تلك الفترة الأولى.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

توصلت إلى طريقة مضادة للرصاص للقيام بذلك. يمكنك استخدام MIN ، ولكن من المنطقي إنشاء مقياس تعويض الأسبوع الأول هذا. من أجل الحصول على تعويض الأسبوع 1 ، نتعامل مع الأسبوع 2 لأنه لا يتم تقسيمه أبدًا. بغض النظر عما إذا كان هناك 52 أو 53 أسبوعًا في السنة ، يبقى الأسبوع 2 سليمًا.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

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

حساب ضمن النطاق الأسبوعي

ثم نعود إلى القياس الأسبوعي ضمن النطاق ، ونكتب عبارة IF حيث إذا كان رقم الحصاد للأسبوع 1 ، فإننا نحسب الأسبوع الأول. إذا لم يكن الأسبوع الأول ، فإننا نحسب فقط تعويض أسبوع البدء كما فعلنا في الحساب الشهري السابق.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

وبعد ذلك ، سيكون تعويض الأسبوع الختامي هو إزاحة الأسبوع الأول + الحد الأقصى لرقم الأسبوع الذي يمكن أن يكون إما 52 أو 53. ثم نطرح 1 فقط حتى لا نضاعف حساب إزاحة البداية.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

يمكننا أن نفعل نفس البنية التي استخدمناها للنطاق الشهري لفلترة الأسابيع ، حيث يحصل أي شيء يقع بين إزاحة البداية والنهاية على 1 ، وأي شيء لا يحصل على 0.

ثم سنضع المقياس ضمن النطاق الأسبوعي في جزء التصفية. كل شيء يتم فحصه ويبدو صحيحًا تمامًا.

استخبارات الوقت في DAX: كيفية تحديد فترة البدء ديناميكيًا

يمكننا النقر فوق محور التشغيل وتشغيل دقة الأسبوع. يمكننا أن نرى أنها تعمل بشكل صحيح تمامًا كما فعلت في سياق الشهر.

خاتمة

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

إذا كنت قد استمتعت بالمحتوى المغطى في هذا البرنامج التعليمي المحدد ، فلا تنس الاشتراك في قناة LuckyTemplates التلفزيونية. لدينا قدر هائل من المحتوى يصدر طوال الوقت مني ومن مجموعة من منشئي المحتوى ، وكلهم مكرسون لتحسين طريقة استخدامك لـ LuckyTemplates ومنصة Power.


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

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

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

كيفية حفظ وتحميل ملف 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 لاحتياجات إعداد تقارير الأعمال الخاصة بك.

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته