ويتوفر هذا التشغيل السريع للمستخدمين الجدد على Power Pivot في Excel أو مشاريع النماذج الجدولية التي تم تأليفها في SQL Server Data Tools. الهدف من هذه المقالة هو تزويدك بمقدمة سريعة وسهلة حول كيفية استخدام تعبيرات تحليل البيانات (DAX) لحل عدد من المشاكل التحليلية ونمذجة البيانات الأساسية. يتضمن هذا الموضوع معلومات تصورية وسلسلة من المهام التي يمكنك إكمالها وبعض الاختبارات لاختبار الأمور التي تعلمتها. بعد الانتهاء من هذا الموضوع، يجب أن يكون لديك فهم جيد للمفاهيم الأساسية الأساسية في DAX.
ما هو DAX؟
DAX عبارة عن مجموعة من الدالات وعوامل التشغيل والثوابت التي يمكن استخدامها في صيغة أو تعبير لحساب قيمة واحدة أو أكثر وإرجاعها. بتعبير أكثر بساطة، يساعدك DAX على إنشاء معلومات جديدة من البيانات الموجودة بالفعل في نموذجك.
لماذا DAX مهم جدا؟
من السهل إنشاء مصنف واستيراد بعض البيانات فيه. حتى أنه يمكنك إنشاء جداول PivotTable أو PivotCharts تعرض معلومات مهمة دون استخدام أي صيغ DAX. ولكن، ماذا لو كنت بحاجة إلى تحليل بيانات المبيعات المهمة عبر العديد من فئات المنتجات ولنطاقات تواريخ مختلفة؟ أو تحتاج إلى دمج بيانات المخزون الهامة من عدة جداول في مصادر بيانات مختلفة؟ توفر صيغ DAX هذه الإمكانية والعديد من الإمكانات الهامة الأخرى أيضا. سيساعدك التعرف على كيفية إنشاء صيغ DAX فعالة على تحقيق أقصى استفادة من بياناتك. عندما تحصل على المعلومات التي تحتاجها ، يمكنك البدء في حل مشكلات الأعمال الحقيقية التي تؤثر على أرباحك النهائية. هذه معلومات مهنية، وسيساعدك DAX على الوصول إليها.
المتطلبات الأساسية
قد تكون ملما بكيفية إنشاء الصيغ في Microsoft Excel. وستكون هذه المعرفة مفيدة في فهم DAX، ولكن حتى إذا لم تكن لديك خبرة في استخدام صيغ Excel، فإن المفاهيم الموضحة هنا ستساعدك على بدء إنشاء صيغ DAX وحل مشاكل المعلومات المهنية في العالم الحقيقي مباشرة.
سنركز بشكل خاص على فهم صيغ DAX المستخدمة في العمليات الحسابية. يجب أن تكون ملما بالمفاهيم الأساسية لكل من الأعمدة المحسوبةوالمقاييس (المعروفة أيضا بالحقول المحسوبة)، وكلاهما موصوف في تعليمات Power Pivot. يجب أيضا أن تكون معتادا على Power Pivot في بيئة التأليف والأدوات في Excel.
مصنف مثال
أفضل طريقة للتعرف على DAX هي إنشاء بعض الصيغ الأساسية، واستخدامها مع بعض البيانات الفعلية، والاطلاع على النتائج بنفسك. تستخدم الأمثلة والمهام الموجودة هنا مصنف Contoso Sample DAX Formulas.xlsx. يمكنك تنزيل المصنف من http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. عند تنزيل المصنف على الكمبيوتر، افتحه ثم افتح نافذة Power Pivot.
لنبدأ!
سنقوم بتأطير DAX حول ثلاثة مفاهيم أساسية مهمة للغاية: بناء الجملة والدالات والسياق. بالطبع، هناك بعض المفاهيم المهمة الأخرى في DAX، ولكن فهم هذه المفاهيم الثلاثة سيوفر أفضل أساس لبناء مهارات DAX الخاصة بك.
بناء الجملة
قبل إنشاء الصيغ الخاصة بك، دعنا نلق نظرة على بناء جملة صيغة DAX. يتضمن بناء الجملة العناصر المختلفة التي تشكل الصيغة، أو بطريقة أكثر بساطة، كيفية كتابة الصيغة. على سبيل المثال، دعونا نلق نظرة على صيغة DAX بسيطة مستخدمة لإنشاء بيانات (قيم) جديدة لكل صف في عمود محسوب، يسمى "الهامش"، في جدول مبيعات الحقائق: (ألوان نصوص الصيغة هي لأغراض توضيحية فقط)
يتضمن بناء جملة هذه الصيغة العناصر التالية:
- يشير عامل علامة التساوي (=) إلى بداية الصيغة، وعند حساب هذه الصيغة، سترجع نتيجة أو قيمة. ستبدأ جميع الصيغ التي تحسب القيمة بعلامة تساوي.
- يحتوي العمود المشار إليه [SalesAmount] على القيم التي نريد طرحها منها. يكون مرجع العمود في الصيغة محاطا دوما بأقواس []. على عكس صيغ Excel التي تشير إلى خلية، تشير صيغة DAX دائما إلى عمود.
- عامل التشغيل الرياضي للطرح (-).
- يحتوي العمود المشار إليه [TotalCost] على القيم التي نريد طرحها من القيم الموجودة في العمود [SalesAmount].
عند محاولة فهم كيفية قراءة صيغة DAX، غالبا ما يكون من المفيد تقسيم كل عنصر إلى لغة تفكر فيها وتتحدث بها كل يوم. على سبيل المثال، يمكنك قراءة هذه الصيغة ك:
في جدول FactSales، لكل صف في عمود "الهامش" المحسوب، احسب (=) قيمة بطرح القيم (-) في العمود [TotalCost] من القيم الموجودة في العمود [SalesAmount].
دعونا نلق نظرة على نوع آخر من الصيغة، يستخدم في مقياس:
تتضمن هذه الصيغة عناصر بناء الجملة التالية:
- اسم المقياس مجموع قيمة المبيعات. يمكن أن تتضمن صيغ المقاييس اسم القياس، متبوعا بعلامة نقطتين، متبوعا بصيغة الحساب.
- يشير عامل علامة التساوي (=) إلى بداية صيغة الحساب. عند حسابها، سترجع نتيجة.
- تجمع الدالة SUM كل الأرقام الموجودة في العمود [SalesAmount]. ستتعرف على المزيد حول الدالات لاحقا.
- قوس () يحيط وسيطة واحدة أو أكثر. تتطلب جميع الدالات وسيطة واحدة على الأقل. تقوم وسيطة بتمرير قيمة إلى دالة.
- الجدول المرجعي FactSales.
- العمود المشار إليه [SalesAmount] في جدول FactSales. باستخدام هذه الوسيطة، تعرف الدالة SUM على أي عمود تريد تجميع الدالة SUM.
يمكنك قراءة هذه الصيغة كالآتي:
بالنسبة إلى المقياس المسمى مجموع مبلغ المبيعات، احسب (=) مجموع القيم في العمود [SalesAmount] في FactSalestable.
عند وضعه في منطقة إفلات القيم في قائمة حقول PivotTable، يقوم هذا القياس بحساب وإرجاع القيم المعرفة بواسطة كل خلية في PivotTable، على سبيل المثال، الهواتف الخلوية في الولايات المتحدة الأمريكية.
لاحظ وجود بعض الأمور المختلفة في هذه الصيغة مقارنة بالصيغة التي استخدمناها للعمود المحسوب. بشكل خاص، قدمنا دالة، SUM. الدالات هي صيغ مكتوبة مسبقا تجعل من السهل إجراء العمليات الحسابية والمعالجات المعقدة باستخدام الأرقام والتواريخ والوقت والنصوص والمزيد. ستتعرف على المزيد حول الدالات لاحقا.
بخلاف عمود "الهامش المحسوب سابقا"، سترى أن العمود [SalesAmount] كان مسبوقا بجدول مبيعات الحقائق حيث ينتمي العمود. يعرف هذا اسم العمود كعمود مؤهل بالكامل من حيث أنه يتضمن اسم العمود مسبوقا باسم الجدول. لا تتطلب الأعمدة المشار إليها في الجدول نفسه تضمين اسم الجدول في الصيغة. يمكن أن يجعل هذا التنسيق الصيغ الطويلة التي تشير إلى أعمدة كثيرة أقصر ويسهل قراءتها. ومع ذلك، من الممارسات الجيدة أن تقوم دائما بتضمين اسم الجدول في صيغ القياس، حتى عند وجودك في نفس الجدول.
ملاحظة
إذا احتوى اسم جدول على مسافات أو كلمات أساسية محجوزة أو أحرف غير مسموح بها، فعليك إحاطة اسم الجدول بعلامتي اقتباس مفردتين. يجب أيضا إحاطة أسماء الجداول بعلامات اقتباس إذا كان الاسم يحتوي على أية أحرف خارج نطاق الأحرف الأبجدية الرقمية ل ANSI، بغض النظر عما إذا كانت إعداداتك المحلية تدعم مجموعة الأحرف أم لا.
من المهم جدا أن يكون بناء جملة الصيغ صحيحا. في معظم الحالات، إذا لم يكن بناء الجملة صحيحا، سيتم إرجاع خطأ في بناء الجملة. في حالات أخرى، قد يكون بناء الجملة صحيحا، ولكن قد لا تكون القيم المرتجعة هي ما تتوقعه. يتضمن Power Pivot (وSQL Server Data Tools) IntelliSense؛ وهي ميزة تستخدم لإنشاء صيغ صحيحة بناء نحوي من خلال مساعدتك على تحديد العناصر الصحيحة.
لننشئ صيغة بسيطة. ستساعدك هذه المهمة على فهم بناء جملة الصيغة وكيفية مساعدة ميزة IntelliSense في شريط الصيغة.
المهمة: إنشاء صيغة بسيطة لعمود محسوب
- إذا لم تكن في نافذة Power Pivot بالفعل، في Excel، على شريط Power Pivot، انقر فوق نافذة Power Pivot.
- في نافذة Power Pivot، انقر فوق جدول مبيعات الحقائق (علامة التبويب).
- قم بالتمرير إلى العمود الموجود في أقصى اليسار، ثم في رأس العمود، انقر فوق "إضافة عمود".
- انقر في شريط الصيغة على طول الجزء العلوي من نافذة مصمم النموذج.
يظهر المؤشر الآن في شريط الصيغة. شريط الصيغة هو المكان حيث يمكنك كتابة صيغة لعمود محسوب أو حقل محسوب.
لنلق بعض الوقت لنلق نظرة على الأزرار الثلاثة الموجودة إلى يمين شريط الصيغة.
عندما يكون المؤشر نشطا في شريط الصيغة، تصبح هذه الأزرار الثلاثة نشطة. الزر الموجود في أقصى اليسار ، X ، هو ببساطة زر إلغاء. امض قدما وانقر فوقه. لم يعد المؤشر يظهر في شريط الصيغة، ولن يظهر الزر "إلغاء" وزر علامة الاختيار. امض قدما وانقر في شريط الصيغة مرة أخرى. الآن يظهر الزر إلغاء وزر علامة الاختيار مرة أخرى. هذا يعني أنك جاهز لبدء إدخال صيغة.
زر علامة الاختيار هو زر التحقق من الصيغة. لا تؤدي هذه المهمة كثيرا إلا بعد إدخال صيغة. سنعود إليه بعد قليل.
انقر فوق الزر Fx . سترى أنه يظهر مربع حوار جديد؛ مربع الحوار "إدراج دالة". مربع الحوار "إدراج دالة" هو أسهل طريقة لبدء إدخال صيغة DAX. سنضيف دالة إلى الصيغة عندما ننشئ مقياسا بعد قليل، ولكن في الوقت الحالي، لا تحتاج إلى إضافة دالة إلى صيغة العمود المحسوب. امض قدما وأغلق مربع الحوار "إدراج دالة". - في شريط الصيغة، اكتب علامة يساوي =، ثم اكتب قوس فتح [. سترى نافذة صغيرة تظهر مع كل الأعمدة في جدول مبيعات الحقائق. هذا هو IntelliSense قيد العمل.
نظرا لأن الأعمدة المحسوبة يتم إنشاؤها دائما في الجدول النشط الذي تعمل فيه، فلا حاجة إلى إدراج اسم العمود قبل اسم الجدول. امض قدما وقم بالتمرير لأسفل ثم انقر نقرا مزدوجا فوق [SalesQuantity]. يمكنك أيضا التمرير إلى اسم العمود الذي تريده، ثم الضغط على المفتاح Tab.
المؤشر الآن نشط على يسار [SalesQuantity]. - اكتب مسافة، ثم اكتب عامل تشغيل طرح - (علامة طرح)، ثم اكتب مسافة أخرى.
- والآن، اكتب قوس فتح آخر [. هذه المرة، حدد العمود [ReturnQuantity] ، ثم اضغط على Enter.
إذا تلقيت رسالة خطأ، فانظر بعناية إلى بناء الجملة. إذا لزم الأمر، قم بمقارنتها بالصيغة الموجودة في عمود "الهامش" المحسوب الذي ورد وصفه سابقا.
بعد الضغط على Enter لإكمال الصيغة، تظهر كلمة "حساب " في شريط المعلومات على طول أسفل نافذة Power Pivot. يتم ذلك بسرعة، على الرغم من حساب القيم الجديدة لأكثر من ثلاثة ملايين صف. - انقر بزر الماوس الأيمن فوق رأس العمود وأعد تسمية العمود، NetSales.
هذا كل شيء! لقد أنشأت للتو صيغة DAX بسيطة ولكنها فعالة جدا. بالنسبة إلى كل صف في جدول مبيعات الحقائق، تحسب صيغة NetSales قيمة بطرح القيمة الموجودة في العمود [ReturnQuantity] من القيمة الموجودة في العمود [SalesQuantity]. لاحظ كيف قلنا للتو "لكل صف". هذه لمحة عن مفهوم آخر مهم جدا في DAX. سياق الصف. ستتعرف على المزيد حول سياق الصف لاحقا.
هناك شيء مهم حقا يجب فهمه عند كتابة عامل تشغيل في صيغة DAX وهو نوع البيانات في الوسيطات التي تستخدمها. على سبيل المثال، إذا كتبت الصيغة التالية، = 1 & 2، فإن القيمة التي يتم إرجاعها ستكون قيمة نصية من "12". يرجع سبب ذلك إلى أن عامل علامة العطف (&) مخصص لتسلسل النصوص. يفسر DAX هذه الصيغة ليكون نصوصة: حساب نتيجة بأخذ القيمة 1 كنص وأضف القيمة 2 كنص. والآن، إذا كنت تريد كتابة = 1 + 2، فسيقرأ DAX هذه الصيغة على النحو التالي: حساب نتيجة بأخذ القيمة الرقمية 1 وإضافة القيمة الرقمية 2. النتيجة هي بالطبع "3"، وهي قيمة رقمية. تحسب DAX القيم الناتجة بحسب عامل التشغيل في الصيغة، وليس استنادا إلى نوع بيانات الأعمدة المستخدمة في الوسيطة. تعد أنواع البيانات في DAX مهمة جدا، ولكنها خارج نطاق هذا التشغيل السريع. لمعرفة المزيد حول أنواع البيانات وعوامل التشغيل في صيغ DAX، راجع مرجع DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) في Books Online.
فلنجرب طريقة أخرى. ستقوم هذه المرة بإنشاء مقياس عن طريق كتابة الصيغة وباستخدام IntelliSense. لا داعي للقلق كثيرا إذا لم تفهم الصيغة تماما. الشيء المهم هنا هو معرفة كيفية إنشاء صيغة باستخدام عدة عناصر معا في بناء الجملة الصحيح.
المهمة: إنشاء صيغة قياس
- في جدول FactSales ، انقر فوق أي خلية فارغة في منطقة الحساب. هذه هي منطقة الخلايا الفارغة أسفل جدول في نافذة Power Pivot.
- في شريط الصيغة، اكتب الاسم مبيعات الربع السابق:.
- اكتب علامة يساوي = لبدء صيغة الحساب.
- اكتب الأحرف القليلة الأولى من CAL، ثم انقر نقرا مزدوجا فوق الدالة التي تريد استخدامها. في هذه الصيغة، تحتاج إلى استخدام الدالة CALPUT .
- اكتب قوس فتح ( لبدء الوسيطات التي سيتم تمريرها إلى الدالة CALCULATE
لاحظ بعد كتابة قوس الفتح، تعرض IntelliSense الوسيطات المطلوبة للدالة CALCULATION. ستتعرف على الحجج بعد قليل. - اكتب الأحرف القليلة الأولى من جدول FactSales ثم في القائمة المنسدلة، انقر نقرا مزدوجا فوق FactSales[Sales].
- اكتب فاصلة (،) لتحديد عامل التصفية الأول، ثم اكتب، PRE، ثم انقر نقرا مزدوجا فوق الدالة PREVIOUSQUARTER .
بعد تحديد الدالة PREVIOUSQUARTER ، يظهر قوس فتح آخر ، مما يشير إلى أن هناك حاجة إلى وسيطة أخرى ؛ هذه المرة، للدالة PREVIOUSQUARTER. - اكتب الأحرف القليلة الأولى Dict، ثم انقر نقرا مزدوجا فوق DimDate[DateKey].
- أغلق كل من الوسيطة التي يتم تمريرها إلى الدالة PREVIOUSQUARTER والدالة CALCULATE بكتابة قوسي إغلاق )).
يجب أن تظهر الصيغة الآن كما يلي:
مبيعات الربع السابق:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey])) - انقر فوق الزر "التحقق من الصيغة" الموجود على شريط الصيغة للتحقق من صحة الصيغة. إذا تلقيت رسالة خطأ، فتحقق من كل عنصر موجود في بناء الجملة.
لقد فعلت ذلك! لقد أنشأت للتو مقياسا باستخدام DAX، ولم يكن مقياسا سهلا في هذا المجال. الغرض الذي ستفعله هذه الصيغة هو حساب إجمالي المبيعات للربع السابق، استنادا إلى عوامل التصفية المطبقة في PivotTable أو PivotChart.
لقد تعرفت على عدة جوانب مهمة لصيغ DAX. أولا، تضمنت هذه الصيغة دالتين. لاحظ أن الدالة PREVIOUSQUARTER متداخلة كوسيطة تم تمريرها إلى الدالة CALPUT . يمكن أن تحتوي صيغ DAX على ما يصل إلى 64 دالة متداخلة. من غير المحتمل أن تحتوي الصيغة على العديد من الدالات المتداخلة. في الواقع، سيكون من الصعب جدا إنشاء مثل هذه الصيغة وتصحيحها، وربما لن تكون سريعة جدا أيضا.
في هذه الصيغة، استخدمت أيضا عوامل التصفية. تقوم عوامل التصفية بتضييق نطاق ما سيتم حسابه. في هذه الحالة، قمت بتحديد عامل تصفية واحد كوسيطة، وهو في الواقع دالة أخرى. ستتعرف على المزيد حول عوامل التصفية لاحقا.
أخيرا، استخدمت الدالة CAL. هذه واحدة من أقوى الوظائف في DAX. أثناء تأليف نماذج بيانات وإنشاء صيغ أكثر تعقيدا، ستستخدم هذه الدالة على الأرجح عدة مرات. تعد مناقشة الدالة CALCULATE خارج نطاق هذه "البدء السريع"، ولكن مع زيادة معرفتك ب DAX، انتبه بشكل خاص لهذه الخاصية.
ملاحظة
بشكل عام، لاستخدام دالات تحليل معلومات الوقت في صيغ DAX، يجب عليك تحديد عمود تاريخ فريد باستخدام مربع الحوار "وضع علامة كجدول تاريخ". في مصنف Samples.xlsx صيغة Contoso DAX، يتم تحديد العمود DateKey في الجدول DimDate كعمود التاريخ الفريد.
رصيد إضافي
قد تسأل: "ما هي أبسط صيغة DAX يمكنني إنشاؤها؟" حسنا ، الجواب على ذلك هو "الصيغة التي ليس عليك القيام بها". وهذا ما يمكنك القيام به تماما باستخدام وظيفة تجميع قياسية في مقياس. يحتاج أي نموذج بيانات تقريبا إلى التصفية والحساب على البيانات المجمعة. على سبيل المثال، تستخدم الدالة SUM في مقياس "مجموع قيمة المبيعات" الذي رأيته سابقا لجمع كافة الأرقام الموجودة في عمود معين. يتضمن DAX العديد من الدالات الأخرى التي تعمل أيضا على تجميع القيم. يمكنك إنشاء الصيغ تلقائيا باستخدام التجميعات القياسية باستخدام ميزة "جمع تلقائي".
مهمة رصيد إضافي: إنشاء صيغة قياس باستخدام ميزة "جمع تلقائي"
- في جدول FactSales، قم بالتمرير إلى العمود ReturnQuantity، ثم انقر فوق رأس العمود لتحديد العمود بأكمله.
- ضمن علامة التبويب الصفحة الرئيسية ، على الشريط، في المجموعة حسابات ، انقر فوق الزر جمع تلقائي .
انقر فوق السهم للأسفل بجانب "جمع تلقائي"، ثم انقر فوق المتوسط (لاحظ دالات التجميع القياسية الأخرى التي يمكنك استخدامها أيضا).
على الفور، يتم إنشاء مقياس جديد باسم Average of ReturnQuantity: متبوعا بالصيغة =AVERAGE([ReturnQuantity]).
ألم يكن ذلك سهلا؟ بطبيعة الحال، لن تكون كل الصيغ التي تقوم بإنشائها بهذه البساطة. ولكن باستخدام ميزة "جمع تلقائي"، يمكنك إنشاء صيغ سريعة وسهلة باستخدام حسابات التجميع القياسية.
من المفترض أن يمنحك ذلك فهما جيدا لبناء الجملة المستخدمة في صيغ DAX. لقد تعرفت أيضا على بعض الميزات الرائعة حقا مثل IntelliSense وAutoSum لمساعدتك على إنشاء صيغ سريعة وسهلة ودقيقة. وبالطبع، هناك الكثير الذي يمكنك تعلمه حول بناء الجملة. والمكان الجيد لمعرفة المزيد هو مرجع DAX أو كتب SQL Online.
QuickQuiz لبناء الجملة
- ما الذي يفعله هذا الزر الموجود على شريط الصيغة؟
- ما الذي يحيط دائما اسم عمود في صيغة DAX؟
- كيف يمكنك كتابة صيغة لما يلي:
في الجدول DimProduct، لكل صف في عمود UnitMargin المحسوب، حساب قيمة بطرح القيم الموجودة في عمود UnitCost من القيم الموجودة في عمود UnitPrice؟
تتوفر الإجابات في نهاية هذا الموضوع.
الدالات
الدالات هي صيغ معرفة مسبقا تجري عمليات حسابية باستخدام قيم معينة، تسمى الوسيطات، بترتيب أو بنية معينة. يمكن أن تكون الوسيطات عبارة عن دالات أخرى، أو صيغة أخرى، أو مراجع أعمدة، أو أرقام، أو نص، أو قيم منطقية مثل TRUE أو FALSE، أو ثوابت.
يتضمن DAX فئات الدالات التالية: دالات التاريخ والوقت والمعلومات والمنطقية والرياضية والإحصائية والنصية ومعلومات الوقت. إذا كنت ملما باستخدام الدالات في صيغ Excel، فإن العديد من الدالات في DAX ستظهر مشابهة لك؛ ولكن تعد دالات DAX فريدة بالطرق التالية:
- تشير دالة DAX دائما إلى عمود كامل أو جدول. إذا أردت استخدام قيم معينة فقط من جدول أو عمود، يمكنك إضافة عوامل تصفية إلى الصيغة.
- إذا كنت بحاجة إلى تخصيص العمليات الحسابية على أساس صف بصف، يوفر DAX دالات تتيح لك استخدام قيمة الصف الحالي أو قيمة ذات صلة كنوع من الوسيطات لإجراء عمليات حسابية تختلف حسب السياق. ستتعرف على المزيد حول السياق لاحقا.
- يتضمن DAX العديد من الدالات التي ترجع جدولا بدلا من قيمة. لا يتم عرض الجدول، ولكن يتم استخدامه لتوفير إدخال لوظائف أخرى. على سبيل المثال، يمكنك استرداد جدول ثم حساب القيم المميزة فيه، أو حساب المجاميع الديناميكية عبر الأعمدة أو الجداول التي تمت تصفيتها.
- يتضمن DAX مجموعة متنوعة من وظائف تحليل معلومات الوقت. تتيح لك هذه الدالات تحديد نطاقات التواريخ أو تحديدها، وإجراء عمليات حسابية ديناميكية استنادا إليها. على سبيل المثال، يمكنك مقارنة المجاميع عبر فترات متوازية.
في بعض الأحيان يكون من الصعب معرفة الدالات التي قد تحتاج إلى استخدامها في صيغة. يتضمن Power Pivot ومصمم النموذج الجدولي في SQL Server Data Tools، ميزة "إدراج دالة"، وهي عبارة عن مربع حوار يساعدك على تحديد الدالات حسب الفئة ويوفر أوصافا مختصرة لكل دالة.
فلننشئ صيغة جديدة تتضمن دالة ستحددها باستخدام ميزة "إدراج دالة":
المهمة: إضافة دالة إلى صيغة باستخدام إدراج دالة
- في الجدول FactSales، قم بالتمرير إلى العمود الموجود في أقصى اليسار، ثم في رأس العمود، انقر فوق "إضافة عمود".
- في شريط الصيغة، اكتب علامة يساوي، =.
- انقر فوق الزر "إدراج دالة ".
" يؤدي ذلك إلى فتح مربع الحوار "إدراج دالة ". - في مربع الحوار "إدراج دالة "، انقر فوق مربع القائمة " تحديد فئة ". بشكل افتراضي، يكون «الكل » محددا وتكون كافة الدالات في الفئة « الكل » مدرجة أدناه. هذه عدد كبير من الدالات، لذا ستحتاج إلى تصفية الدالات لتسهيل تحديد موقع نوع الدالة التي تبحث عنها.
- بالنسبة لهذه الصيغة، تريد إرجاع بعض البيانات الموجودة بالفعل في جدول آخر. لذلك ، ستستخدم دالة في فئة التصفية. امض قدما وانقر فوق فئة "تصفية "، ثم في تحديد دالة، قم بالتمرير لأسفل وانقر نقرا مزدوجا فوق الدالة RELATED انقر فوق موافق لإغلاق مربع الحوار "إدراج دالة ".
- استخدم IntelliSense لمساعدتك في العثور على عمود DimChannel[ChannelName] وتحديده.
- أغلق الصيغة، ثم اضغط على مفتاح الإدخال Enter.
- بعد الضغط على Enter لإكمال الصيغة، تظهر كلمة "حساب" في شريط المعلومات على طول أسفل نافذة Power Pivot. سترى الآن أنك قمت للتو بإنشاء عمود جديد في جدول FactSales باستخدام معلومات القناة من الجدول DimChannel.
- أعد تسمية العمود إلى قناة العمود.
يجب أن تبدو الصيغة مماثلة لما يلي: =RELATED(DimChannel[ChannelName])
لقد تعرفت على دالة أخرى مهمة جدا في DAX، وهي الدالة ذات الصلة . ترجع الدالة RELATED قيما من جدول آخر. يمكنك استخدام RELATED بشرط وجود علاقة بين الجدول الذي تتواجد فيه حاليا والجدول الذي يحتوي على القيم التي تريد الحصول عليها. بالطبع ، الدالة RELATED لها إمكانيات هائلة. في هذه الحالة، يمكنك الآن تضمين قناة المبيعات لكل عملية بيع في جدول مبيعات الحقائق. يمكنك الآن إخفاء الجدول DimChannel من قائمة حقول PivotTable، مما يسهل التنقل ورؤية المعلومات الأكثر أهمية التي تحتاجها بالفعل. تشبه الدالة CALCULATE التي تم وصفها مسبقا، تعد الدالة RELATED مهمة جدا، وقد تستخدمها على الأرجح عدة مرات.
كما تري، يمكن أن تساعدك الدالات في DAX على إنشاء صيغ فعالة جدا. لقد تطرقنا حقا إلى أساسيات الوظائف. مع تحسن مهارات DAX لديك، ستقوم بإنشاء صيغ باستخدام عدد كبير من الدالات المختلفة. أحد أفضل الأماكن لمعرفة التفاصيل حول كافة دالات DAX موجود في مرجع تعبيرات تحليل البيانات (DAX).
Functions QuickQuiz
- ما الذي تشير إليه الدالة دائما؟
- هل يمكن أن تحتوي الصيغة على أكثر من دالة واحدة؟
- ما فئة الدالات التي تستخدمها لسلسلة سلسلتين نصيتين في سلسلة واحدة؟
تتوفر الإجابات في نهاية هذا الموضوع.
السياق
يعد السياق أحد أهم مفاهيم DAX التي يجب فهمها. هناك نوعان من السياق في DAX. سياق الصف وسياق عامل التصفية. سنلقي نظرة أولا على سياق الصف.
سياق الصف
يمكن اعتبار سياق الصف بسهولة كصف حالي. على سبيل المثال، هل تتذكر عمود الهامش المحسوب الذي رأيته سابقا عند التعرف على بناء الجملة؟ تحسب الصيغة =[SalesAmount] - [TotalCost] قيمة في عمود "الهامش" لكل صف في الجدول. يتم حساب قيم كل صف من القيم الموجودة في عمودين آخرين، [SalesAmount] و[TotalCost] في الصف نفسه. يمكن أن يقوم DAX بحساب القيم لكل صف في عمود "الهامش" نظرا لاحتواء السياق التالي: يأخذ القيم الموجودة في العمود [TotalCost] لكل صف، ويطرحها من القيم الموجودة في العمود [SalesAmount].
في الخلية المحددة الموضحة أدناه، تم حساب القيمة 49.54 ر.س. في الصف الحالي بطرح القيمة 51.54 ر.س. في العمود [إجمالي التكلفة] من القيمة 101.08 ر.س. في العمود [SalesAmount].
لا ينطبق سياق الصف على الأعمدة المحسوبة فقط. ينطبق سياق الصف أيضا عندما تتضمن الصيغة دالة تطبق عوامل التصفية لتحديد صف واحد في جدول. ستطبق الدالة بطبيعتها سياق صف لكل صف في الجدول الذي تقوم بالتصفية فوقه. ينطبق هذا النوع من سياق الصفوف في أغلب الأحيان على المقاييس.
سياق عامل التصفية
فهم سياق عامل التصفية أصعب قليلا من سياق الصف. يمكنك بسهولة التفكير في سياق عامل التصفية على الشكل التالي: عامل تصفية واحد أو أكثر تم تطبيقه في عملية حسابية تحدد نتيجة أو قيمة.
سياق عامل التصفية غير موجود بدلا من سياق الصف؛ بل ينطبق بالإضافة إلى سياق الصف. على سبيل المثال، لتضييق نطاق القيم المطلوب تضمينها في عملية حسابية بشكل أكبر، يمكنك تطبيق سياق عامل تصفية لا يحدد سياق الصف فحسب، بل يحدد أيضا قيمة معينة فقط (عامل تصفية) في سياق الصف هذا.
يمكن رؤية سياق عامل التصفية بسهولة في PivotTables. على سبيل المثال، عند إضافة إجمالي التكلفة إلى منطقة القيم، ثم إضافة السنة والمنطقة إلى الصف أو الأعمدة، فأنت تحدد سياق عامل تصفية يحدد مجموعة فرعية من البيانات استنادا إلى سنة ومنطقة معينة.
لماذا يعتبر سياق عامل التصفية مهما جدا ل DAX؟ لأنه في حين أنه يمكن تطبيق سياق عامل التصفية بسهولة أكبر عن طريق إضافة تسميات ومقسمات طرق عرض الأعمدة والصفوف في PivotTable، يمكن أيضا تطبيق سياق عامل التصفية في صيغة DAX عن طريق تعريف عامل تصفية باستخدام دالات مثل ALL وRELATED وFILTER وCALCULATE وحسب العلاقات وحسب المقاييس والأعمدة الأخرى. على سبيل المثال، دعونا نلق نظرة على الصيغة التالية في مقياس يسمى StoreSales:
من الواضح أن هذه الصيغة أكثر تعقيدا من بعض الصيغ الأخرى التي رأيتها. ومع ذلك، لفهم هذه الصيغة بشكل أفضل، يمكننا تقسيمها، تماما كما فعلنا مع الصيغ الأخرى.
تتضمن هذه الصيغة عناصر بناء الجملة التالية:
- اسم المقياس StoreSales، متبوعا بعلامة النقطتين :.
- يشير عامل علامة التساوي (=) إلى بداية الصيغة.
- تقيم الدالة CALCULATE تعبيرا، كوسيطة، في سياق يتم تعديله بواسطة عوامل التصفية المحددة.
- قوس () يحيط وسيطة واحدة أو أكثر.
- مقياس [المبيعات] في الجدول نفسه كتعبير. يحتوي مقياس المبيعات على الصيغة: =SUM(FactSales [SalesAmount]).
- تفصل الفاصلة (،) كل عامل تصفية.
- العمود المشار إليه وقيمة معينة، DimChannel[ChannelName] ="Store"، كعامل تصفية.
ستضمن هذه الصيغة حساب قيم المبيعات فقط، المعرفة بواسطة مقياس المبيعات، كعامل تصفية، للصفوف الموجودة في العمود DimChannel[ChannelName] مع القيمة "Store"، كعامل تصفية.
كما يمكنك أن تتخيل، فإن القدرة على تعريف سياق عامل تصفية داخل صيغة لها قدرة هائلة وفعالة. إن القدرة على الإشارة إلى قيمة معينة فقط في جدول مرتبط هي مجرد مثال واحد من هذه الأمثلة. لا تقلق إذا لم تفهم السياق تماما على الفور. أثناء إنشاء الصيغ الخاصة بك، ستفهم السياق وسبب أهميته في DAX بشكل أفضل.
Context QuickQuiz
- ما نوعي السياق؟
- ما هو سياق عامل التصفية؟
- ما هو سياق الصف؟
تتوفر الإجابات في نهاية هذا الموضوع.
الملخص
الآن بعد أن أصبح لديك فهم أساسي لأهم المفاهيم في DAX، يمكنك أن تبدأ بنفسك في إنشاء صيغ DAX للأعمدة والقياسات المحسوبة. قد يكون تعلم DAX صعبا بعض الشيء ، ولكن هناك العديد من الموارد المتاحة لك. بعد قراءة هذا الموضوع مرات قليلة، وتجربة بعض الصيغ الخاصة بك، يمكنك معرفة المزيد حول مفاهيم DAX وصيغها الأخرى التي يمكن أن تساعدك على حل مشاكل عملك. هناك العديد من موارد DAX المتوفرة لك في تعليمات Power Pivot وكتب SQL Server Online والمستندات التقنية والمدونات من كل من Microsoft وكبار محترفي المعلومات المهنية. يعتبر موقع Wiki الخاص بمركز موارد DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) مكانا جيدا للبدء منه. يعتبر مرجع تعبيرات تحليل البيانات (DAX) موردا مفيدا أيضا. تأكد من حفظه في المفضلة.
يوفر المستند التقني DAX في النموذج الجدولي للمعلومات المهنية، والمتوفر للتنزيل (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) نظرة أكثر تفصيلا على المفاهيم المقدمة هنا بالإضافة إلى العديد من المفاهيم والصيغ المتقدمة الأخرى. يستخدم هذا المستند التقني أيضا المصنف Formulas.xlsx نموذج Contoso DAX نفسه الذي لديك بالفعل.
إجابات QuickQuiz
بناء الجملة:
- فتح الميزة "إدراج دالة".
- الأقواس [].
- =[سعر الوحدة] - [تكلفة الوحدة]
المهام:
- جدول وعمود.
- نعم. يمكن أن تحتوي الصيغة على ما يصل إلى 64 دالة متداخلة.
- دالات النص.
الملخص:
- سياق الصف وسياق التصفية.
- عامل تصفية واحد أو أكثر في عملية حسابية تحدد قيمة مفردة.
- الصف الحالي.