كتابة صيغ DAX

مكتمل

يتم تحديد كل نوع حساب نموذج أو جدول محسوب أو عمود محسوب أو مقياس باسمه، متبوعًا برمز يساوي (=)، والذي يتبعه بعد ذلك ⁧⁩صيغة DAX⁩. استخدم القالب التالي لإنشاء حساب نموذج:

<Calculation name> = <DAX formula>

على سبيل المثال، تعريف الجدول Ship Date المحسوب الذي يكرر بيانات جدول Date هو:

Ship Date = 'Date'

تتكون صيغة DAX من تعبيرات ترجع نتيجة. تكون النتيجة إما كائن جدول أو قيمة عددية. يجب أن ترجع صيغ الجدول المحسوبة كائن جدول؛ ويجب أن تُرجع صيغ العمود المحسوب والقياس قيمة عددية (قيمة مفردة).

يتم تجميع الصيغ باستخدام:

  • دالات DAX
  • عوامل تشغيل DAX
  • مراجع إلى كائنات النموذج
  • القيم الثابتة، مثل الرقم 24 أو النص الحرفي "FY" (اختصار للسنة المالية)
  • متغيرات DAX
  • المسافة البيضاء

تلميح

عند إدخال صيغ DAX في Power BI Desktop، ستتمتع بميزة IntelliSense. IntelliSense هو أداة مساعدة لإكمال التعليمات البرمجية تسرد الدالات وموارد النموذج. عند تحديد دالة DAX، فإنها توفر لك أيضًا تعريفًا ووصفًا. نوصي باستخدام IntelliSense لمساعدتك في إنشاء صيغ دقيقة بسرعة.

دالات DAX

على غرار Microsoft Excel، تُعد DAX لغة وظيفية؛ تُعني الصيغ على ⁧⁩دالات لتحقيق أهداف محددة. بوجهٍ عامٍ، الدالات DAX لها وسائط تسمح بتمرير المتغيرات. يمكن أن تستخدم الصيغ العديد من استدعاءات الدالات وغالبًا ما تقوم بتداخل الدالات في دالات أخرى.

في الصيغة، يجب أن يتبع أسماء الوظائف أقواس. داخل الأقواس، يتم تمرير المتغيرات.

ملاحظة

لا تأخذ بعض الدالات وسيطات، أو قد تكون الوسائط اختيارية.

يتم وصف العمل باستخدام دالات DAX لاحقًا في هذه الوحدة النمطية.

عوامل تشغيل DAX

تعتمد الصيغ أيضًا على ⁧⁩عوامل تشغيل، والتي يمكنها إجراء عمليات حسابية أو مقارنة القيم أو التعامل مع السلاسل أو شروط الاختبار.

يتم وصف عوامل تشغيل DAX بمزيد من التفاصيل لاحقًا في هذه الوحدة النمطية.

مراجع إلى كائنات النموذج

يمكن أن تشير الصيغ فقط إلى ثلاثة أنواع من كائنات النموذج: الجداول أو الأعمدة أو المقاييس. لا يمكن أن تشير الصيغة إلى التسلسل الهرمي أو مستوى التسلسل الهرمي. (تذكر أن مستوى التسلسل الهرمي يستند إلى عمود، بحيث يمكن أن تشير الصيغة إلى عمود مستوى التسلسل الهرمي.)

الجداول مرجعية

عندما تشير إلى جدول في صيغة، رسميًا، يتم وضع اسم الجدول ضمن علامات اقتباس مفردة. في تعريف الجدول المحسوب التالي، لاحظ أن جدول Date محاط بعلامات اقتباس مفردة.

Ship Date = 'Date'

ومع ذلك، يمكن حذف علامات الاقتباس المفردة عندما يكون كلا الشرطين التاليين صحيحين:

  1. لا يتضمن اسم الجدول مسافات مضمّنة.
  2. اسم الجدول ليس كلمة محجوزة يتم استخدامها بواسطة DAX. كافة أسماء الدالة DAX وعوامل التشغيل محجوزة. إن ⁦⁦⁩⁩Date هو اسم دالة DAX، وهو ما يفسر سبب وجوب وضعه بين علامات اقتباس مفردة عندما تشير إلى جدول يُسمى Date.

في تعريف الجدول المحسوب التالي، من الممكن حذف علامات الاقتباس الفردية عند الإشارة إلى جدول Airport:

Arrival Airport = Airport

مراجع الأعمدة

عند الرجوع إلى عمود في صيغة، يجب أن يكون اسم العمود مضمّنًا بين أقواس مربعة. اختياريًا، يمكن أن يسبقه اسم الجدول. على سبيل المثال، يشير تعريف المقياس التالي إلى عمود ⁧⁩«⁩⁩Sales Amount»⁧⁩.

Revenue = SUM([Sales Amount])

لأن أسماء الأعمدة فريدة داخل جدول ولكن ليس بالضرورة فريدة داخل النموذج، يمكنك إزالة تعريف مرجع العمود بواسطة مسبوقة مع اسم الجدول. يُعرف هذا العمود الواضح باسم ⁧⁩عمود مؤهل بالكامل⁧⁩. تتطلب بعض دالات DAX التمرير في أعمدة مؤهلة بالكامل.

تلميح

لتحسين إمكانية قراءة الصيغ، نوصي بأن تسبق دائمًا مرجع عمود باسم جدوله.

