ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
في مدونة اليوم ، سأعرض أسلوبًا لتحدي بدء التشغيل في Access Analytic حيث سيتم حساب إجمالي ساعات العمل بين التواريخ باستخدام LuckyTemplates. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي أسفل هذه المدونة .
المهمة هي حساب العدد الإجمالي لساعات الموظف في كل شهر وتاريخ. لقد قدمت تواريخ البدء والانتهاء التي يمكن أن تتخطى شهورًا وتأخذ الحالة في الاعتبار عند التعامل مع الأخطاء المطبعية المحتملة.
جدول المحتويات
مجموعة بيانات لـ LuckyTemplates بين مواعيد ساعات العمل
لننتقل إلى محرر Power Query.
ها هي بياناتنا لهذا التحدي. لدينا جدول به أعمدة لاسم الموظفين ، وتاريخ البدء ، ووقت البدء ، وتاريخ الإيقاف ، ووقت التوقف ، والحالة.
تصفية الصفوف
لنبدأ بتحديد الصفوف بناءً على حالتها ، ويمكن لمحرر الاستعلام مساعدتنا في هذا المنطق. انقر فوق سهم القائمة المنسدلة بجوار الحالة. حدد عوامل تصفية النص واختر لا تبدأ بـ.
في نافذة Filter Rows التي ستظهر ، اكتب "e". ثم انقر فوق "موافق" .
لن يحدث شيء بعد ، ولا بأس بذلك لأننا نكتب حرفًا صغيرًا "e" و "استبعاد" في بياناتنا التي تبدأ بحرف كبير "E".
لإصلاح ذلك ، سنستخدم المعامل الثالث الاختياري Text.StartsWith . في شريط الصيغة ، انتقل إلى نهاية الدالة Text.StartsWith. أضف فاصلة ودعنا ندخل المقارنة. انقر فوق علامة الاختيار والتي يجب أن تزيل صفوف الاستبعاد .
بالطبع ، يمكن أن يكون لدينا شخص كتب خطأ "استبعاد" بدون الحرف الأول "E." في هذه الحالة ، يمكننا إنشاء بعض المنطق الإضافي لمواكبة الموقف.
يمكننا اختبار ما إذا كانت الكلمة لا تتضمن "X" من خلال توسيع وظيفتنا واستخدام Text.Contains . للقيام بذلك ، أضف أو Text.Contains ([الحالة] ، "x" ، Comparer.OrdinalIgnoreCase .
لاحظ أنه مقارنة بالفقرة الأولى ، استبدلنا "e" بالحرف "x". نستمر في تجاهل الحالة ونلف مجموعة من الأقواس حول كلتا الجملتين. انقر فوق علامة الاختيار ويجب أن نحصل على جدول بدون الصفوف التي تحتوي على حالة الاستبعاد أو الاستبعاد .
إضافة عمود مخصص
دعنا الآن نتوجه إلى الجزء الرئيسي من هذا التحدي. سنضيف عمودًا مخصصًا باستخدام واجهة المستخدم ثم ننتقل إلى المحرر.
ابدأ برمز الجدول المصغر في الزاوية اليسرى العلوية من الجدول. انقر فوقه وفي القائمة المنسدلة ، حدد إضافة عمود مخصص .
في هذه المرحلة ، نحن مهتمون فقط بإحضار البيانات التي سنحتاجها لاحقًا. ولأننا سنعمل مع حقول متعددة ، فلنقم بإنشاء سجل باستخدام مُهيِّئات السجل ، ممثلة بأقواس مربعة.
دعونا ننشئ المتغيرات ونخصص الأعمدة المتاحة. ابدأ بكتابة SD الذي سنعادله بتاريخ البدء. يمكننا القيام بذلك عن طريق النقر فوق تاريخ البدء في العمود الموجود على اليمين.
سنفعل الشيء نفسه بالنسبة للمتغيرات ST و ED و ET التي سيتم تخصيصها لوقت البدء وتاريخ الإيقاف ووقت الإيقاف ، على التوالي. ثم أغلق السجل بقوس إغلاق. انقر فوق "موافق".
سيتم إضافة عمود مخصص مع السجلات إلى الجدول. انقر فوق المساحة البيضاء بجانب التسجيل وسيتم فتح جزء المعاينة. سيؤدي ذلك إلى جلب جميع القيم من هذا الصف.
ساعات عمل LuckyTemplates بين التواريخ: المتغيرات
يمكننا بعد ذلك تنسيق المتغيرات الخاصة بنا من خلال نافذة المحرر المتقدم . هذا هو الشكل الذي يجب أن تبدو عليه نافذة المحرر المتقدم.
بعد ذلك ، لنضع المتغيرات في أسطر جديدة منفصلة.
الآن ، يمكننا توسيع المنطق الذي نحتاجه. لذلك ، بدلاً من التسجيل ، يمكننا أيضًا استخدام تعبير let متداخلة هنا. لاحظ أن أيًا منهما سيعمل لأن لدينا متغيرات متعددة أو أسماء حقول مع القيم المخصصة لها.
تاريخ البدء مكتوب حاليًا كقيمة نصية ونحتاج إلى تحويل ذلك إلى تنسيق تاريخ مناسب. للقيام بذلك ، قم بلف الدالة Date.FromText حولها.
بالنسبة إلى وقت البدء الذي تم تنسيقه أيضًا كسلسلة ، نحتاج إلى تحويله إلى رقم. بعد ذلك ، يمكننا تقسيمها على مائة وتقريبها لإزالة أي منازل عشرية.
باستخدام الدالة Number.From ، قسّم قيمة تاريخ البدء على 100 . ثم قم بلفها داخل الوظيفة التالية ، رقم ، جولة ، وأضف 0 في النهاية لتقريبها بدون منازل عشرية.
بالنسبة لتاريخ الانتهاء ووقت الانتهاء ، سنقوم فقط بنسخ الوظائف نفسها التي كانت لدينا في تاريخ البدء ووقت البدء على التوالي ، واستبدالها بالمتغيرات المناسبة.
بمجرد تنسيق المتغيرات بشكل صحيح ، قم بإنشاء حقل آخر في سجلنا لبعض المنطق الإضافي. أنشئ سطرًا جديدًا بالضغط على Enter.
نحتاج إلى إنشاء قائمة بالتواريخ من التاريخ الأول حتى تاريخ الانتهاء. سنطلق على هذه التواريخ اسم LD وسنستخدم قائمة الوظائف .
المعلمة الأولى لهذه الوظيفة هي البداية كتاريخ والذي سيكون SD الخاص بنا. بعد ذلك ، تريد حسابًا كرقم أو الفرق بين تاريخ البدء وتاريخ الانتهاء. يمكننا الحصول على ذلك باستخدام Number. From التابع متبوعًا بـ ( ED - SD) + 1 . لاحظ أن "+1" لا تظهر في المجموعات التالية من لقطات الشاشة ، ولكن يجب أن يكون هناك +1 .
المعلمة الثالثة تسمى الخطوة كمدة ونريد زيادة يوم واحد. يمكننا الحصول على ذلك باستخدام Duration. from (1).
لقد أنشأنا قائمة بالتواريخ من تاريخ البدء الأول حتى تاريخ الإيقاف. ما نريده بعد ذلك هو إنشاء قائمة بالأوقات التي تتوافق مع ذلك.
لنسمي هذا LT لقائمة الأوقات. يمكن أن يكون لـ LT فترة يوم ليوم واحد والتي تتطلب منطقًا مختلفًا قليلاً عما إذا كانت تمتد عبر أيام متعددة. لذلك هذا شيء يجب أن نخلق له حالة.
نريد أن ينص الشرط على "إذا كان تاريخ البدء هو نفس تاريخ الانتهاء ، فإن وقت الانتهاء مطروحًا منه وقت البدء". يجب أن تكون النتائج في قائمة تنسيق لذلك نستخدم مُهيئ القائمة الذي يمثله {} .
الآن ، إذا كان لدينا نطاق زمني يمتد لعدة أيام ، فسيكون التاريخ الأول 24 مطروحًا منه وقت البدء. سنضيف هذا إلى شرطنا مثل بيان else . مرة أخرى ، قم بتنسيق ذلك كقائمة باستخدام الأقواس المتعرجة.
في هذه المرحلة ، لم نأخذ في الحسبان الأيام الأخرى بأكملها ، لذا سنستخدم رمز علامة العطف (&) لإلحاق قوائم متعددة. لكل يوم كامل ، أنشئ قائمة بالقيمة 24 التي تمثل 24 ساعة لدينا في اليوم. سنستخدم القائمة ، كرر ذلك.
باستخدام وظيفة List.Repeat ، قم بإنشاء قائمة تحتوي على 24 وكرر ذلك عددًا من المرات عن طريق حساب عدد الأيام في LD . لتحقيق ذلك ، استخدم List.Count (LD) ثم اطرح 2 لأن لدينا قائمة منفصلة لتاريخ البدء وسننشئ قائمة أخرى لوقت الانتهاء.
في الأساس ، سيؤدي هذا إلى إنشاء قائمة بها 24 ساعة فقط لكل يوم كامل.
بالنسبة لوقت الانتهاء ، يمكننا إلحاقه مرة أخرى كقائمة باستخدام علامة العطف ، ثم ، باستخدام مُهيئ القائمة ، دعنا نسمي ET.
حتى الآن ، لدينا قائمتان كبيرتان - قائمة التواريخ وقائمة الأوقات - مع تساوي أطوالها مع بعضها البعض. من هاتين القائمتين ، يمكننا إنشاء جدول واحد.
في سطر جديد ، قم بإنشاء متغير آخر للجدول الذي سنسميه t ونستخدم الدالة Table.FromColumns . تتطلب هذه الوظيفة قوائم على شكل قائمة وسنستخدم صعوبة التعلم الخاصة بنا.
يحتوي LD الخاص بنا على تواريخ فردية من تاريخ البدء حتى تاريخ التوقف. يمكننا تحويل قائمة التواريخ هذه إلى قيمة تاريخ نهاية الشهر عن طريق تمرير LD واستدعاء دالة Date.EndOfMonth . ثم في السطر التالي ، دعنا نحصل على LT أيضًا.
اضغط على Enter لإنشاء سطر آخر وتعيين جدولنا كجدول نوع . سيتكون جدولنا من عمودين ، العمود الأول هو عمود التاريخ. لذلك ، قم بإنشاء عمود التاريخ واستدعاء الدالة Date.Type .
سيكون العمود الثاني هو عمود الساعات وسيكون عددًا صحيحًا. وبالتالي ، سننشئ عمود Hrs وندعو Int8.Type.
لدينا قوس إغلاق لإغلاق سجلنا وقوس إغلاق لإغلاق دالة Table.AddColumn . انقر فوق تم وسنحصل على قائمة بالسجلات ضمن عمود مخصص.
مرة أخرى ، انقر فوق المساحة البيضاء بجوار كل سجل ويجب أن يفتح الجدول في الجزء السفلي من الشاشة.
لاحظ أن لدينا جدول t في الصف الأخير. دعنا نحاول البحث في أحد السجلات. انقر بزر الماوس الأيمن على النتيجة الأولى وإضافة استعلام جديد .
سنحصل على نفس الملخص السابق ، وإذا نقرنا على الجدول ، فيجب أن نحصل على قيم التاريخ والساعات .
لكننا مهتمون بشكل أساسي بجدول الإخراج النهائي. للتركيز على ذلك ، دعنا نزيل استعلام المساعدة عن طريق النقر بزر الماوس الأيمن فوق " تخصيص" واختيار "حذف" . قم بالتأكيد عن طريق النقر فوق حذف في النافذة المنبثقة.
بمجرد الحذف ، يمكننا العودة إلى استعلامنا الأولي والنقر مرة أخرى على المساحة البيضاء بجوار التسجيل. ستظهر نفس النتائج السابقة. لكن هذه المرة ، لنفكِّد شريط الصيغة ونستدعي [t] بجانب أقواس الإغلاق.
في العمود المخصص ، يمكننا أن نرى أنه تم تغيير كل سجل إلى جدول .
ساعات عمل LuckyTemplates بين التواريخ: الإسقاط
من الجدول الذي ننظر إليه ، لا يوجد سوى عمودين مهمين - اسم فريق العمل والعمود المخصص لدينا. يمكننا استخدام الإسقاط للاحتفاظ بهذين العمودين فقط من هذا الجدول.
انتقل إلى شريط الصيغة ، وبجانب قوس الإغلاق ، حدد الحقول التي نريد الاحتفاظ بها بوضعها داخل أقواس مربعة. ثم اضغط على علامة الاختيار.
يجب أن نحصل على هذه النتيجة.
يمكننا توسيع الجدول المتداخل من خلال النقر على أيقونات الأسهم بجانب Custom . قم بإلغاء تحديد استخدام اسم العمود الأصلي كبادئة وانقر فوق موافق.
يجب أن تظهر طاولتنا هكذا.
ساعات عمل LuckyTemplates بين التواريخ: القيم الإجمالية
كل ما تبقى الآن هو تجميع هذه القيم. للقيام بذلك ، حدد عمود اسم الموظفين وانتقل إلى التحويل.
في النافذة المنبثقة ، اختر ساعات العمل أسفل عمود القيم لأنه ما نريد تجميعه. ثم حدد المجموع ضمن دالة القيمة الإجمالية . ثم انقر فوق "موافق".
سيبدو ناتجنا النهائي هكذا.
إنشاء جدول تاريخ في LuckyTemplates أسرع طريقة ممكنة
لمقارنة الوقت لجداول التاريخ غير القياسية في LuckyTemplates
DateTime Value: كيفية نزع الثواني
خاتمة
في هذه المدونة ، شاهدت أسلوبًا واحدًا لتحدي Start Stop Challenge الخاص بـ Access Analytic. لقد تعلمت كيفية حساب العدد الإجمالي لساعات العمل لكل موظف في الشهر ، وكيفية التعامل مع الأخطاء المطبعية المحتملة في بياناتك.
باستخدام هذه التقنية و LuckyTemplates ، يمكن بسهولة حساب ساعات العمل بين التواريخ في مؤسستك ، أو كممارسة لتعميق معرفتك ومهاراتك في LuckyTemplates.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته