استخدام تحليل معلومات الوقت في DAX
يتضمن DAX العديد من دالات تحليل معلومات الوقت لتبسيط مهمة تعديل سياق تصفية التاريخ. يمكنك كتابة العديد من صيغ التحليل الذكي هذه باستخدام دالة CALCULATE
التي تعدل عوامل تصفية التاريخ، ولكن ذلك من شأنه أن يخلق المزيد من العمل.
ملاحظة
تهتم العديد من دالات تحليل معلومات الوقت في DAX بفترات التاريخ القياسي، لا سيّما السنوات، والأرباع، والأشهر. إذا كان لديك فترات زمنية غير منتظمة (على سبيل المثال، الأشهر المالية التي تبدأ في منتصف الشهر التقويمي)، أو إذا كنت بحاجة إلى العمل مع الأسابيع أو الفترات الزمنية (الساعات والدقائق وهكذا)، فلن تكون دالات تحليل معلومات الوقت في DAX ذات أهمية تُذكر. بدلاً من ذلك، ستحتاج إلى استخدام الدالة CALCULATE
والتمرير في عوامل تصفية التاريخ أو الوقت اليدوية.
متطلبات جدول التاريخ
للعمل مع دالات تحليل معلومات الوقت في DAX، تحتاج إلى تلبية متطلبات النموذج المسبق المتمثلة في وجود جدول تاريخ واحد على الأقل في النموذج لديك. جدول التاريخ هو جدول يلبي المتطلبات التالية:
- يجب أن يكون عمود نوع البيانات التاريخ (أو التاريخ/الوقت)، والمعروفة باسم عمود التاريخ.
- يجب أن يحتوي عمود التاريخ على قيم فريدة.
- يجب ألا يحتوي عمود التاريخ على BLANKs.
- يجب ألا يحتوي عمود التاريخ على أي تواريخ مفقودة.
- يجب أن يمتد عمود التاريخ على سنوات كاملة. لا يجب بالضرورة أن تمثل السنة سنة تقويمية (من يناير إلى ديسمبر).
- يجب أن تتم الإشارة إلى جدول التاريخ كجدول تاريخ.
لمزيد من المعلومات، راجع إنشاء جداول تاريخ في Power BI Desktop.
التلخيصات بمرور الوقت
تهتم مجموعة واحدة من دالات تحليل معلومات الوقت في DAX بالتلخيصات بمرور الوقت:
DATESYTD
- ترجع جدول عمود واحد يحتوي على تواريخ السنة إلى التاريخ (YTD) في سياق عامل التصفية الحالي. تتضمن هذه المجموعة أيضًا دالات DAX DATESMTD
وDATESQTD
للشهر إلى تاريخ (MTD) وربع إلى تاريخ (QTD). يمكنك تمرير هذه الدالات باعتبارها عوامل تصفية إلى دالة DAXCALCULATE
.TOTALYTD
- تقوم بتقييم تعبير للسنة إلى التاريخ (YTD) في سياق عامل التصفية الحالي. كما يتم تضمين دالتي DAX بنوعيها QTD وMTD لـTOTALQTD
وTOTALMTD
.DATESBETWEEN
- تُرجع جدولاً يحتوي على عمود من التواريخ يبدأ بتاريخ بدء محدد ويستمر حتى تاريخ انتهاء محدد.DATESINPERIOD
- تُرجع جدولاً يحتوي على عمود من التواريخ يبدأ بتاريخ بدء محدد ويستمر لعدد الفواصل الزمنية المحدد.
ملاحظة
في حين أن الدالة TOTALYTD
بسيطة الاستخدام؛ فإنه يمكنك المرور في تعبير تصفية واحد. إذا كنت بحاجة إلى تطبيق تعبيرات تصفية متعددة، فاستخدم الدالة CALCULATE
ثم بادر بتمرير الدالة DATESYTD
في أحد تعبيرات التصفية.
في المثال التالي، سيتم إنشاء حساب المعلومات عن الوقت الأول الذي سيستخدم الدالة TOTALYTD. بناء الجملة كما يلي:
TOTALYTD(<expression>, <dates>, [, <filter>][, <year_end_date>])
تتطلب الدالة تعبيرًا، كما هو شائع في كل دالات تحليل معلومات الوقت، كمرجع إلى عمود التاريخ في جدول تاريخ محدد. اختياريًا، يمكن تمرير تعبير تصفية واحد أو تاريخ نهاية السنة (مطلوب فقط عندما لا تنتهي السنة في 31 ديسمبر).
أولا، تحميل وفتح Adventure Works DW 2020 M07.pbix ملف. ثم إضافة تعريف القياس التالي إلى الجدول Sales الذي يحسب إيراد السنة إلى التاريخ الحالي (YTD). قم بتنسيق القياس كعملة مع رقمين عشريين.
Revenue YTD =
TOTALYTD([Revenue], 'Date'[Date], "6-30")
تمثل قيمة تاريخ نهاية السنة من "6-30"
30 يونيو.
في Page 1 من التقرير، أضف مقياس Revenue YTD إلى المصفوفة المرئية. لاحظ أنه ينتج ملخصًا لمبالغ الإيراد من بداية السنة إلى الشهر الذي تمت تصفيته.
المقارنات بمرور الوقت
تهتم مجموعة أخرى من دالات معلومات الوقت في DAX بتبديل الفترات الزمنية:
DATEADD
- تُرجع جدولاً يحتوي على عمود من التواريخ، لإزاحة إما إلى الأمام أو إلى الخلف في الوقت المحدد بواسطة عدد الفواصل الزمنية من التواريخ في سياق عامل التصفية الحالي.PARALLELPERIOD
- تُرجع جدولاً يحتوي على عمود من التواريخ التي تمثل فترة موازية للتواريخ في عمود التواريخ المحددة في سياق عامل التصفية الحالي مع إزاحة عدد من الفواصل الزمنية إما إلى الأمام أو مرة أخرى في الوقت.SAMEPERIODLASTYEAR
- تُرجع جدولاً يحتوي على عمود من التواريخ التي تمت إزاحتها لمدة سنة واحدة إلى الوراء من التواريخ الموجودة في عمود التواريخ المحددة، في سياق عامل التصفية الحالي.- العديد من دالات DAX المساعدة للتنقل للخلف أو للأمام لفترات زمنية محددة، وتقوم جميعها بإرجاع جدول التواريخ. وتتضمن هذه الدالات المساعدة ما يلي:
NEXTDAY
، وNEXTMONTH
، وNEXTQUARTER
، وNEXTYEAR
، وPREVIOUSDAY
، وPREVIOUSMONTH
، وPREVIOUSQUARTER
، وPREVIOUSYEAR
.
الآن، ستضيف مقياساً إلى جدول Sales الذي يحسب الإيرادات للسنة السابقة باستخدام الدالة SAMEPERIODLASTYEAR
. قم بتنسيق القياس كعملة مع رقمين عشريين.
Revenue PY =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
RevenuePriorYear
أضف مقياس Revenue PY إلى المصفوفة المرئية. لاحظ أنه ينتج نتائج مشابهة لمبالغ إيرادات العام السابق.
بعد ذلك، ستعدل التدبير عن طريق إعادة تسميته إلى Revenue YoY ٪ ثم حدِّث عبارة RETURN
لحساب نسبة التغيير. تأكد من تغيير التنسيق إلى نسبة مئوية مع رقمين عشريين.
Revenue YoY % =
VAR RevenuePriorYear = CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE(
[Revenue] - RevenuePriorYear,
RevenuePriorYear
)
لاحظ أن مقياس Revenue YoY % ينتج نسبة عامل التغيير عن الإيرادات الشهرية للسنة السابقة. على سبيل المثال، يمثل يوليو 2018 زيادة بنسبة 106.53 في المئة عن الإيرادات الشهرية للعام السابق، ويمثل شهر نوفمبر 2018 انخفاضًا بنسبة 24.22 في المائة عن الإيرادات الشهرية للعام السابق.
ملاحظة
يوضح مقياس Revenue YoY % الاستخدام الجيد لمتغيرات DAX. يحسن القياس قابلية قراءة الصيغة ويسمح لك بوحدة اختبار جزء من منطق القياس (عن طريق إرجاع قيمة المتغير RevenuePriorYear). بالإضافة إلى ذلك، المقياس هو صيغة مثالية لأنه لا تحتاج إلى استرداد قيمة إيرادات السنة السابقة مرتين. بعد تخزينها مرةً واحدةً في متغير، تستخدم عبارة RETURN
إلى قيمة المتغير مرتين.