استخدام تحليل معلومات الوقت في DAX

مكتمل

يتضمن DAX العديد من دالات تحليل معلومات الوقت لتبسيط مهمة تعديل سياق تصفية التاريخ. يمكنك كتابة العديد من صيغ التحليل الذكي هذه باستخدام دالة CALCULATE التي تعدل عوامل تصفية التاريخ، ولكن ذلك من شأنه أن يخلق المزيد من العمل.

ملاحظة

تهتم العديد من دالات تحليل معلومات الوقت في DAX بفترات التاريخ القياسي، لا سيّما السنوات، والأرباع، والأشهر. إذا كان لديك فترات زمنية غير منتظمة (على سبيل المثال، الأشهر المالية التي تبدأ في منتصف الشهر التقويمي)، أو إذا كنت بحاجة إلى العمل مع الأسابيع أو الفترات الزمنية (الساعات والدقائق وهكذا)، فلن تكون دالات تحليل معلومات الوقت في DAX ذات أهمية تُذكر. بدلاً من ذلك، ستحتاج إلى استخدام الدالة CALCULATE والتمرير في عوامل تصفية التاريخ أو الوقت اليدوية.

متطلبات جدول التاريخ

للعمل مع دالات تحليل معلومات الوقت في DAX، تحتاج إلى تلبية متطلبات النموذج المسبق المتمثلة في وجود ⁧⁩جدول تاريخ⁧⁩ واحد على الأقل في النموذج لديك. جدول التاريخ هو جدول يلبي المتطلبات التالية:

  • يجب أن يكون عمود نوع البيانات التاريخ (أو التاريخ/الوقت)، والمعروفة باسم ⁧⁩عمود التاريخ⁧⁩.
  • يجب أن يحتوي عمود التاريخ على قيم فريدة.
  • يجب ألا يحتوي عمود التاريخ على BLANKs.
  • يجب ألا يحتوي عمود التاريخ على أي تواريخ مفقودة.
  • يجب أن يمتد عمود التاريخ على سنوات كاملة. لا يجب بالضرورة أن تمثل السنة سنة تقويمية (من يناير إلى ديسمبر).
  • يجب أن تتم الإشارة إلى جدول التاريخ كجدول تاريخ.

لمزيد من المعلومات، راجع ⁧⁩إنشاء جداول تاريخ في Power BI Desktop⁧⁩.

التلخيصات بمرور الوقت

تهتم مجموعة واحدة من دالات تحليل معلومات الوقت في DAX بالتلخيصات بمرور الوقت:

  • DATESYTD - ترجع جدول عمود واحد يحتوي على تواريخ السنة إلى التاريخ (YTD) في سياق عامل التصفية الحالي. تتضمن هذه المجموعة أيضًا ⁧دالات DAX ⁩ ⁧DATESMTD⁩ وDATESQTD للشهر إلى تاريخ (MTD) وربع إلى تاريخ (QTD). يمكنك تمرير هذه الدالات باعتبارها عوامل تصفية إلى دالة DAX CALCULATE.
  • 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⁦⁩ إلى المصفوفة المرئية. لاحظ أنه ينتج ملخصًا لمبالغ الإيراد من بداية السنة إلى الشهر الذي تمت تصفيته.

⁩⁧⁩توضح الصورة مصفوفة مرئية مع التجميع حسب Year وMonth في الصفوف وتلخيصات Revenue وRevenue YTD. يتم تمييز قيم 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⁦⁩ إلى المصفوفة المرئية. لاحظ أنه ينتج نتائج مشابهة لمبالغ إيرادات العام السابق.

توضح الصورة مصفوفة مرئية مع التجميع حسب Year وYear في الصفوف وتلخيصات Revenue وRevenue YTD وRevenue PY. تساوي قيم Revenue PY الشهرية للسنة المالية 2019 قيم شهر Revenue للسنة المالية 2018.

بعد ذلك، ستعدل التدبير عن طريق إعادة تسميته إلى 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 في المائة عن الإيرادات الشهرية للعام السابق.

تُظهر الصورة مصفوفة مرئية مع التجميع حسب Year وMonth في الصفوف وتلخيصات Revenue وRevenue YTD وRevenue YoY %. قيم شهر Revenue YoY % للسنة المالية 2019 هي قيم تم تنسيقها كنسب مئوية.

ملاحظة

يوضح مقياس ⁧⁩⁩Revenue YoY %⁦⁩ الاستخدام الجيد لمتغيرات DAX. يحسن القياس قابلية قراءة الصيغة ويسمح لك بوحدة اختبار جزء من منطق القياس (عن طريق إرجاع قيمة المتغير ⁧⁩RevenuePriorYear)⁧⁩. بالإضافة إلى ذلك، المقياس هو صيغة مثالية لأنه لا تحتاج إلى استرداد قيمة إيرادات السنة السابقة مرتين. بعد تخزينها مرةً واحدةً في متغير، تستخدم عبارة RETURN إلى قيمة المتغير مرتين.