احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

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

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

قيم الأسبوع السابق في LuckyTemplates: المشكلة

إذا نظرنا إلى رقم الأسبوع ، فلدينا 52 أسبوعًا ؛ اضرب ذلك في سبعة أيام (في الأسبوع) ليصبح ذلك 364. إذن ، في كل عام ، يوجد يوم إضافي ، ثم بالنسبة للسنوات الكبيسة ، هناك يومان إضافيان. ينتهي هذا اليوم أو اليومين الإضافيين بالتسبب في الكثير من المشاكل.

لنقم بإنشاء مقياس من جدول التواريخ. سنسميها MAX Week # (رقم). في هذا التحليل ، نستخدم LuckyTemplates Extended Dates Table ؛ هذا يحتوي على ISO Weeknumber ، وهو أمر مفيد للغاية. الآن ، لنأخذ MAX من رقم أسبوع ISO.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

الآن ، دعنا نأخذ جدولًا ونقوم بإسقاط العام بالإضافة إلى MAX Week # . تحتوي مجموعة البيانات هذه على 10 سنوات من البيانات ، ونرى أن أول عامين يحتويان على 52 أسبوعًا. بعد ذلك ، لدينا سنتان مع 53 أسبوعًا ، وثلاث سنوات مع 52 أسبوعًا ، ثم سنتان أخريان مع 53 أسبوعًا وواحدًا بـ 52 أسبوعًا.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

لا يوجد نمط واضح حقًا هنا. ليس من السهل العودة والتنبؤ بأن عام واحد سيكون لديك 52 أسبوعًا وفي العام الآخر سيكون لديك 53 أسبوعًا.

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

في جدول LuckyTemplates Extended Dates الذي نستخدمه ، قامت ميليسا (أحد خبراء LuckyTemplates) بتضمين وظيفة تسمى OFFSETS . دعنا نتعمق في هذه الوظيفة لأنها أساسية تمامًا في حل هذا من منظور DAX.

بالنظر إلى الفترة الحالية (على سبيل المثال ، 20 يناير وهي فترة إنشاء هذا البرنامج التعليمي) ، ما نراه هو أن الإزاحة تساوي صفرًا . الطريقة التي تعمل بها التعويضات هي أنه في الفترة الحالية ، تحصل الإزاحة على صفر.

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

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

الحصول على LuckyTemplates الأسبوع السابق باستخدام DAX

لنقم بإنشاء مقياس جديد ونسميه Wk # السابق . سنبدأ بمتغير ( SelWkOffset ) ، حيث سنقوم فقط بعمل SELECTEDVALUE من WeekOffset . لذلك ، في الصف الحالي ، سوف يرسم WeekOffset ويضع ذلك في المتغير الخاص بنا.

المتغير التالي سيكون النتيجة . هذه هي النتيجة النهائية التي نريدها وسنستخدم CALCULATE لأننا سنغير السياق.

بعد ذلك ، نريد MAX ISO Weeknumber وسيخضع ذلك لشروط التصفية هذه. لذلك ، سنزيل جميع عوامل التصفية من جدول التواريخ ، ولذا سنستخدم الكل هنا. إذا كان لدينا تقطيع التواريخ ، فقد نرغب في استخدام ALLSELECTED ، لكننا لا نفعل ذلك حاليًا ، لذلك سنستخدم ALL لإزالة الفلتر من جدول التواريخ هذا.

وبعد ذلك ، سنقول إن WeekOffset ستكون مساوية لـ SelWkOffset ناقص واحد . هذا هو المكان الذي تصبح فيه OFFSETS قوية للغاية. لا يمكنك استخدام Weeknumber مطروحًا منه واحدًا لأنه يتم إعادة التعيين كل عام. ولكن نظرًا لأن جميع الأوفست متسلسلة ، يمكنك التعامل معها كما لو كنت تتعامل مع العثور على العام السابق وطرح واحدًا لكل سنة سابقة. وبالتالي ، تعمل هذه الإزاحة بنفس الطريقة التي يعمل بها الرقم المتتالي.

يمكننا الآن إغلاق حالة الفلتر وإغلاقها ، وإغلاق الحساب ، وإرجاع النتيجة فقط .

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

الآن ، دعونا نلقي نظرة على كيفية عمل هذا القياس. في الجدول أدناه ، يمكننا أن نرى أنه يفعل بالضبط ما كنا نأمله. في الأسبوع 52 للفترة الأولى من العام التالي ، الأسبوع السابق هو 52. وبعد ذلك ، يتراجع مرة واحدة في كل فترة ، وهكذا.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

الآن ، ماذا تفعل في الحالات التي لا يكون لديك فيها تعويض؟

لنفترض أنك تعمل مع جدول تاريخ الشركة الذي يأتي من مستودع البيانات الخاص بك ولا يتضمن هذه الإزاحات. هناك أسلوب أريد أن أعرضه لك في Power Query. أول مرة رأيتها كانت في مدونة بقلم Imke Feldmann.

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

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

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

بعد ذلك ، نريد إضافة أعمدة الفهرس هذه. الشيء المهم هنا هو أن الفهرس الأول الذي سنضيفه سيكون مؤشرًا على أساس 0. وبعد ذلك ، سنضيف فهرسًا ثانيًا عبارة عن فهرس مبني على أساس واحد.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

لذلك ، إذا أخذنا هذا ودمجنا الأول مع الفهرس القائم على 0 في الفهرس المستند إلى 1 ، فإنه يطابق 521 في 522 صفًا. هذا بالضبط ما كنا نتوقعه لأن الجدول الثاني لن يلتقط مؤشر الصفر لأنه يبدأ من واحد.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

هذا يعطينا رقم الأسبوع السابق. والآن ، سنقوم فقط بتوسيع مجموعتنا الأصلية وإخراج حقل WeekEnding ورقم أسبوع ISO الأصلي حتى لا نكرره.

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

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

احصل على قيم الأسبوع السابق لـ LuckyTemplates باستخدام DAX & Power Query

خاتمة

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

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

هتافات!


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

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

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

كيفية حفظ وتحميل ملف 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؟ كل شيئ ترغب بمعرفته