أحد الأسئلة الأكثر شيوعا عند التعامل مع التواريخ في التقارير هو كيفية مقارنة نطاقين زمنيين وتحديد ما إذا كان هناك تقاطع بينهما. في مثل هذه الحالات ، ستساعدنا وظيفة خاصة ، مما يسمح لنا بحل هذه المشكلة بشكل فعال.
أولا ، سوف نحتاج إلى وظيفة من شأنها أن تؤدي مقارنة التاريخ نفسه. تأخذ هذه الوظيفة وسيطتين-نطاقان زمنيان ، وتعيد صواب أو خطأ اعتمادا على ما إذا كان هناك تقاطع بينهما.
ثانيا ، سنحتاج إلى وظائف تسمح لنا بالحصول على بداية ونهاية كل نطاق زمني من التقرير. يمكننا استخدام الوظائف المضمنة للعمل مع التواريخ ، مثل التاريخ والتاريخ والسنة والشهر واليوم ، والتي تسمح لنا باستخراج المعلومات الضرورية من التاريخ.
مثال على استخدام الدالة لمقارنة النطاقات الزمنية:
وظيفة مقارنة الترتيب (المدى 1 ، المدى 1 ، المدى 2 ، المدى 2) {
نطاق الإرجاع 1ابدأ < = النطاق2نهاية & & النطاق2نهاية <= النطاق1نهاية;
}
- كيف يمكنني مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة?
- إعداد البيانات للمقارنة
- إنشاء وظيفة لمقارنة النطاقات الزمنية
- الخطوة الأولى في الوظيفة هي مقارنة تواريخ البدء
- الخطوة الثانية في الوظيفة: مقارنة تواريخ الانتهاء
- إضافة شروط لمقارنة النطاقات الزمنية
- مثال على استخدام دالة للمقارنة
- العثور على الجواب هنا
- سؤال وجواب
- كيف يمكنني مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة?
- ما هو الفرق بين وظائف لمقارنة النطاقات الزمنية?
- ما تنسيق التاريخ الذي يجب أن أستخدمه عند مقارنة النطاقات الزمنية?
- هل من الممكن مقارنة النطاقات الزمنية إذا كان تنسيق التاريخ في الخلايا مختلفا?
كيف يمكنني مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة?
يمكن أن تكون مقارنة نطاقين زمنيين في التقرير مفيدة لتحليل الفواصل الزمنية أو إكمال المهام أو تحديد الإحصائيات. تتمثل إحدى طرق مقارنة النطاقات الزمنية في التقرير في استخدام دالة.
يمكن كتابة وظيفة مقارنة النطاقات الزمنية بلغة برمجة مثل جافا سكريبت أو بايثون. يمكن أن يستغرق الأمر نطاقين زمنيين كمعلمات وإرجاع نتيجة المقارنة.
- أولا ، تحتاج إلى تحديد تنسيق التاريخ والوقت الذي سيتم استخدامه في التقرير. على سبيل المثال ، " ي-مم-د "أو"د/مم/س". سيساعدك هذا في تفسير قيم الإدخال بشكل صحيح.
- ثم يجب عليك إنشاء وظيفة تقارن نطاقين زمنيين. يمكن أن تقبل الوظيفة معلمتين - تاريخ البدء والانتهاء لكل نطاق.
- داخل الوظيفة ، يمكنك استخدام عوامل المقارنة والعوامل المنطقية للتحقق من تطابق تواريخ النطاقين.
- على سبيل المثال ، يمكن للدالة مقارنة تاريخ بدء النطاق الأول بتاريخ بدء النطاق الثاني ، ثم تاريخ انتهاء النطاق الأول بتاريخ انتهاء النطاق الثاني.
- اعتمادا على نتائج المقارنة ، قد تعود الدالة صحيحة إذا تطابق النطاقات الزمنية ، أو خاطئة إذا اختلفت النطاقات الزمنية.
فيما يلي مثال على وظيفة جافا سكريبت لمقارنة نطاقين زمنيين:
"'جافا سكريبت
مقارنة الدالة (البداية 1 ، النهاية 1 ، البداية 2 ، النهاية 2) {
إذا (البداية 1 = البداية 2) {
العودة الحقيقية;
} آخر {
العودة كاذبة;
}
}
// Пример использования функции
let range1Start = new Date(‘2021-01-01’);
let range1End = new Date(‘2021-01-31’);
let range2Start = new Date(‘2021-02-01’);
let range2End = new Date(‘2021-02-28’);
let result = compareDateRanges(range1Start, range1End, range2Start, range2End);
console.log(result); // false
«`
Этот пример функции сравнивает два диапазона дат: range1 (с 1 января 2021 по 31 января 2021) и range2 (с 1 февраля 2021 по 28 февраля 2021). في هذه الحالة ، ترجع الدالة خطأ ، نظرا لأن النطاقات الزمنية لا تتداخل.
وبالتالي ، باستخدام الوظيفة ، يمكنك مقارنة نطاقين زمنيين في التقرير. يمكن أن يكون هذا مفيدا لتحليل البيانات واتخاذ القرارات بناء على فترات زمنية.
إعداد البيانات للمقارنة
قبل مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة ، تحتاج إلى إعداد البيانات للمقارنة. من المهم أن يكون لديك نطاقان زمنيان سيتم مقارنتهما مع بعضهما البعض. يمكن تمثيل هذه النطاقات كجدول ، حيث يحتوي كل صف على معلومات حول حدث أو ملاحظة ، وتحتوي الأعمدة على بيانات حول تاريخ الحدث أو الملاحظة.
للحصول على إعداد أكثر ملاءمة ومفهومة للبيانات للمقارنة ، يمكنك استخدام الخطوات التالية:
- تحديد الأهداف ومعايير المقارنة. قبل البدء في إعداد البيانات ، تحتاج إلى تحديد ما تريد مقارنته بالضبط والمعايير التي سيتم استخدامها لهذه المقارنة. على سبيل المثال ، قد ترغب في مقارنة عدد المبيعات في نطاقين زمنيين أو التغيير في النسبة المئوية لإكمال المهمة.
- حدد تنسيق البيانات المناسب. يعتمد اختيار تنسيق البيانات الصحيح على وضعك المحدد ومتطلبات التقرير. تتضمن بعض تنسيقات البيانات الشائعة التي يمكن أن تكون مفيدة لمقارنة نطاقين زمنيين جداول بيانات إكسيل أو ملفات كسف أو قواعد البيانات.
- إنشاء نطاقين التاريخ. باستخدام تنسيق البيانات المحدد ، قم بإنشاء نطاقين زمنيين سيتم مقارنتهما مع بعضهما البعض. تأكد من أن كل تاريخ يحتوي على معلومات أو بيانات ذات صلة يجب مقارنتها.
- معالجة البيانات إذا لزم الأمر. قد تحتاج إلى القيام ببعض معالجة البيانات قبل مقارنتها. على سبيل المثال ، يمكنك تحويل التواريخ إلى نفس التنسيق أو استبعاد البيانات غير الصحيحة أو دمج البيانات من مصادر مختلفة.
بعد الانتهاء من هذه الخطوات ، ستكون جاهزا لمقارنة النطاقين الزمنيين في التقرير باستخدام الوظيفة. يمكنك استخدام وظائف المقارنة مثل مقارنة المتوسطات أو النسبة المئوية للتغيير أو الاختلافات المطلقة للحصول على النتائج التي تريدها.
إنشاء وظيفة لمقارنة النطاقات الزمنية
عند إنشاء التقارير ، غالبا ما يكون من الضروري مقارنة نطاقين زمنيين لتحديد موقعهما النسبي أو ما إذا كانت هناك تقاطعات. في مثل هذه الحالات ، قد يكون من المفيد إنشاء وظيفة تؤدي هذه المقارنة.
هنا مثال على وظيفة جافا سكريبت التي يمكن استخدامها لمقارنة نطاقين التاريخ:
"'جافا سكريبت
وظيفة مقارنة الترتيب (النطاق 1 ، النطاق 2) {
// تقسيم النطاقات إلى تواريخ البدء والانتهاء
بداية فار 1 = المدى 1 [0];
نهاية فار 1 = النطاق 1[1];
بداية فار 2 = النطاق2 [0];
نهاية فار 2 = المدى 2[1];
// مقارنة النطاقات
إذا (البداية 1 < = النهاية 2 & & البداية 2 < = النهاية 1) {
عودة "نطاقات التداخل";
} آخر إذا (النهاية 1 < البداية 2) {
عودة "النطاق الأول قبل الثاني";
} آخر إذا (النهاية 2 < البداية 1) {
عودة "النطاق الأول بعد الثاني";
} آخر {
عودة "النطاقات لا تتقاطع";
}
}
// مثال على استخدام الوظيفة
نطاق فار 1 = [تاريخ جديد(2022 ، 0 ، 1) ، تاريخ جديد(2022 ، 0 ، 10)];
نطاق فار 2 = [تاريخ جديد(2022 ، 0 ، 5) ، تاريخ جديد(2022 ، 0 ، 15)];
نتيجة فار = مقارنة الترتيب (النطاق 1 ، النطاق 2);
وحدة التحكم.سجل (نتيجة);
«`
في هذا المثال ، يتم استخدام مجموعة `مجموعة` ، حيث 'مجموعة[0]' هو تاريخ بدء النطاق ، و 'مجموعة[1]' هو تاريخ انتهاء النطاق. يظهر مثال على استدعاء دالة وإخراج النتيجة إلى وحدة التحكم في الأسطر الأخيرة.
تستخدم دالة 'المقارنة' مبادئ مقارنة النطاقات الزمنية:
- إذا كان تاريخ بدء النطاق الأول أقل من أو يساوي تاريخ انتهاء النطاق الثاني وكان تاريخ بدء النطاق الثاني أقل من أو يساوي تاريخ انتهاء النطاق الأول, ثم تتداخل النطاقات.
- إذا كان تاريخ انتهاء النطاق الأول أقل من تاريخ بدء النطاق الثاني ، فسيكون النطاق الأول أمام النطاق الثاني.
- إذا كان تاريخ انتهاء النطاق الثاني أقل من تاريخ بدء النطاق الأول ، فسيكون النطاق الأول بعد النطاق الثاني.
- في جميع الحالات الأخرى ، لا تتقاطع النطاقات ، ولكن يتم تأسيس ترتيبها المتبادل.
يمكن استكمال الوظيفة أو تغييرها اعتمادا على تفاصيل المهمة. يمكنك أيضا إضافة التحقق من صحة بيانات الإدخال للتأكد من صحة النطاقات الزمنية المرسلة.
يتيح لك إنشاء وظيفة لمقارنة النطاقات الزمنية تبسيط الكود وتنظيمه وجعله قابلا لإعادة الاستخدام في مشاريع ومهام مختلفة.
الخطوة الأولى في الوظيفة هي مقارنة تواريخ البدء
عند تطوير وظيفة لمقارنة نطاقين زمنيين في تقرير ، من المهم تقسيم المهمة إلى عدة خطوات. الخطوة الأولى هي مقارنة تواريخ بدء النطاقين.
لمقارنة تواريخ البدء ، اتبع الخطوات التالية:
- احصل على قيم تاريخ البدء لكل نطاق.
- قارن القيم المستلمة للتواريخ الأولية.
الخطوة الأولى هي الحصول على قيم التواريخ الأولية التي يمكن تنفيذها باستخدام وظيفة من شأنها استخراج البيانات من التقرير وإرجاع التاريخ بالتنسيق المطلوب. على سبيل المثال ، يمكنك استخدام وظيفة من شأنها أن تحصل على تاريخ البدء لمجموعة من جداول البيانات إكسل.
| المدى | تاريخ البدء |
|---|---|
| المدى 1 | 01.01.2022 |
| المدى 2 | 01.02.2022 |
علاوة على ذلك ، يمكن مقارنة قيم التواريخ الأولية التي تم الحصول عليها لكل نطاق باستخدام عامل المقارنة. على سبيل المثال:
إذا (بدء الترتيب 1 > بدء الترتيب 2) {
// قم بتنفيذ الكود إذا كان تاريخ بدء النطاق 1 أكبر من تاريخ بدء النطاق 2
} آخر إذا (ابدأ الترتيب 1 < ابدأ الترتيب 2) {
// قم بتنفيذ الكود إذا كان تاريخ بدء النطاق 1 أقل من تاريخ بدء النطاق 2
} آخر {
// تنفيذ الكود إذا كانت تواريخ البدء متساوية
}
نتيجة لتنفيذ الخطوة الأولى من الوظيفة ، سنحصل على معلومات حول أي من النطاقين له تاريخ بدء سابق ، ونأخذ أيضا في الاعتبار الحالة عندما تكون تواريخ البدء متساوية.
هذه هي الخطوة الأولى في تطوير ميزة لمقارنة نطاقين زمنيين في التقرير. بعد ذلك ، يمكنك متابعة العمل على الوظيفة عن طريق إضافة القدرة على مقارنة تواريخ الانتهاء وتنفيذ الإجراءات الضرورية الأخرى.
الخطوة الثانية في الوظيفة: مقارنة تواريخ الانتهاء
في القسم الأخير ، وصفنا كيفية الحصول على قيم تاريخ الانتهاء من تقرير باستخدام الوظيفة. مهمتنا الآن هي مقارنة هذين النطاقين الزمنيين لتحديد أيهما أحدث أو أقدم.
للقيام بذلك ، سوف نستخدم عوامل التشغيل الشرطية داخل الوظيفة. يسمح لنا المشغلون الشرطيون بتنفيذ إجراءات مختلفة اعتمادا على استيفاء شرط معين.
في حالتنا ، سنقوم بمقارنة قيم تواريخ الانتهاء وعرض رسالة مناسبة حول النطاق الزمني الأحدث أو الأقدم.
للقيام بذلك ، سنحتاج إلى استخدام عامل التشغيل" المزيد "( > ) أو" أقل "( < ) ، بالإضافة إلى عامل التشغيل" المتساوي" ( = = ). يوجد أدناه مثال على رمز يمكن استخدامه:
إذا كان تاريخ الإنهاء1 > تاريخ الإنهاء2:
طباعة ("النطاق الزمني الأول أحدث")
إليف نهاية_التاريخ1 < نهاية_التاريخ2:
طباعة ("النطاق الزمني الثاني أحدث")
آخر:
طباعة ("كلا النطاقين الزمنيين متساويان")
في هذا المثال ، نقارن قيمة متغير نهاية التاريخ 1 بمتغير نهاية التاريخ 2. إذا كانت قيمة تاريخ النهاية 1 أكبر ، فسيتم عرض الرسالة "النطاق الزمني الأول أحدث". إذا كانت قيمة تاريخ النهاية 1 أقل ، فسيتم عرض الرسالة "النطاق الزمني الثاني أحدث". إذا كانت القيم متساوية ، فسيتم عرض الرسالة "كلا النطاقين الزمنيين متساويين".
يمكننا الآن تضمين هذا الرمز في الوظيفة حتى نتمكن من مقارنة التواريخ وإرجاع الرسالة المقابلة. يوجد أدناه مثال على الكود:
تواريخ المقارنة (تاريخ النهاية 1 ، تاريخ النهاية 2):
إذا كان تاريخ الإنهاء1 > تاريخ الإنهاء2:
إرجاع "النطاق الزمني الأول أحدث"
إليف نهاية_التاريخ1 < نهاية_التاريخ2:
إرجاع "النطاق الزمني الثاني أحدث"
آخر:
عودة "كلا النطاقات الزمنية متساوية"
في هذا المثال ، نحدد دالة مقارنة التواريخ ، والتي تأخذ وسيطتين-تاريخ النهاية 1 وتاريخ النهاية 2. ثم نقارن قيم هذه الوسائط ونعيد الرسالة المقابلة باستخدام عبارة الإرجاع.
Теперь, когда у нас есть функция compare_dates, мы можем вызывать ее в нашем ранее созданном отчете и использовать полученные результаты в своих целях.
Например:
report1_end_date = get_end_date(report1)
report2_end_date = get_end_date(report2)
comparison_result = compare_dates(report1_end_date, report2_end_date)
print(comparison_result)
في هذا المثال ، نطلق على وظيفة تاريخ الوصول لتقريرين-التقرير 1 والتقرير 2-للحصول على تواريخ الانتهاء. ثم نسمي وظيفة مقارنة التواريخ مع تواريخ الانتهاء هذه كوسيطات ونخزن نتيجة المقارنة في متغير مقارنة النتائج. أخيرا ، نعرض النتيجة على الشاشة باستخدام وظيفة الطباعة.
أنت الآن تعرف كيفية مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة والحصول على النتائج المقابلة. يمكن أن تكون هذه المعلومات مفيدة عند تحليل البيانات واتخاذ القرارات بناء على التواريخ الواردة في تقريرك.
إضافة شروط لمقارنة النطاقات الزمنية
عند مقارنة نطاقين زمنيين في تقرير باستخدام دالة ، يمكنك إضافة شروط لتحديد الاختلافات بينهما. يمكن أن يكون هذا مفيدا لتحليل البيانات وتحديد الاتجاهات.
لإضافة شروط لمقارنة النطاقات الزمنية ، يمكنك استخدام عوامل المقارنة (على سبيل المثال ، "المزيد" ، "أقل" ، "متساو") والعوامل المنطقية (على سبيل المثال ، "و" ، "أو" ، "لا").
فيما يلي أمثلة على الشروط التي يمكن استخدامها لمقارنة النطاقات الزمنية:
- الشرط هو "أكثر" أو "أقل — - يمكنك استخدام المشغلين" > " أو " < " لمقارنة تاريخ البدء أو الانتهاء لنطاق بآخر:
- الشرط "يشمل" أو "يستثني — - يمكنك استخدام المشغلين" > = " أو "< = " لمقارنة تاريخ البدء أو الانتهاء لنطاق بآخر:
- الشرط" يتداخل "— يمكنك استخدام المشغلين " > " و " = " و "< = " للتحقق من تقاطع التواريخ في نطاقين:
عند استخدام الشروط لمقارنة النطاقات الزمنية في تقرير ما ، يمكنك تحديد الاختلافات بين النطاقات واستخلاص استنتاجات حول اتجاهات الوقت أو سلوك الشراء.
مثال على استخدام دالة للمقارنة
لنفترض أن لدينا نطاقين زمنيين ونحتاج إلى مقارنتهما في تقرير. للقيام بذلك ، يمكنك استخدام وظيفة في البرنامج أو في جدول بيانات.
فيما يلي مثال على استخدام الوظيفة في جدول بيانات:
- في العمود أ ، سنقوم بتسجيل النطاق الزمني الأول من 1 يناير 2020 إلى 31 ديسمبر 2020.
- في العمود ب ، سنكتب النطاق الزمني الثاني من 1 يناير 2021 إلى 31 ديسمبر 2021.
- في الخلية ج1 ، يمكنك استخدام الوظيفة "= إذا (الحد الأقصى (أ: أ) > دقيقة (ب: ب) ، "النطاق أ أكبر" ، إذا(الحد الأدنى(أ:أ) < الحد الأقصى(ب:ب) ، "النطاق ب أكبر" ، "النطاقات متساوية"))".
| المدى أ | المدى ب | نتيجة المقارنة |
|---|---|---|
| 01.01.2020 | 01.01.2021 | النطاق ب أكبر |
| 31.12.2020 | 31.12.2021 | النطاق ب أكبر |
| 20.06.2020 | 15.07.2021 | النطاق ب أكبر |
في هذا المثال ، يتم استخدام وظيفة " إذا " لمقارنة التواريخ من النطاق أ مع التواريخ من النطاق ب.اعتمادا على نتيجة المقارنة ، سيتم عرض النتيجة المقابلة في الخلية ج1.
وبالتالي ، يتيح لك استخدام الوظيفة مقارنة نطاقين زمنيين وعرض نتيجة المقارنة في تقرير أو جدول.
العثور على الجواب هنا
عندما تحتاج إلى مقارنة نطاقين زمنيين في تقرير باستخدام دالة في لغة برمجة ، يمكنك استخدام الأسلوب التالي:
- قم بإنشاء كائنين للتاريخ يمثلان بداية ونهاية النطاق الأول.
- قم بإنشاء نفس كائنات التاريخ للنطاق الثاني.
- قارن كائنات التاريخ هذه باستخدام عوامل المقارنة ( ، =).
- إرجاع نتيجة المقارنة ، على سبيل المثال ، باستخدام التعبير إذا-آخر.
على سبيل المثال ، في بايثون ، قد يبدو الأمر كما يلي:
تاريخ البدء 1 = التاريخ والوقت.التاريخ (2022 ، 1 ، 1)
نهاية التاريخ 1 = التاريخ والوقت.التاريخ (2022 ، 1 ، 7)
تاريخ البدء 2 = التاريخ والوقت.التاريخ (2022 ، 1 ، 5)
نهاية التاريخ 2 = التاريخ والوقت.التاريخ (2022 ، 1 ، 10)
إذا كان تاريخ البدء 1 < = تاريخ النهاية 2 و تاريخ البدء 2 < = تاريخ النهاية 1:
طباعة ("تداخل النطاقات الزمنية")
آخر:
طباعة ("النطاقات الزمنية لا تتداخل")
يسمح لك هذا الرمز بالتحقق من تقاطع نطاقين زمنيين. في حالة تداخل النطاقات ، سيتم عرض الرسالة "تداخل النطاقات الزمنية" ، وإلا سيتم عرض الرسالة "لا تتداخل النطاقات الزمنية".
وبالتالي ، يمكنك مقارنة نطاقين زمنيين في تقرير باستخدام دالة باستخدام عوامل المقارنة والتعبيرات الشرطية.
سؤال وجواب
كيف يمكنني مقارنة نطاقين زمنيين في تقرير باستخدام الوظيفة?
لمقارنة نطاقين زمنيين في تقرير باستخدام دالة ، ستحتاج إلى استخدام دالة مع شرط. يمكنك مقارنة نطاقين التاريخ باستخدام إذا وظيفة ومقارنة المشغلين مثل،=. على سبيل المثال ، يمكنك كتابة صيغة ستعيد "نعم" إذا كان النطاق الزمني الأول أكبر من الثاني ، و "لا" إذا لم يكن كذلك. قد تبدو وظيفتك كالتالي: = إذا (أ1>أ2 ، "نعم" ، "لا").
ما هو الفرق بين وظائف لمقارنة النطاقات الزمنية?
هناك العديد من الوظائف التي يمكن استخدامها لمقارنة النطاقات الزمنية في التقرير. واحدة من هذه الوظائف هي وظيفة كونتيف. يسمح لك بحساب عدد الخلايا التي تتطابق مع الشروط المحددة ، بما في ذلك مقارنة نطاقين زمنيين. وظيفة أخرى هي وظيفة سوميفس ، والذي يسمح لك لجمع القيم في الخلايا التي تلبي شروط معينة ، بما في ذلك مقارنة النطاقات الزمنية.
ما تنسيق التاريخ الذي يجب أن أستخدمه عند مقارنة النطاقات الزمنية?
عند مقارنة النطاقات الزمنية في تقرير ، استخدم تنسيق تاريخ يطابق تنسيق البيانات في الخلايا. في مايكروسوفت اكسل ، على سبيل المثال ، هناك العديد من تنسيقات التاريخ: تمثيل قصير للتاريخ (على سبيل المثال ، 01.01.2022) ، تمثيل كامل للتاريخ (على سبيل المثال ، 01 يناير 2022) ، بالإضافة إلى تنسيقات التاريخ المخصصة. إذا كانت التواريخ في خلاياك لها تنسيق محدد ، فيجب عليك استخدامها عند مقارنة النطاقات الزمنية.
هل من الممكن مقارنة النطاقات الزمنية إذا كان تنسيق التاريخ في الخلايا مختلفا?
نعم ، من الممكن مقارنة النطاقات الزمنية ، حتى إذا كان تنسيق التاريخ في الخلايا مختلفا. ومع ذلك ، لمقارنة التواريخ بشكل صحيح ، تحتاج إلى التأكد من تطابق تنسيقات التاريخ في الخلايا مع بعضها البعض. إذا كانت التواريخ في خلايا مختلفة لها تنسيقات مختلفة, يمكنك إحضارها إلى نفس التنسيق الشائع باستخدام وظائف تحويل التاريخ مثل قيمة التاريخ, أو باستخدام تنسيق الخلية.