هذا التشغيل السريع مخصص للمستخدمين الجدد Power Pivot في Excel أو مشاريع النموذج الجدولي التي تم تأليفها في أدوات بيانات SQL Server. من المفترض أن يقدم لك مقدمة سريعة وسهلة حول كيفية استخدام تعبيرات تحليل البيانات (DAX) لحل عدد من المشاكل التحليلية ونمذجة البيانات الأساسية. يتضمن هذا الموضوع معلومات مفاهيمية، وسلسلة من المهام التي يمكنك إكمالها، وبعض الاختبارات لاختبار ما تعلمته. بعد الانتهاء من هذا الموضوع، يجب أن يكون لديك فهم جيد للمفاهيم الأساسية الأساسية في DAX.
ما هو DAX؟
DAX عبارة عن مجموعة من الدالات وعوامل التشغيل والثوابت التي يمكن استخدامها في صيغة أو تعبير لحساب قيمة واحدة أو أكثر وإرجاعها. وببساطة أكبر، يساعدك DAX على إنشاء معلومات جديدة من البيانات الموجودة بالفعل في النموذج الخاص بك.
لماذا DAX مهم جدا؟
من السهل إنشاء مصنف واستيراد بعض البيانات إليه. يمكنك حتى إنشاء PivotTables أو PivotCharts التي تعرض معلومات مهمة دون استخدام أي صيغ DAX. ولكن، ماذا لو كنت بحاجة إلى تحليل بيانات المبيعات الهامة عبر العديد من فئات المنتجات ولنطاقات تاريخ مختلفة؟ أو تحتاج إلى دمج بيانات المخزون الهامة من عدة جداول في مصادر بيانات مختلفة؟ توفر صيغ DAX هذه الإمكانية والعديد من الإمكانات الهامة الأخرى أيضا. سيساعدك تعلم كيفية إنشاء صيغ DAX فعالة على تحقيق أقصى استفادة من بياناتك. عندما تحصل على المعلومات التي تحتاجها، يمكنك البدء في حل مشاكل الأعمال الحقيقية التي تؤثر على خلاصتك. هذا هو المعلومات المهنية، وسيساعدك DAX على الوصول إلى هناك.
المتطلبات الأساسية
قد تكون على دراية بالفعل بإنشاء الصيغ في Microsoft Excel. ستكون هذه المعرفة مفيدة في فهم DAX، ولكن حتى إذا لم تكن لديك خبرة في صيغ Excel، فستساعدك المفاهيم الموضحة هنا على البدء في إنشاء صيغ DAX وحل مشكلات المعلومات المهنية في العالم الحقيقي على الفور.
سنركز على وجه التحديد على فهم صيغ DAX المستخدمة في الحسابات. يجب أن تكون على دراية بالمفاهيم الأساسية لكل من الأعمدة والمقاييسالمحسوبة (المعروفة أيضا باسم الحقول المحسوبة)، وكلاهما موضح في تعليمات Power Pivot. يجب أن تكون على دراية أيضا Power Pivot في بيئة وأدوات تأليف Excel.
مثال على المصنف
أفضل طريقة لتعلم DAX هي إنشاء بعض الصيغ الأساسية واستخدامها مع بعض البيانات الفعلية ورؤية النتائج بنفسك. تستخدم الأمثلة والمهام هنا مصنف Formulas.xlsx Contoso Sample DAX. يمكنك تنزيل المصنف من http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. بمجرد تنزيل المصنف على الكمبيوتر، افتحه، ثم افتح نافذة Power Pivot.
لنبدأ!
سنقوم بإطار DAX حول ثلاثة مفاهيم أساسية مهمة جدا: بناء الجملة والوظائف والسياق. بالطبع، هناك مفاهيم مهمة أخرى في DAX، ولكن فهم هذه المفاهيم الثلاثة سيوفر أفضل أساس لبناء مهارات DAX الخاصة بك.
بناء الجملة
قبل إنشاء الصيغ الخاصة بك، دعنا نلقي نظرة على بناء جملة صيغة DAX. يتضمن بناء الجملة العناصر المختلفة التي تشكل صيغة، أو ببساطة أكثر، كيفية كتابة الصيغة. على سبيل المثال، لنلق نظرة على صيغة DAX بسيطة تستخدم لإنشاء بيانات جديدة (قيم) لكل صف في عمود محسوب، يسمى Margin، في جدول FactSales: (ألوان نص الصيغة لأغراض توضيحية فقط)
يتضمن بناء جملة هذه الصيغة العناصر التالية:
-
يشير عامل تشغيل علامة يساوي (=) إلى بداية الصيغة، وعند حساب هذه الصيغة، سيرجع نتيجة أو قيمة. ستبدأ جميع الصيغ التي تحسب قيمة بعلامة يساوي.
-
يحتوي العمود المشار إليه [SalesAmount] على القيم التي نريد طرحها منها. دائما ما يكون مرجع العمود في صيغة محاطا بأقواس []. على عكس صيغ Excel التي تشير إلى خلية، تشير صيغة DAX دائما إلى عمود.
-
عامل التشغيل الرياضي للطرح (-).
-
يحتوي العمود المشار إليه [TotalCost] على القيم التي نريد طرحها من القيم في العمود [SalesAmount].
عند محاولة فهم كيفية قراءة صيغة DAX، غالبا ما يكون من المفيد تقسيم كل عنصر من العناصر إلى لغة تعتقدها وتحدثها كل يوم. على سبيل المثال، يمكنك قراءة هذه الصيغة على النحو التالي:
في جدول FactSales، لكل صف في العمود المحسوب Margin، احسب (=) قيمة عن طريق طرح القيم (-) في العمود [TotalCost] من القيم في العمود [SalesAmount].
لنلق نظرة على نوع آخر من الصيغ، صيغة تستخدم في مقياس:
تتضمن هذه الصيغة عناصر بناء الجملة التالية:
-
اسم المقياس مجموع مبلغ المبيعات. يمكن أن تتضمن صيغ المقاييس اسم القياس، متبوعا بنقطتين، متبوعة بصيغة الحساب.
-
يشير عامل تشغيل علامة يساوي (=) إلى بداية صيغة الحساب. عند حسابها، سيتم إرجاع نتيجة.
-
تضيف الدالة SUM جميع الأرقام في العمود [SalesAmount]. ستتعرف على المزيد حول الوظائف لاحقا.
-
تحيط الأقواس () كوسيطة واحدة أو أكثر. تتطلب جميع الدالات وسيطة واحدة على الأقل. تمرر الوسيطة قيمة إلى دالة.
-
الجدول المشار إليه FactSales.
-
العمود المشار إليه [SalesAmount] في جدول FactSales. باستخدام هذه الوسيطة، تعرف الدالة SUM العمود الذي سيتم تجميع SUM عليه.
يمكنك قراءة هذه الصيغة على النحو التالي:
بالنسبة للمقياس المسمى Sum of Sales Amount، احسب (=) SUM للقيم في العمود [ SalesAmount ] في جدول FactSales.
عند وضعه في منطقة إسقاط القيم في قائمة حقول PivotTable، يقوم هذا المقياس بحساب القيم المعرفة بواسطة كل خلية في PivotTable وإرجاعها، على سبيل المثال، الهواتف المحمولة في الولايات المتحدة الأمريكية.
لاحظ أن هناك بعض الأشياء المختلفة حول هذه الصيغة مقارنة بالصيغة التي استخدمناها للعمود المحسوب Margin. على وجه الخصوص، قدمنا دالة، SUM. الدالات هي صيغ مكتوبة مسبقا تسهل إجراء العمليات الحسابية المعقدة والتلاعب بالأرقام والتواريخ والوقت والنص والمزيد. ستتعرف على المزيد حول الوظائف لاحقا.
على عكس العمود المحسوب للهامش سابقا، سترى العمود [SalesAmount] مسبوقا بجدول FactSales الذي ينتمي إليه العمود. يعرف هذا باسم اسم عمود مؤهل بالكامل من حيث أنه يتضمن اسم العمود الذي يسبقه اسم الجدول. لا تتطلب الأعمدة المشار إليها في الجدول نفسه تضمين اسم الجدول في الصيغة. يمكن أن يجعل هذا الصيغ الطويلة التي تشير إلى العديد من الأعمدة أقصر وأسهل في القراءة. ومع ذلك، من الممارسات الجيدة تضمين اسم الجدول دائما في صيغ القياس، حتى عندما يكون في نفس الجدول.
ملاحظة: إذا كان اسم الجدول يحتوي على مسافات أو كلمات أساسية محجوزة أو أحرف غير مسموح بها، فيجب إحاطة اسم الجدول بعلامات اقتباس مفردة. يجب أيضا إحاطة أسماء الجداول بعلامات اقتباس إذا كان الاسم يحتوي على أي أحرف خارج نطاق الأحرف الأبجدية الرقمية ANSI، بغض النظر عما إذا كانت الإعدادات المحلية تدعم مجموعة الأحرف أم لا.
من المهم جدا أن يكون للصيغ بناء الجملة الصحيح. في معظم الحالات، إذا لم يكن بناء الجملة صحيحا، إرجاع خطأ في بناء الجملة. في حالات أخرى، قد يكون بناء الجملة صحيحا، ولكن قد لا تكون القيم التي تم إرجاعها هي ما تتوقعه. يتضمنPower Pivot (وأدوات بيانات SQL Server) IntelliSense؛ ميزة تستخدم لإنشاء صيغ صحيحة من الناحية التركيبية من خلال مساعدتك في تحديد العناصر الصحيحة.
دعونا ننشئ صيغة بسيطة. ستساعدك هذه المهمة على فهم بناء جملة الصيغة بشكل أكبر وكيف يمكن أن تساعدك ميزة IntelliSense في شريط الصيغة.
المهمة: إنشاء صيغة بسيطة لعمود محسوب
-
إذا لم تكن موجودا بالفعل في نافذة Power Pivot ، ففي Excel، على شريط Power Pivot ، انقر فوق Power Pivot Window.
-
في نافذة Power Pivot ، انقر فوق جدول FactSales (علامة التبويب).
-
قم بالتمرير إلى العمود الموجود في أقصى اليمين، ثم في رأس العمود، انقر فوق إضافة عمود.
-
انقر في شريط الصيغة على طول الجزء العلوي من نافذة مصمم النموذج.
يظهر المؤشر الآن في شريط الصيغة. شريط الصيغة هو المكان الذي يمكنك فيه كتابة صيغة لعمود محسوب أو حقل محسوب.
دعونا نستغرق لحظة لإلقاء نظرة على الأزرار الثلاثة الموجودة على يسار شريط الصيغة.
عندما يكون المؤشر نشطا في شريط الصيغة، تصبح هذه الأزرار الثلاثة نشطة. الزر الموجود في أقصى اليسار، X، هو ببساطة زر إلغاء. انتقل إلى الأمام وانقر فوقه. لم يعد المؤشر يظهر في شريط الصيغة، ولم يعد زر الإلغاء وزر علامة الاختيار يظهران. انتقل إلى الأمام وانقر في شريط الصيغة مرة أخرى. يظهر زر الإلغاء وزر علامة الاختيار الآن مرة أخرى. وهذا يعني أنك مستعد لبدء إدخال صيغة.
زر علامة الاختيار هو زر صيغة الاختيار. لا تفعل الكثير حتى تدخل صيغة. سنعود إليها بعد قليل.
انقر فوق الزر Fx . سترى ظهور مربع حوار جديد؛ مربع الحوار إدراج دالة. مربع الحوار إدراج دالة هو أسهل طريقة للبدء في إدخال صيغة DAX. سنضيف دالة إلى صيغة عندما نقوم بإنشاء مقياس بعد قليل، ولكن في الوقت الحالي، لا تحتاج إلى إضافة دالة إلى صيغة العمود المحسوبة. انتقل إلى الأمام وأغلق مربع الحوار إدراج دالة.
-
في شريط الصيغة، اكتب علامة يساوي =، ثم اكتب قوس فتح [. سترى نافذة صغيرة تظهر مع جميع الأعمدة في جدول FactSales. هذا IntelliSense قيد التنفيذ.
نظرا لأن الأعمدة المحسوبة يتم إنشاؤها دائما في الجدول النشط الذي أنت فيه، فلا حاجة إلى أن تسبق اسم العمود باسم الجدول. تقدم وقم بالتمرير لأسفل ثم انقر نقرا مزدوجا فوق [SalesQuantity]. يمكنك أيضا التمرير إلى اسم العمود الذي تريده، ثم الضغط على Tab.
المؤشر نشط الآن على يمين [SalesQuantity].
-
اكتب مسافة، ثم اكتب عامل تشغيل طرح - (علامة طرح)، ثم اكتب مسافة أخرى.
-
الآن، اكتب قوس فتح آخر [. هذه المرة، حدد العمود [ReturnQuantity] ، ثم اضغط على Enter.
إذا تلقيت خطأ، فانظر بعناية إلى بناء الجملة الخاص بك. إذا لزم الأمر، فقارنها بالصيغة الموجودة في عمود الهامش المحسوب الموضح سابقا.
بعد الضغط على مفتاح الإدخال Enter لإكمال الصيغة، تظهر الكلمة حساب في شريط المعلومات أسفل نافذة Power Pivot. ينتقل بسرعة، على الرغم من أنك قمت فقط بحساب قيم جديدة لأكثر من ثلاثة ملايين صف.
-
انقر بزر الماوس الأيمن فوق رأس العمود وأعد تسمية العمود، NetSales.
هذا كل شيء! لقد أنشأت للتو صيغة DAX بسيطة ولكنها قوية جدا. لكل صف في جدول FactSales، تحسب صيغة 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، ثم انقر نقرا مزدوجا فوق الدالة التي تريد استخدامها. في هذه الصيغة، تريد استخدام الدالة CALCULATE .
-
اكتب قوس فتح ( لبدء الوسيطات التي سيتم تمريرها إلى الدالة CALCULATE.
لاحظ بعد كتابة قوس الفتح، يعرض لك IntelliSense الوسيطات المطلوبة لدالة CALCULATE. ستتعرف على الوسيطات بعد قليل.
-
اكتب الأحرف القليلة الأولى من جدول FactSales ، ثم في القائمة المنسدلة، انقر نقرا مزدوجا فوق FactSales[Sales].
-
اكتب فاصلة (،) لتحديد عامل التصفية الأول، ثم اكتب، PRE، ثم انقر نقرا مزدوجا فوق الدالة PREVIOUSQUARTER .
بعد تحديد الدالة PREVIOUSQUARTER، يظهر قوس فتح آخر، يشير إلى أن هناك حاجة إلى وسيطة أخرى؛ هذه المرة، لدالة PREVIOUSQUARTER.
-
اكتب الأحرف القليلة الأولى Dim، ثم انقر نقرا مزدوجا فوق DimDate[DateKey].
-
أغلق كل من الوسيطة التي يتم تمريرها إلى الدالة PREVIOUSQUARTER والدالة CALCULATE بكتابة قوسين مغلقين )).
يجب أن تبدو الصيغة الآن كما يلي:
مبيعات الربع السابق:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))
-
انقر فوق زر التحقق من الصيغة على شريط الصيغة للتحقق من صحة الصيغة. إذا تلقيت خطأ، فتحقق من كل عنصر من عناصر بناء الجملة.
أنت فعلت ذلك! لقد قمت للتو بإنشاء مقياس باستخدام DAX، وليس مقياسا سهلا في ذلك. ما ستفعله هذه الصيغة هو حساب إجمالي المبيعات للربع السابق، اعتمادا على عوامل التصفية المطبقة في PivotTable أو PivotChart.
لقد تعرفت للتو على العديد من الجوانب الهامة لصيغ DAX. أولا، تضمنت هذه الصيغة دالتين. لاحظ أن الدالة PREVIOUSQUARTER متداخلة كوسيطة تم تمريرها إلى الدالة CALCULATE . يمكن أن تحتوي صيغ DAX على ما يصل إلى 64 دالة متداخلة. من غير المحتمل أن تحتوي الصيغة على العديد من الدالات المتداخلة. في الواقع، سيكون من الصعب جدا إنشاء مثل هذه الصيغة وتصحيحها، وربما لن تكون سريعة جدا أيضا.
في هذه الصيغة، استخدمت أيضا عوامل التصفية. عوامل التصفية تضيق ما سيتم حسابه. في هذه الحالة، قمت بتحديد عامل تصفية واحد كوسيطة، وهي في الواقع دالة أخرى. ستتعرف على المزيد حول عوامل التصفية لاحقا.
وأخيرا، استخدمت الدالة CALCULATE. هذه واحدة من أقوى الوظائف في DAX. أثناء تأليف نماذج البيانات وإنشاء صيغ أكثر تعقيدا، من المحتمل أن تستخدم هذه الدالة عدة مرات. مناقشة الدالة CALCULATE خارج نطاق هذا التشغيل السريع، ولكن مع نمو معرفتك ب DAX، انتبه بشكل خاص إلى هذا.
ملاحظة: بشكل عام، لاستخدام دالات تحليل معلومات الوقت في صيغ DAX، يجب تحديد عمود تاريخ فريد باستخدام مربع الحوار وضع علامة كجدول تاريخ. في مصنف Contoso DAX Formula Samples.xlsx، يتم تحديد العمود DateKey في جدول DimDate ك عمود تاريخ فريد.
رصيد إضافي
قد تسأل: "ما هي أبسط صيغة DAX يمكنني إنشاؤها؟" حسنا، الإجابة على ذلك هي "الصيغة التي ليس عليك القيام بها". وهذا بالضبط ما يمكنك القيام به باستخدام دالة تجميع قياسية في مقياس. يحتاج أي نموذج بيانات تقريبا إلى التصفية والاحتساب على البيانات المجمعة. على سبيل المثال، يتم استخدام الدالة SUM في مقياس مجموع المبيعات الذي شاهدته سابقا لإضافة جميع الأرقام في عمود معين. يتضمن DAX العديد من الدالات الأخرى التي تجمع القيم أيضا. يمكنك إنشاء صيغ تلقائيا باستخدام التجميعات القياسية باستخدام ميزة جمع تلقائي.
مهمة ائتمان إضافية: إنشاء صيغة قياس باستخدام ميزة جمع تلقائي
-
في جدول FactSales، قم بالتمرير إلى العمود ReturnQuantity، ثم انقر فوق رأس العمود لتحديد العمود بأكمله.
-
على علامة التبويب الصفحة الرئيسية ، على الشريط، في المجموعة حسابات ، انقر فوق الزر جمع تلقائي .
انقر فوق السهم لأسفل إلى جانب جمع تلقائي، ثم انقر فوق متوسط (لاحظ دالات التجميع القياسية الأخرى التي يمكنك استخدامها أيضا).
على الفور، يتم إنشاء مقياس جديد باسم Average of ReturnQuantity: متبوعا بالصيغة =AVERAGE([ReturnQuantity]).
ألم يكن الأمر بهذه السهولة؟ بالطبع، لن تكون كل الصيغ التي تقوم بإنشائها بهذه البساطة. ولكن باستخدام ميزة جمع تلقائي، يمكنك إنشاء صيغ سريعة وسهلة باستخدام حسابات التجميع القياسية.
يجب أن يمنحك هذا فهما جيدا إلى حد ما لبناء الجملة المستخدم في صيغ DAX. كما تعرفت على بعض الميزات الرائعة حقا مثل IntelliSense و AutoSum لمساعدتك على إنشاء صيغ سريعة وسهلة ودقيقة. بالطبع هناك الكثير يمكنك التعرف على بناء الجملة. مكان جيد لمعرفة المزيد هو مرجع DAX أو SQL Books Online.
بناء الجملة QuickQuiz
-
ماذا يفعل هذا الزر على شريط الصيغة؟
-
ما الذي يحيط دائما باسم عمود في صيغة DAX؟
-
كيف يمكنك كتابة صيغة لما يلي:
في جدول DimProduct، لكل صف في العمود المحسوب UnitMargin، احسب قيمة عن طريق طرح القيم في عمود UnitCost من القيم في عمودUnitPrice؟
يتم توفير الإجابات في نهاية هذا الموضوع.
الدالات
الدالات هي صيغ معرفة مسبقا تقوم بإجراء عمليات حسابية باستخدام قيم معينة، تسمى الوسيطات، بترتيب أو بنية معينة. يمكن أن تكون الوسيطات دالات أخرى أو صيغة أخرى أو مراجع أعمدة أو أرقام أو نص أو قيم منطقية مثل TRUE أو FALSE أو ثوابت.
يتضمن DAX الفئات التالية من الدالات: دالات التاريخ والوقت والمعلومات والمنطقية والرياضية والإحصائية والنص ووقت التحليل الذكي. إذا كنت على دراية بالدالات في صيغ Excel، فستظهر العديد من الدالات في DAX مشابهة لك؛ ومع ذلك، فإن دالات DAX فريدة بالطرق التالية:
-
تشير دالة DAX دائما إلى عمود كامل أو جدول. إذا كنت تريد استخدام قيم معينة فقط من جدول أو عمود، يمكنك إضافة عوامل تصفية إلى الصيغة.
-
إذا كنت بحاجة إلى تخصيص العمليات الحسابية على أساس صف تلو الآخر، يوفر DAX وظائف تتيح لك استخدام قيمة الصف الحالية أو قيمة ذات صلة كنوع من الوسيطات، لإجراء العمليات الحسابية التي تختلف حسب السياق. ستتعرف على المزيد حول السياق لاحقا.
-
يتضمن DAX العديد من الدالات التي ترجع جدولا بدلا من قيمة. لا يتم عرض الجدول، ولكن يتم استخدامه لتوفير إدخال إلى وظائف أخرى. على سبيل المثال، يمكنك استرداد جدول ثم حساب القيم المميزة فيه، أو حساب المبالغ الديناميكية عبر الجداول أو الأعمدة التي تمت تصفيتها.
-
يتضمن DAX مجموعة متنوعة من وظائف التحليل الذكي للوقت. تتيح لك هذه الدالات تحديد نطاقات التاريخ أو تحديدها، وإجراء حسابات ديناميكية استنادا إليها. على سبيل المثال، يمكنك مقارنة المبالغ عبر الفترات المتوازية.
في بعض الأحيان، من الصعب معرفة الدالات التي قد تحتاج إلى استخدامها في صيغة. Power Pivot ، ومصمم النموذج الجدولي في أدوات بيانات SQL Server، قم بتضمين ميزة إدراج دالة، ومربع حوار يساعدك على تحديد الوظائف حسب الفئة ويوفر أوصافا قصيرة لكل دالة.
دعونا ننشئ صيغة جديدة تتضمن دالة ستحددها باستخدام ميزة إدراج دالة:
المهمة: إضافة دالة إلى صيغة باستخدام إدراج دالة
-
في جدول FactSales، قم بالتمرير إلى العمود الأكثر يمينا، ثم في رأس العمود، انقر فوق إضافة عمود.
-
في شريط الصيغة، اكتب علامة يساوي، =.
-
انقر فوق الزر إدراج دالة . يؤدي ذلك إلى فتح مربع الحوار إدراج دالة .
-
في مربع الحوار إدراج دالة ، انقر فوق مربع قائمة تحديد فئة . بشكل افتراضي، يتم تحديد الكل ، ويتم سرد جميع الدالات في الفئة All أدناه. هذا الكثير من الدالات، لذلك ستحتاج إلى تصفية الدالات لتسهيل تحديد موقع نوع الدالة التي تبحث عنها.
-
بالنسبة لهذه الصيغة، تريد إرجاع بعض البيانات الموجودة بالفعل في جدول آخر. لذلك، ستستخدم دالة في فئة عامل التصفية. انتقل إلى الأمام وانقر فوق فئة عامل التصفية ، ثم في تحديد دالة، مرر لأسفل وانقر نقرا مزدوجا فوق الدالة RELATED. انقر فوق موافق لإغلاق مربع الحوار إدراج دالة .
-
استخدم IntelliSense لمساعدتك في العثور على العمود DimChannel[ChannelName] وتحديده.
-
أغلق الصيغة ثم اضغط على مفتاح الإدخال Enter.
-
بعد الضغط على مفتاح الإدخال Enter لإكمال الصيغة، تظهر الكلمة حساب في شريط المعلومات أسفل نافذة Power Pivot. الآن سترى أنك قمت للتو بإنشاء عمود جديد في جدول FactSales مع معلومات القناة من جدول DimChannel.
-
أعد تسمية العمود Channel.
يجب أن تبدو الصيغة كما يلي: =RELATED(DimChannel[ChannelName])
لقد تعرفت للتو على دالة أخرى مهمة جدا في DAX، الدالة RELATED . ترجع الدالة RELATED القيم من جدول آخر. يمكنك استخدام RELATED بشرط وجود علاقة بين الجدول الموجود حاليا والجدول الذي يحتوي على القيم التي تريد الحصول عليها. وبطبيعة الحال، فإن الدالة RELATED لديها إمكانيات هائلة. في هذه الحالة، يمكنك الآن تضمين قناة المبيعات لكل عملية بيع في جدول FactSales. يمكنك الآن إخفاء جدول DimChannel من قائمة حقول PivotTable، مما يسهل التنقل ورؤية أهم المعلومات التي تحتاجها حقا فقط. مثل الدالة CALCULATE الموضحة سابقا، تعد الدالة RELATED مهمة جدا، ومن المحتمل أن تستخدمها عدة مرات.
كما ترى، يمكن أن تساعدك الوظائف في DAX في إنشاء صيغ قوية جدا. لقد تطرقنا حقا إلى أساسيات الوظائف فقط. مع تحسن مهارات DAX، ستقوم بإنشاء صيغ باستخدام العديد من الوظائف المختلفة. أحد أفضل الأماكن لمعرفة تفاصيل حول جميع دالات DAX هو في مرجع تعبيرات تحليل البيانات (DAX).
Functions QuickQuiz
-
ما الذي تشير إليه الدالة دائما؟
-
هل يمكن أن تحتوي الصيغة على أكثر من دالة واحدة؟
-
ما هي فئة الدالات التي ستستخدمها لتسلسل سلسلتين نصيتين في سلسلة واحدة؟
يتم توفير الإجابات في نهاية هذا الموضوع.
السياق
السياق هو أحد أهم مفاهيم DAX التي يجب فهمها. هناك نوعان من السياق في DAX؛ سياق الصف وسياق التصفية. سننظر أولا في سياق الصف.
سياق الصف
يعتبر سياق الصف بسهولة أكبر كصف حالي. على سبيل المثال، تذكر عمود Margin المحسوب الذي رأيته سابقا عند التعرف على بناء الجملة؟ تحسب الصيغة =[SalesAmount] - [TotalCost] قيمة في عمود Margin لكل صف في الجدول. يتم حساب قيم كل صف من قيم في عمودين آخرين، [SalesAmount] و[TotalCost] في الصف نفسه. يمكن ل DAX حساب القيم لكل صف في عمود Margin لأنه يحتوي على السياق: لكل صف، فإنه يأخذ القيم في العمود [TotalCost] ويطرحها من القيم في العمود [SalesAmount].
في الخلية المحددة الموضحة أدناه، تم حساب القيمة، 49.54 دولارا في الصف الحالي عن طريق طرح القيمة 51.54 دولارا في العمود [TotalCost] من القيمة 101.08 دولار في العمود [SalesAmount].
لا ينطبق سياق الصف فقط على الأعمدة المحسوبة. ينطبق سياق الصف أيضا عندما تحتوي الصيغة على دالة تطبق عوامل التصفية لتحديد صف واحد في جدول. ستطبق الدالة بطبيعتها سياق صف لكل صف من الجدول الذي تقوم بالتصفية فوقه. غالبا ما ينطبق هذا النوع من سياق الصف على المقاييس.
سياق عامل التصفية
سياق عامل التصفية أكثر صعوبة في الفهم من سياق الصف. يمكنك بسهولة التفكير في سياق عامل التصفية على أنه: واحد أو أكثر من عوامل التصفية المطبقة في عملية حسابية تحدد نتيجة أو قيمة.
سياق عامل التصفية غير موجود بدلا من سياق الصف؛ بدلا من ذلك، فإنه ينطبق بالإضافة إلى سياق الصف. على سبيل المثال، لتضييق القيم لتضمينها في عملية حسابية، يمكنك تطبيق سياق عامل تصفية لا يحدد سياق الصف فحسب، بل يحدد أيضا قيمة معينة فقط (عامل تصفية) في سياق الصف هذا.
تتم رؤية سياق عامل التصفية بسهولة في PivotTables. على سبيل المثال، عند إضافة TotalCost إلى منطقة القيم، ثم إضافة السنة والمنطقة إلى الصف أو الأعمدة، فإنك تقوم بتعريف سياق عامل تصفية يحدد مجموعة فرعية من البيانات استنادا إلى سنة ومنطقة معينة.
لماذا يعد سياق التصفية مهما جدا ل DAX؟ لأنه بينما يمكن تطبيق سياق عامل التصفية بسهولة أكبر عن طريق إضافة تسميات الأعمدة والصفوف ومقسمات طرق العرض في PivotTable، يمكن أيضا تطبيق سياق التصفية في صيغة DAX عن طريق تعريف عامل تصفية باستخدام دالات مثل ALL و RELATED و FILTER و CALCULATE و حسب العلاقات و بواسطة مقاييس وأعمدة أخرى. على سبيل المثال، لنلق نظرة على الصيغة التالية في مقياس يسمى StoreSales:
من الواضح أن هذه الصيغة أكثر تعقيدا من بعض الصيغ الأخرى التي رأيتها. ومع ذلك، لفهم هذه الصيغة بشكل أفضل، يمكننا تقسيمها، تماما كما فعلنا مع صيغ أخرى.
تتضمن هذه الصيغة عناصر بناء الجملة التالية:
-
اسم القياس StoreSales، متبوعا ب نقطتين :.
-
يشير عامل تشغيل علامة يساوي (=) إلى بداية الصيغة.
-
تقيم الدالة CALCULATE تعبيرا، كوسيطة، في سياق يتم تعديله بواسطة عوامل التصفية المحددة.
-
تحيط الأقواس () كوسيطة واحدة أو أكثر.
-
مقياس [Sales] في نفس الجدول كتعبير. يحتوي مقياس Sales على الصيغة: =SUM(FactSales[SalesAmount]).
-
تفصل الفاصلة (،) كل عامل تصفية.
-
العمود المشار إليه وقيمة معينة، DimChannel[ChannelName] ="Store"، كعامل تصفية.
ستضمن هذه الصيغة حساب قيم المبيعات، المحددة بواسطة مقياس المبيعات، كعامل تصفية، فقط للصفوف في العمود DimChannel[ChannelName] بالقيمة "Store"، كعامل تصفية.
كما يمكنك أن تتخيل، فإن القدرة على تحديد سياق التصفية داخل صيغة لها قدرة هائلة وقوية. القدرة على الإشارة إلى قيمة معينة فقط في جدول ذي صلة هو مثال واحد فقط من هذا القبيل. لا تقلق إذا كنت لا تفهم السياق تماما على الفور. أثناء إنشاء الصيغ الخاصة بك، ستفهم السياق بشكل أفضل ولماذا هو مهم جدا في DAX.
سياق QuickQuiz
-
ما نوعي السياق؟
-
ما هو سياق عامل التصفية؟
-
ما هو سياق الصف؟
يتم توفير الإجابات في نهاية هذا الموضوع.
الملخص
الآن بعد أن أصبح لديك فهم أساسي لأهم المفاهيم في DAX، يمكنك البدء في إنشاء صيغ DAX للأعمدة والمقاييس المحسوبة بنفسك. يمكن أن يكون DAX صعب التعلم قليلا، ولكن هناك العديد من الموارد المتاحة لك. بعد قراءة هذا الموضوع عدة مرات، وتجربة عدد قليل من الصيغ الخاصة بك، يمكنك معرفة المزيد حول مفاهيم وصيغ DAX الأخرى التي يمكن أن تساعدك على حل مشاكل عملك. هناك العديد من موارد DAX المتوفرة لك في Power Pivot Help وSQL Server Books Online والملفات التقنية والمدونات من كل من Microsoft ومحترفي المعلومات المهنية الرائدين. يعد DAX Resource Center Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) مكانا رائعا للبدء. يعد مرجع تعبيرات تحليل البيانات (DAX) أيضا موردا رائعا. تأكد من حفظه في المفضلة.
يوفر DAX في المستند التقني للنموذج الجدولي BI، المتوفر للتنزيل (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) نظرة أكثر تفصيلا على المفاهيم المقدمة هنا بالإضافة إلى العديد من المفاهيم والصيغ المتقدمة الأخرى. يستخدم هذا المستند التقني أيضا نفس مصنف Formulas.xlsx عينة Contoso DAX الذي لديك بالفعل.
إجابات QuickQuiz
بناء الجملة:
-
فتح ميزة إدراج دالة.
-
أقواس [].
-
=[UnitPrice] - [UnitCost]
وظائف:
-
جدول وعمود.
-
نعم. يمكن أن تحتوي الصيغة على ما يصل إلى 64 دالة متداخلة.
سياق:
-
سياق الصف وسياق التصفية.
-
عامل تصفية واحد أو أكثر في عملية حسابية تحدد قيمة واحدة.
-
الصف الحالي.