ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
في منشور المدونة هذا ، سوف نستكشف الحل الخاص بي . بالنسبة لهذا التحدي ، قمنا بإعادة النظر في تحدي LuckyTemplates الأول لمشكلة الأسبوع ، حيث أنشأنا تقويمًا دائمًا للعطلات من مزيج من التواريخ المحددة والنسبية. ولكن هذه المرة ، سنستخدم Power Query فقط . يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي أسفل هذه المدونة.
إذا كنت عالقًا في تحليل المشكلة نفسه ، فيمكنك إعادة النظر في لمعرفة ما إذا كانت هناك عناصر في أي من الأساليب التي يمكن أن تساعدك في هذا التحدي.
أثناء قراءة عمليات الإرسال ، رأيت مزيجًا من الأشخاص يستفيدون من واجهة المستخدم ويكتبون وظائف مخصصة لإنشاء تقويم دائم. لقد كان من الممتع تحليل كل إدخال ، وإذا كنت ترغب في الحصول على الإلهام ، فأنا أشجعك على فعل الشيء نفسه.
عندما كنت أعمل من خلال هذا السيناريو بنفسي ، انتهى بي الأمر إلى إنشاء حلول متعددة. أفضل ما استخدمته يوضح كيف لا يمكنك فقط تقسيم المشكلة إلى أجزاء أصغر ولكن أيضًا جعلها مرئية . هذا مفيد للغاية إذا واجهت خطأ أو نتائج غير متوقعة.
جدول المحتويات
نقطة البداية لإنشاء تقويم دائم
جدول العطلات الخام هذا هو نقطة انطلاقنا. لتجميع تاريخ معًا ، نحتاج إلى عام وشهر ويوم لتواريخ محددة. كل ما هو مفقود هو العام.
لكن بالنسبة للتواريخ النسبية ، نحتاج إلى مزيد من العمل. بالنسبة للمبتدئين ، نحتاج إلى تقسيم عمود اليوم إلى كل من الرقم ويوم الأسبوع. دعنا نراجع هذه الخطوات.
استرجاع السنوات من جدول التواريخ
لجعل هذا الحل ديناميكيًا ، سأستعيد السنوات من جدول التواريخ . في شريط الصيغة ، يمكنك أن ترى أنني استخدمت إسقاطًا للحصول على جدول عمود واحد من جدول التاريخ الخاص بي. هذا ، بالطبع ، سوف يحتوي على نسخ مكررة. لإزالة ذلك ، أضفت Table.District .
عندما أقوم بالنقر فوق الجانب الموجود في المساحة البيضاء بجوار أي من هذه الجداول ، سترى أيضًا قائمة بالسنوات المميزة الموجودة في استعلام جدول التواريخ.
لقد حصلنا على اسم شهر ، لكننا سنحتاج بالفعل إلى رقم شهر . الآن ، عندما نجمع اسمًا من سنة إلى شهر ، يمكننا استخدام الدالة Date.From لإرجاع أول يوم من ذلك الشهر كقيمة تاريخ.
بإضافة Date.Month ، يتبقى لنا رقم الشهر فقط لذلك التاريخ المحدد. لشهر يناير ، تقوم بإرجاع 1. لشهر فبراير ، تقوم بإرجاع 2 ، وهكذا.
الحصول على العدد من عمود اليوم
للحصول على الرقم من عمود اليوم ، قررنا عدم تقسيم العمود واستخراج القيمة بدلاً من ذلك. كما ترى في شريط الصيغة ، استخدمنا Text.BeforeDelimiter واستخدمنا تلك المساحة لتحديد الجزء الأيمن والأيسر من تلك السلسلة النصية.
إذا لم تكن هناك مساحة ، فنحن نريد إعادة ما تبقى في عمود اليوم. لذلك بالنسبة للسجل الأول ، الذي يُرجع 1. بالنسبة للسجل الثاني الذي يحتوي على تلك المساحة ، فإنه يُرجع الجزء الأول من السلسلة النصية ، الكلمة الثالثة .
سنستخدم نهجًا مشابهًا للحصول على اسم التاريخ ، لكننا نستخدم قائمة الوظائف . يؤدي هذا إلى إرجاع الإزاحة الصفرية للقيمة في القائمة التي تم تمريرها كوسيطة أولى ، وإرجاع -1 إذا لم تظهر القيمة في تلك القائمة.
بالنسبة للسجل الأول ، فإنه يمرر القيمة 1 ، وهي غير موجودة في قائمتنا. هذا هو سبب إرجاع القيمة -1. بالنسبة للسجل الثاني ، تقوم بإرجاع القيمة يوم الإثنين .
يقوم بتمرير ذلك إلى وظيفتنا وإرجاع 1 لأنه العنصر الثاني في قائمتنا. بعد ذلك ، سنستبدل جميع القيم -1 بصفر .
في هذه المرحلة ، أنشأنا جميع الكتل الإنشائية التي نحتاجها لاستدعاء الوظيفة المخصصة.
استدعاء الوظيفة المخصصة لتقويم العطلة الدائمة
في شريط الصيغة ، يمكننا أن نرى أن الدالة تأخذ أربع وسيطات: سنة ، وشهر ، ورقم ، ويوم من أيام الأسبوع .
ولكن كيف تحدد قيمة التاريخ؟ سنستخدم List.PositionOf مرة أخرى للحصول على قيمة رقمية للأرقام. لدينا قائمة تحتوي على الأول والثاني والثالث والرابع. عندما نمرر الرقم إلى List.PositionOf ، فإنه يُرجع الإزاحة الصفرية.
مرة أخرى ، إذا كانت القيمة غير موجودة ، فإنها ترجع -1. لذلك بالنسبة للسجل الأول ، نقوم بتمرير القيمة 1. 1 غير موجود في هذه القائمة ، وهذا هو سبب إرجاعه للقيمة -1. بالنسبة للسجل الثاني ، نقوم بتمرير القيمة الثالث ، وهو العنصر الثالث في قائمتنا. هذا ما يعيد قيمة 2.
إنشاء قائمة بالتواريخ
لنقم الآن بإنشاء قائمة بالتواريخ. سنحدد تاريخ البدء لذلك الشهر ، ونحدد عدد الأيام في ذلك الشهر ، ونستخدم قائمة التواريخ لإنشاء قائمة تحتوي على جميع الأيام في ذلك الشهر.
بعد ذلك ، سوف نستخدم List.Select للاحتفاظ فقط بتلك التواريخ الموجودة في يوم معين من أيام الأسبوع.
عندما نضغط على الجانب المجاور لأي من هذه القوائم ، يمكننا أن نرى أنه يحتوي فقط على هذه العناصر الأربعة.
تطبيق المنطق الشرطي
أخيرًا ، سنطبق المنطق الشرطي لإنشاء تاريخ أو استرداده. إذا كان يوم الأسبوع فارغًا ، مما يشير إلى أن لدينا تاريخًا محددًا ، فيمكننا استخدام #date الجوهري لإنشاء قيمة تاريخ.
إذا كان الرقم يساوي أخيرًا ، فيمكننا استخدام الدالة List.Reverse لعكس الترتيب في القائمة واستخراج القيمة الأولى.
إذا أردنا تغيير هذا الترتيب التصاعدي إلى تنازلي ، فيمكننا دائمًا استخراج التاريخ الأخير من نطاق التواريخ هذا. لا يهم إذا كان لدينا أربعة أو خمسة عناصر في القائمة. من خلال عكس الترتيب واستخراج العنصر الأول ، يكون لدينا دائمًا التاريخ الأخير.
بالنسبة لجميع الحالات الأخرى ، نستخدم List.Skip .
يمكننا استخراج القيمة بناءً على هذا الموضع في القائمة. في يوم عيد الشكر ، يكون الرقم رابعًا ، والرابع يُرجع 3. سيؤدي هذا إلى تخطي القيم الثلاث الأولى في القائمة ، وسيعيد العنصر الرابع دائمًا.
دعنا نجمعها جميعًا وننتقل إلى استعلام الحل. بالنسبة لخطوة المصدر ، فإننا نستدعي جدول تواريخ إجازات RAW. بعد ذلك ، سنضيف عمودًا يُرجع قائمة بالتواريخ.
مراجعة كود M لتقويم الإجازة الدائمة
دعنا نتحقق من رمز M للعمود. لكل صف في الجدول ، قمنا بتداخل جدول يحتوي على السنوات المميزة من جدول التواريخ. ثم قمنا بتحويل القيم في عمود ذلك العام عن طريق استدعاء الوظيفة المخصصة.
بالطبع ، لكي نتمكن من استدعاء الوظيفة المخصصة ، علينا القيام ببعض الإعداد أولاً. علينا الحصول على رقم الشهر والقيمة العددية وبالطبع يوم الأسبوع . ثم من هذا الجدول المتداخل ، احتفظنا بالقائمة بالتواريخ.
عندما نضغط على الجانب في المساحة البيضاء ، يمكننا أن نرى معاينة لتلك القائمة أدناه.
الخطوة التالية هي توسيع تلك القائمة وإضافة CelebratedOnDate .
هذا هو المنطق الذي استخدمناه في هذا الحساب: إذا كان التاريخ يوم السبت ، فسنطرح يومًا حتى نصل يوم الجمعة. إذا كان يوم الأحد ، فسنضيف يومًا للهبوط يوم الاثنين. إذا لم يكن يوم السبت أو الأحد ، فنحن نريد قيمة خالية.
أخيرًا ، الخطوة الأخيرة هي تغيير الأنواع.
خاتمة
مجرد تذكير سريع بأن هي سلسلة مستمرة تحدث كل أول وثالث أربعاء في منتدى LuckyTemplates. تتطلب المشكلة التي تم نشرها في الأسبوع الأول حلاً مستندًا إلى DAX ، بينما تتطلب مشكلة الأسبوع الثالث حلًا يستند إلى Power Query.
إذا كنت قد استمتعت بالمحتوى المغطى في POTW ، يرجى الاشتراك في قناة LuckyTemplates التلفزيونية للمزيد. لدينا قدر هائل من المحتوى يصدر طوال الوقت مني ومن مجموعة من منشئي المحتوى ، وكلهم مكرسون لتحسين طريقة استخدامك لـ LuckyTemplates ومنصة Power.
ميليسا
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته