تعبيرات تحليل البيانات (DAX) في Power Pivot

ينطبق على
Excel لـ Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

تبدو تعبيرات تحليل البيانات (DAX) مخيفة بعض الشيء في البداية، ولكن لا تدع الاسم يخدعك. من السهل جدا فهم أساسيات DAX. أول الأشياء أولا - DAX ليست لغة برمجة. DAX عبارة عن لغة صيغ. يمكنك استخدام DAX لتحديد العمليات الحسابية المخصصة للأعمدة المحسوبةوالمقاييس (المعروفة أيضا بالحقول المحسوبة). يتضمن DAX بعض الدالات المستخدمة في صيغ Excel، ودالات إضافية مصممة للعمل مع البيانات العلائقية وتنفيذ تجميع ديناميكي.

فهم صيغ DAX

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

على الرغم من ذلك، تختلف صيغ DAX بالطرق الهامة التالية:

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

مكان استخدام صيغ DAX

يمكنك إنشاء صيغ في Power Pivot إما في أعمدة محسوبة أو في حقول محسوبة.

الأعمدة المحسوبة

إن العمود المحسوب هو عمود تضيفه إلى جدول Power Pivot موجود. بدلا من لصق القيم أو استيرادها في العمود، يمكنك إنشاء صيغة DAX التي تحدد قيم العمود. إذا قمت بتضمين جدول Power Pivot في PivotTable (أو PivotChart)، فيمكن استخدام العمود المحسوب كما تفعل مع أي عمود بيانات آخر.

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

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

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

لمزيد من المعلومات المفصلة، راجع "الأعمدة المحسوبة" في PowerPivot.

المقاييس

إن المقياس عبارة عن صيغة تم إنشاؤها خصيصا لاستخدامها في PivotTable (أو PivotChart) يستخدم بيانات PowerPivot. يمكن أن تستند المقاييس إلى دالات التجميع القياسية، مثل COUNT أو SUM، أو يمكنك تعريف صيغة خاصة بك باستخدام DAX. يتم استخدام مقياس في منطقة "القيم " في PivotTable. إذا كنت تريد وضع نتائج محسوبة في منطقة مختلفة من PivotTable، فاستخدم عمودا محسوبا بدلا من ذلك.

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

يتم حفظ تعريف القياس الذي تقوم بإنشائه مع جدول بيانات المصدر الخاص به. تظهر في قائمة "حقول PivotTable" وتكون متوفرة لكل مستخدمي المصنف.

لمزيد من المعلومات المفصلة، انظر المقاييس في Power Pivot.

إنشاء صيغ باستخدام شريط الصيغة

يوفر Power Pivot، مثل Excel، شريط صيغة لتسهيل عملية إنشاء الصيغ وتحريرها، ووظائف الإكمال التلقائي لتقليل أخطاء الكتابة وبناء الجمل.

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

لإدخال اسم عمود اكتب قوسا، ثم اختر العمود من قائمة الأعمدة في الجدول الحالي. بالنسبة إلى عمود من جدول آخر، ابدأ بكتابة الأحرف الأولى من اسم الجدول، ثم اختر العمود من قائمة "الإكمال التلقائي" المنسدلة.

للحصول على مزيد من التفاصيل ومعاينة حول كيفية إنشاء الصيغ، راجع "إنشاء صيغ للحسابات في PowerPivot".

تلميحات لاستخدام الإكمال التلقائي

يمكنك استخدام ميزة الإكمال التلقائي للصيغ في وسط صيغة موجودة مع دالات متداخلة. يتم استخدام النص الذي يسبق نقطة الإدراج مباشرة لعرض القيم في القائمة المنسدلة، ويبقى كل النص الذي يلي نقطة الإدراج دون تغيير.

لا يتم عرض الأسماء المعرفة التي تقوم بإنشائها للثوابت في القائمة المنسدلة "الإكمال التلقائي"، ولكن يبقى بإمكانك كتابتها.

لا يضيف Power Pivot قوس إغلاق الدالات أو يطابق الأقواس تلقائيا. يجب أن تتأكد من أن كل دالة صحيحة بناء نحوي أو لا يمكنك حفظ الصيغة أو استخدامها. 

استخدام دالات متعددة في صيغة

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

تم تصميم عدد كبير من دالات DAX ليتم استخدامها فقط كدالات متداخلة. ترجع هذه الدالات جدولا لا يمكن حفظه مباشرة كنتيجة لذلك؛ وينبغي توفيره كمدخل لدالة جدول. على سبيل المثال، تتطلب الدالات SUMX وAVERAGEX وMINX جدولا كالوسيطة الأولى.

ملاحظة

توجد بعض القيود المتعلقة بتداخل الدالات ضمن المقاييس لضمان عدم تأثر الأداء بالعمليات الحسابية العديدة التي تتطلبها التبعيات بين الأعمدة.

مقارنة دالات DAX ودالات Excel

تستند مكتبة دالات DAX إلى مكتبة دالات Excel، ولكن هناك العديد من الاختلافات بين المكتبات. يلخص هذا القسم الاختلافات والتشابهات بين دالات Excel ودالات DAX.

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

أنواع بيانات DAX

يمكنك استيراد البيانات إلى نموذج بيانات Power Pivot من العديد من مصادر البيانات المختلفة التي قد تدعم أنواع بيانات مختلفة. عند استيراد البيانات أو تحميلها، ثم استخدام البيانات في عمليات حسابية أو في PivotTables، يتم تحويل البيانات إلى أحد أنواع بيانات Power Pivot. للحصول على قائمة بأنواع البيانات، راجع أنواع البيانات في نماذج البيانات.

نوع بيانات الجدول هو نوع بيانات جديد في DAX يتم استخدامه كإدخال أو إخراج للعديد من الدالات الجديدة. على سبيل المثال، تأخذ الدالة FILTER جدولا كإدخال وتنتج جدولا آخر يحتوي فقط على الصفوف التي تفي بشروط التصفية. من خلال دمج دالات الجدول مع دالات التجميع، يمكنك إجراء عمليات حسابية معقدة عبر مجموعات البيانات المعرفة ديناميكيا. لمزيد من المعلومات، راجع التجميعات في Power Pivot.

الصيغ والنموذج العلائقي

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

نظرا لأنه يمكنك ربط الجداول باستخدام العلاقات، يمكن لجداول PivotTables أيضا أن تتضمن بيانات من أعمدة متعددة من جداول مختلفة.

ومع ذلك، بما أن الصيغ تعمل مع جداول وأعمدة كاملة، فأنت بحاجة إلى تصميم العمليات الحسابية بشكل مختلف عما تقوم به في Excel.

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

تحديث نتائج الصيغ

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

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

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

  • بالنسبة للعمود المحسوب، يجب إعادة حساب نتيجة الصيغة للعمود بأكمله دائما، كلما قمت بتغيير الصيغة.
  • بالنسبة إلى مقياس، لا يتم حساب نتائج الصيغة حتى يتم وضع القياس في سياق PivotTable أو PivotChart. ستتم أيضا إعادة حساب الصيغة عند تغيير أي عنوان صف أو عمود يؤثر على عوامل التصفية على البيانات أو عند تحديث PivotTable يدويا.

استكشاف أخطاء الصيغ وإصلاحها

أخطاء عند كتابة الصيغ

إذا تلقيت خطأ عند تعريف صيغة، فقد تحتوي الصيغة إما على خطأ نحوي أو خطأ دلالي أو خطأ في الحساب.

الأخطاء التركيبية هي الأسهل في الحل. عادة ما تتضمن قوسا أو فاصلة مفقودا. للحصول على تعليمات بناء جملة الدالات الفردية، راجع مرجع دالات DAX.

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

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

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

نتائج غير صحيحة أو غير عادية عند ترتيب قيم الأعمدة أو ترتيبها

عند ترتيب عمود يحتوي على القيمة NaN (وليس رقم) أو ترتيبه، قد تحصل على نتائج خاطئة أو غير متوقعة. على سبيل المثال، عندما تقسم عملية حسابية 0 على 0، يتم إرجاع نتيجة NaN.

وذلك لأن مشغل الصيغ ينفذ الترتيب والترتيب عن طريق مقارنة القيم الرقمية؛ ومع ذلك ، لا يمكن مقارنة NaN بالأرقام الأخرى في العمود.

لضمان النتائج الصحيحة، يمكنك استخدام العبارات الشرطية باستخدام الدالة IF لاختبار قيم NaN وإرجاع قيمة رقمية تساوي 0.

التوافق مع نماذج Analysis Services الجدولية ووضع DirectQuery

بشكل عام، تتوافق صيغ DAX التي تقوم بإنشائها في Power Pivot توافقا كاملا مع نماذج Analysis Services الجدولية. ومع ذلك، إذا قمت بترحيل نموذج Power Pivot إلى مثيل Analysis Services، ثم قمت بنشر النموذج في وضع DirectQuery، فهناك بعض القيود.

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

لمزيد من المعلومات، راجع وثائق التخطيط الجدولي ل Analysis Services في SQL Server 2012 BooksOnline.