يمكن إعادة كتابة تعريف قياس المثال السابق على النحو التالي:

Revenue = SUM(Sales[Sales Amount])

المقاييس المرجعية

عند الإشارة إلى قياس في صيغة، مثل مراجع اسم العمود، يجب أن يكون اسم القياس محاطًا بأقواس مربعة. على سبيل المثال، يشير تعريف المقياس التالي إلى مقاييس ⁧⁩«Revenue»⁧⁩ و⁧⁩«Cost»⁧⁩.

Profit = [Revenue] - [Cost]

إذا كنت مبتدئًا في DAX، فإن حقيقة أن مراجع العمود والقياس تكون دائمًا محاطة بأقواس مربعة يمكن أن تتسبب في حدوث ارتباك عندما تحاول قراءة صيغة. ومع ذلك، عندما تتقن أساسيات DAX، ستتمكن من تحديد نوع العنصر لأنه، في صيغ DAX، يتم استخدام الأعمدة والمقاييس بطرق مختلفة.

تلميح

من الممكن أن تسبق مرجع قياس باسم الجدول. ومع ذلك، تكون القياسات كائن على مستوى النموذج. في أثناء تعيينهم لجدول رئيسي، تكون فقط علاقة تجميلية لتنظيم المقاييس منطقيًا في جزء ⁧⁩«Fields»⁧⁩.

لذلك، بينما نوصي بأن تسبق دائمًا مرجع عمود باسم الجدول الخاص به، يكون معكوس المقاييس صحيحًا: نوصي بألا تسبق مرجع مقياس باسم الجدول الخاص به.

لمزيد من المعلومات، راجع ⁧⁩⁩⁩Column and measure references⁦⁦ «مراجع العمود والقياس»⁧⁩.

متغيرات DAX

يمكن أن تقوم الصيغ بتعريف متغيرات DAX لتخزين النتائج.

كيفية ووقت استخدام متغيرات DAX موصوفة لاحقًا في هذه الوحدة النمطية.

المسافة البيضاء

تشير المسافات البيضاء إلى الأحرف التي يمكنك استخدامها لتنسيق الصيغ الخاصة بك بطريقة سريعة وسهلة الفهم. تتضمن أحرف المسافات البيضاء:

  • المسافات
  • علامات التبويب
  • رجوع إلى أول السطر

المسافة البيضاء اختيارية ولا تقوم بتعديل منطق الصيغة أو تؤثر سلبًا على الأداء. نوصي بشدة بتبني نمط تنسيق وتطبيقه باستمرار، ومراعاة التوصيات التالية:

  • استخدام المسافات بين عوامل التشغيل.
  • استخدام علامات الجدولة لوضع مسافة بادئة لاستدعاءات الدالات المتداخلة.
  • استخدام أحرف إرجاع إلى وسيطات دالة منفصلة، خاصةً عندما تكون طويلة جدًا بحيث لا يمكن احتواؤها في سطر واحد. يؤدي التنسيق بهذه الطريقة إلى تبسيط عملية استكشاف الأخطاء وإصلاحها، خاصةً عندما تفتقد الصيغة إلى قوس.
  • خطأ في جانب المسافة البيضاء الزائدة عن الحد القليل جدًا.

تلميح

في شريط الصيغة، لإدخال حرف إرجاع، اضغط على ⁩⁩Shift+Enter. سيؤدي الضغط على مفتاح ⁧⁩Enter⁧⁩ وحده إلى تثبيت الصيغة.

ضع في اعتبارك تعريف المقياس التالي المكتوب في سطر واحد والذي يتضمن خمسة استدعاءات دالة DAX:

Revenue YoY % = DIVIDE([Revenue] - CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])), CALCULATE([Revenue], SAMEPERIODLASTYEAR('Date'[Date])))

المثال التالي هو نفس تعريف المقياس ولكنه منسق الآن، ما يساعد على تسهيل القراءة والفهم:

Revenue YoY % =
DIVIDE(
    [Revenue]
        - CALCULATE(
            [Revenue],
            SAMEPERIODLASTYEAR('Date'[Date])
    ),
    CALCULATE(
        [Revenue],
        SAMEPERIODLASTYEAR('Date'[Date])
    )
)

حاول تنسيق المقياس بنفسك. افتح ملف ⁩ Power BI Desktop باسم ⁩⁩⁦⁦⁩⁩Adventure Works DW 2020 M02.pbix ثم في الجزء Fields وسَّع الجدول Sales ثم حدد القياس Revenue YoY %. في شريط الصيغة، استخدم أحرف الإرجاع والجدولة للحصول على نفس النتيجة مثل المثال السابق. عند إضافة حرف رجوع، تذكر أن تضغط على ⁩⁩Shift+Enter.

من الممكن تحسين تعريف المقياس هذا أكثر لقابلية القراءة والأداء، وهذا ما سيتم شرحه لاحقًا في هذه الوحدة.

تلميح

أداة تنسيق ممتازة من مصدر آخر يمكن أن تساعدك في تنسيق حساباتك هي ⁩⁩DAX Formatter⁦⁦⁩⁩. تتيح لك الأداة اللصق في حسابك وتنسيقه. عندئذٍ يمكنك نسخ الحساب المنسق إلى الحافظة ولصقه مرة أخرى في Power BI Desktop.