شرح مفصّل عن لغة DAX واستخداماتها المتقدمة في Power BI

مقدمة

بعد أن تعرّفنا في المقال السابق على أساسيات لغة DAX، حان الوقت لنغوص أكثر في التفاصيل. هذا المقال مخصص للمستخدمين الذين لديهم خبرة مبدئية ويرغبون بفهم كيف تعمل الدوال المتقدمة، المقاييس (Measures)، وكيف يمكن توظيفها لإنشاء تقارير ذكية في Power BI.


كيف تعمل DAX؟

لغة DAX تعتمد على:

  1. الجداول (Tables): وهي المصدر الأساسي للبيانات.

  2. الأعمدة (Columns): قيم فردية داخل الجداول.

  3. المقاييس (Measures): صيغ حسابية ديناميكية تتغير حسب السياق.

  4. سياق التصفية (Filter Context) و سياق الصف (Row Context): وهما أهم مفهومين لفهم طريقة عمل النتائج.


الفرق بين الأعمدة المحسوبة (Calculated Columns) والمقاييس (Measures)

  • الأعمدة المحسوبة: يتم حسابها مرة واحدة وتُخزّن داخل الجدول (تستهلك ذاكرة أكبر).

  • المقاييس: يتم حسابها عند الطلب حسب الفلتر أو الجدول المعروض (أكثر كفاءة وأفضل للأداء).

مثال:

-- عمود محسوب Profit Column = Sales[Revenue] - Sales[Cost] -- مقياس Profit Measure = SUM(Sales[Revenue]) - SUM(Sales[Cost])

أمثلة على دوال متقدمة في DAX

1. CALCULATE()

هي أقوى دالة في DAX لأنها تغيّر سياق التصفية.
مثال: حساب مجموع المبيعات في سنة معينة.

Sales 2022 = CALCULATE(SUM(Sales[Amount]), Sales[Year] = 2022)

2. FILTER()

تسمح بإنشاء شرط على جدول كامل.

High Sales = CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Amount] > 1000))

3. ALL()

تُستخدم لتجاهل الفلاتر واسترجاع البيانات الكاملة.

Total Sales All Years = CALCULATE(SUM(Sales[Amount]), ALL(Sales[Year]))

4. RELATED() و RELATEDTABLE()

  • RELATED(): لجلب بيانات من جدول آخر له علاقة.

  • RELATEDTABLE(): لجلب جدول مرتبط كامل.


مفهوم السياق في DAX

🔑 السياق (Context) هو ما يميز DAX عن إكسل:

  • سياق الصف (Row Context): يُطبّق على صف واحد (مثل عند إنشاء عمود محسوب).

  • سياق الفلتر (Filter Context): يُحدد ما يظهر في PivotTable أو Visual داخل Power BI.

على سبيل المثال، إذا عرضت المبيعات حسب السنة، فإن DAX يحسب النتيجة بناءً على الفلتر الحالي للسنة.


أفضل الممارسات عند استخدام DAX

  1. استخدم Measures بدل الأعمدة المحسوبة لتقليل استهلاك الذاكرة.

  2. نظّم مقاييسك داخل مجلدات أو مجموعات لسهولة الإدارة.

  3. لا تكثر من استخدام دالة CALCULATE() بلا داعٍ، لأنها قد تؤثر على الأداء.

  4. افهم دائمًا تأثير السياق قبل كتابة الصيغة.


أمثلة عملية من الحياة الواقعية

  • في متجر إلكتروني: حساب نسبة مبيعات المنتجات المخفضة مقابل الإجمالي.

  • في البنوك: متابعة متوسط القروض لكل عميل.

  • في التعليم: حساب معدل النجاح لكل مادة مقارنة بجميع الطلاب.


خاتمة

لغة DAX هي العمود الفقري لأي مشروع تحليل بيانات داخل Power BI. فهم المفاهيم الأساسية مثل CALCULATE()، FILTER()، وسياق التصفية يمنحك مرونة هائلة لبناء تقارير أكثر ذكاءً.

كلما مارست كتابة صيغ جديدة على بياناتك الواقعية، كلما أصبحت محترفًا في تحليل البيانات باستخدام DAX

Post a Comment

شاركنا تعليقك

أحدث أقدم