ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
يعد استرداد قيم الفترة السابقة في LuckyTemplates مهمة شائعة ، ولكن استرداد قيم الأسبوع السابق يتطلب بعض الاهتمام الخاص. في هذا البرنامج التعليمي ، سأناقش طريقتين مباشرتين ومتعددتي الاستخدامات للحصول على قيم الأسبوع السابق لـ LuckyTemplates والتي يمكن أن تكون إضافات مفيدة إلى مربع الأدوات - واحدة باستخدام DAX والأخرى باستخدام Power Query. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي أسفل هذه المدونة.
جاء هذا البرنامج التعليمي من سؤال تلقيته من أحد أعضاء LuckyTemplates. سأل العضو ما هي أسهل طريقة لتحديد رقم الأسبوع السابق. هذا سؤال شائع أواجهه. يبدو الأمر بسيطًا جدًا ، ولكن كلما تعمقت فيه ، أدركت أن هناك الكثير مما يجب معالجته.
جدول المحتويات
قيم الأسبوع السابق في LuckyTemplates: المشكلة
إذا نظرنا إلى رقم الأسبوع ، فلدينا 52 أسبوعًا ؛ اضرب ذلك في سبعة أيام (في الأسبوع) ليصبح ذلك 364. إذن ، في كل عام ، يوجد يوم إضافي ، ثم بالنسبة للسنوات الكبيسة ، هناك يومان إضافيان. ينتهي هذا اليوم أو اليومين الإضافيين بالتسبب في الكثير من المشاكل.
لنقم بإنشاء مقياس من جدول التواريخ. سنسميها MAX Week # (رقم). في هذا التحليل ، نستخدم LuckyTemplates Extended Dates Table ؛ هذا يحتوي على ISO Weeknumber ، وهو أمر مفيد للغاية. الآن ، لنأخذ MAX من رقم أسبوع ISO.
الآن ، دعنا نأخذ جدولًا ونقوم بإسقاط العام بالإضافة إلى MAX Week # . تحتوي مجموعة البيانات هذه على 10 سنوات من البيانات ، ونرى أن أول عامين يحتويان على 52 أسبوعًا. بعد ذلك ، لدينا سنتان مع 53 أسبوعًا ، وثلاث سنوات مع 52 أسبوعًا ، ثم سنتان أخريان مع 53 أسبوعًا وواحدًا بـ 52 أسبوعًا.
لا يوجد نمط واضح حقًا هنا. ليس من السهل العودة والتنبؤ بأن عام واحد سيكون لديك 52 أسبوعًا وفي العام الآخر سيكون لديك 53 أسبوعًا.
الشيء التالي الذي قد تفكر فيه إذا كنت معتادًا على دالات معلومات الوقت في DAX هو استخدام دالة DATEADD ، التي تنقل نطاقًا من التواريخ إلى الخلف بفترة زمنية معينة. إنه يفعل ذلك جيدًا حقًا في اليوم والشهر والربع والسنة ، لكنه لا يشمل الأسبوع ، لذلك يتعين علينا إيجاد طريقة مختلفة للقيام بذلك.
في جدول LuckyTemplates Extended Dates الذي نستخدمه ، قامت ميليسا (أحد خبراء LuckyTemplates) بتضمين وظيفة تسمى OFFSETS . دعنا نتعمق في هذه الوظيفة لأنها أساسية تمامًا في حل هذا من منظور DAX.
بالنظر إلى الفترة الحالية (على سبيل المثال ، 20 يناير وهي فترة إنشاء هذا البرنامج التعليمي) ، ما نراه هو أن الإزاحة تساوي صفرًا . الطريقة التي تعمل بها التعويضات هي أنه في الفترة الحالية ، تحصل الإزاحة على صفر.
الأسبوع الذي يسبق الأسبوع الحالي هو أسبوع سلبي ، والأسبوعان السابقان للأسبوع الحالي هو الأسبوعان السالبان ، وهكذا. وبعد ذلك ، يتقدم من الأعداد الموجبة ؛ الأسبوع القادم ثم يحصل على أسبوع ، أسبوعان يحصلان على أسبوعين ، إلخ.
في كل مرة تفتح فيها التقرير المتعلق بتاريخ اليوم ، فإنه يحسب الإزاحات. هذا قوي بشكل لا يصدق والآن سأوضح لك مدى سهولة معالجة بعض المشكلات الصعبة مثل رقم الأسبوع السابق لـ LuckyTemplates عندما تستخدم تعويضات.
الحصول على LuckyTemplates الأسبوع السابق باستخدام DAX
لنقم بإنشاء مقياس جديد ونسميه Wk # السابق . سنبدأ بمتغير ( SelWkOffset ) ، حيث سنقوم فقط بعمل SELECTEDVALUE من WeekOffset . لذلك ، في الصف الحالي ، سوف يرسم WeekOffset ويضع ذلك في المتغير الخاص بنا.
المتغير التالي سيكون النتيجة . هذه هي النتيجة النهائية التي نريدها وسنستخدم CALCULATE لأننا سنغير السياق.
بعد ذلك ، نريد MAX ISO Weeknumber وسيخضع ذلك لشروط التصفية هذه. لذلك ، سنزيل جميع عوامل التصفية من جدول التواريخ ، ولذا سنستخدم الكل هنا. إذا كان لدينا تقطيع التواريخ ، فقد نرغب في استخدام ALLSELECTED ، لكننا لا نفعل ذلك حاليًا ، لذلك سنستخدم ALL لإزالة الفلتر من جدول التواريخ هذا.
وبعد ذلك ، سنقول إن WeekOffset ستكون مساوية لـ SelWkOffset ناقص واحد . هذا هو المكان الذي تصبح فيه OFFSETS قوية للغاية. لا يمكنك استخدام Weeknumber مطروحًا منه واحدًا لأنه يتم إعادة التعيين كل عام. ولكن نظرًا لأن جميع الأوفست متسلسلة ، يمكنك التعامل معها كما لو كنت تتعامل مع العثور على العام السابق وطرح واحدًا لكل سنة سابقة. وبالتالي ، تعمل هذه الإزاحة بنفس الطريقة التي يعمل بها الرقم المتتالي.
يمكننا الآن إغلاق حالة الفلتر وإغلاقها ، وإغلاق الحساب ، وإرجاع النتيجة فقط .
الآن ، دعونا نلقي نظرة على كيفية عمل هذا القياس. في الجدول أدناه ، يمكننا أن نرى أنه يفعل بالضبط ما كنا نأمله. في الأسبوع 52 للفترة الأولى من العام التالي ، الأسبوع السابق هو 52. وبعد ذلك ، يتراجع مرة واحدة في كل فترة ، وهكذا.
الآن ، ماذا تفعل في الحالات التي لا يكون لديك فيها تعويض؟
لنفترض أنك تعمل مع جدول تاريخ الشركة الذي يأتي من مستودع البيانات الخاص بك ولا يتضمن هذه الإزاحات. هناك أسلوب أريد أن أعرضه لك في Power Query. أول مرة رأيتها كانت في مدونة بقلم Imke Feldmann.
يعمل هذا الأسلوب جيدًا مع أي موقف يمكنك فيه ترتيب الجدول بترتيب تصاعدي ، ولا يلزم أن يكون هناك إزاحة. ليس من الضروري أن يكون لديك حتى حقل تاريخ. يمكن أن يكون نوعًا مختلفًا تمامًا من الجداول. طالما أنه قابل للفرز بترتيب تصاعدي ، يمكنك استخدام هذه التقنية.
لذلك دعونا نشير إلى جدول التواريخ الخام هذا وسنسمي هذا التواريخ . بعد ذلك ، نتأكد من ترتيب ذلك بترتيب تصاعدي .
بعد ذلك ، نريد التجميع حسب الأسبوع . والسبب في ذلك هو أننا سنضيف عمودين من الفهرس. عندما نضيف أعمدة الفهرس هذه ، نريد أن تكون تلك الأعمدة بدقة الأسبوع ، وليس بدقة اليوم.
بعد ذلك ، نريد إضافة أعمدة الفهرس هذه. الشيء المهم هنا هو أن الفهرس الأول الذي سنضيفه سيكون مؤشرًا على أساس 0. وبعد ذلك ، سنضيف فهرسًا ثانيًا عبارة عن فهرس مبني على أساس واحد.
بعد ذلك ، سنأخذ هذا العمود وندمج الجدول في نفسه. سنقوم بدمجه بناءً على عمودي الفهرس المختلفين. سيعطينا هذا تحولًا في الصفوف.
لذلك ، إذا أخذنا هذا ودمجنا الأول مع الفهرس القائم على 0 في الفهرس المستند إلى 1 ، فإنه يطابق 521 في 522 صفًا. هذا بالضبط ما كنا نتوقعه لأن الجدول الثاني لن يلتقط مؤشر الصفر لأنه يبدأ من واحد.
بعد ذلك ، سنقوم بتوسيع هذا بشكل صحيح ، فقط باستخدام رقم أسبوع ISO.
هذا يعطينا رقم الأسبوع السابق. والآن ، سنقوم فقط بتوسيع مجموعتنا الأصلية وإخراج حقل WeekEnding ورقم أسبوع ISO الأصلي حتى لا نكرره.
إذا وضعنا ذلك في جدول ، يمكنك أن ترى أنها نفس النتائج تمامًا مثل استخدام أسلوب DAX. إنه يعمل تمامًا كما فعل مقياس DAX الخاص بنا ، ولكن في هذه الحالة ، لم نكن بحاجة إلى استخدام التعويضات.
خاتمة
هاتان طريقتان مختلفتان بطريقة متعددة الاستخدامات للغاية للعثور على رقم الأسبوع السابق. في التقنية الأولى ، يمكنك أن ترى قوة التعويضات في صنع ، ما كان من الممكن أن يكون حسابًا صعبًا وبسيطًا للغاية. يعمل الأسلوب الثاني تمامًا كما فعل مقياس DAX الخاص بنا ، ولكن في هذه الحالة ، لم نكن بحاجة إلى استخدام الإزاحات.
نأمل أن تجد هذا البرنامج التعليمي مفيدًا. يمكنك مشاهدة الفيديو التعليمي الكامل أدناه والتحقق من الروابط ذات الصلة لمزيد من المحتوى المشابه.
هتافات!
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته