المقدمة

مكتمل

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

ملاحظة

لا يمكن ربط الجدول المحسوب بالبيانات الخارجية حيث يمكن أن يكون هناك اتصال مع البيانات الخارجية. ويجب استخدام "Power Query" لإنجاز تلك المهمة.

يجب أن ترجع صيغة الجدول المحسوبة إلى عنصر جدول. يمكن أن تكرر الصيغة الأبسط لجدول نموذج موجود.

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

تكرار جدول

يصف القسم التالي تحدي تصميم شائع، ويمكن حله عن طريق إنشاء جدول محسوب. أولاً يجب عليك تنزيل وفتح ملف Adventure Works DW 2020 M03.pbix وبعد ذلك انتقل إلى الرسم التخطيطي للنموذج.

في الرسم التخطيطي للنموذج، لاحظ أن جدول Sales له ثلاث علاقات بجدول Date.

صورة توضح جدولي "المبيعات" و"التاريخ". يوجد ثلاث علاقات بين الجداول. علاقة واحدة فقط هي النشطة.

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

ملاحظة

يمكن أن توجد علاقة نشطة واحدة فقط بين أي جدولين نموذجيين.

في الرسم التخطيطي، قم بتمرير المؤشر فوق العلاقة النشطة لتمييز الأعمدة المرتبطة، وهو كيفية تفاعلك مع الرسم التخطيطي للنموذج للتعرف على الأعمدة ذات الصلة. في هذه الحالة، تقوم العلاقة النشطة بتصفية عمود OrderDateKey في جدول Sales. ومن ثمَّ، فإن عوامل التصفية التي يتم تطبيقها على جدول Date ستنتشر في جدول Sales للتصفية حسب تاريخ الأمر؛ لن يتم التصفية حسب تاريخ الشحن أو تاريخ الاستحقاق.

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

بعد ذلك، أضف جدول جديد للسماح للمستخدمين للتقرير بتصفية المبيعات حسب تاريخ الشحن. بادر بالانتقال إلى عرض "Report"، ثم في علامة تبويب Modeling من داخل مجموعة Calculations حدد New table.

صورة تظهر علامة تبويب "التصميم" في Power BI Desktop. من داخل مجموعة "العمليات الحسابية"، يتم تمييز أمر جدول جديد.

في مربع الصيغة (الموجود أسفل الشريط)، أدخِل تعريف الجدول المحسوب التالي ثم اضغط على Enter.

Ship Date = 'Date'

يكرّر تعريف الجدول المحسوب بيانات جدول Date لإنتاج جدول جديد يسمى Ship Date. يحتوي جدول Ship Date على نفس الأعمدة والصفوف تمامًا مثل جدول Date. عند تحديث بيانات جدول Date، يعيد جدول Ship Date حسابها، بحيث يكونان دائمًا متزامنين.

انتقل إلى الرسم التخطيطي للنموذج، ثم لاحظ إضافة جدول Ship Date.

صورة توضح جدول "تاريخ الشحن" يتألف من نفس الأعمدة في "جدول التاريخ".

بعد ذلك، لإنشاء علاقة بين العمود DateKey في جدول Ship Date والعمود ShipDateKey في جدول Sales. يمكنك إنشاء العلاقة بواسطة سحب العمود DateKey في جدول Ship Date إلى العمود ShipDateKey في جدول Sales.

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

تلميح

من الممكن إعادة تسمية أعمدة جدول محسوب. في هذا المثال، من المستحسن إعادة تسمية الأعمدة بحيث تصف الغرض منها بشكل أفضل. على سبيل المثال، يمكن إعادة تسمية العمود Fiscal Year في جدول Ship Date كـ Ship Fiscal Year. وبناءً على ذلك، عندما يتم استخدام حقول من جدول Ship Date في المرئيات، يتم تضمين أسمائها تلقائيًا في التسميات التوضيحية مثل العنوان المرئي أو التسميات المحورية.

لإكمال تصميم جدول Ship Date، يمكنك:

  • إعادة تسمية الأعمدة التالية:
    • التاريخ بـ تاريخ الشحن
    • السنة المالية بـ السنة المالية للشحن
    • ربع السنة المالية بـ ربع السنة المالية للشحن
    • الشهر بـ شهر الشحن
    • التاريخ الكامل بـ التاريخ الكامل للشحن
  • فرز عمود تاريخ الشحن الكامل حسب عمود تاريخ الشحن.
  • فرز العمود شهر الاستحقاق حسب العمود MonthKey.
  • إخفاء العمود MonthKey.
  • إنشاء تدرج هرمي باسم السنة المالية مع المستويات التالية:
    • "السنة المالية للشحن"
    • "ربع السنة المالية للشحن"
    • شهر الشحن
    • تاريخ الشحن الكامل
  • وضع علامة على جدول "تاريخ الشحن" كجدول تاريخ باستخدام العمود تاريخ الشحن.

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

إنشاء جدول تاريخ

في المثال التالي، سيتم إنشاء جدول محسوب ثانٍ هذه المرة باستخدام دالة DAX CALENDARAUTO.

إنشاء الجدول المحسوب Due Date باستخدام التعريف التالي.

Due Date = CALENDARAUTO(6)

تأخذ الدالة CALENDARAUTO DAX وسيطة اختيارية واحدة، وهي آخر شهر من السنة، وترجع جدول عمود واحد. إذا لم تُدخل رقم شهر، يتم افتراض أنه 12 (لشهر ديسمبر). على سبيل المثال، في Adventure Works، تنتهي السنة المالية الخاصة بهم في 30 يونيو من كل عام، لذلك يتم تمرير القيمة 6 (يونيو).

تقوم الدالة بفحص كافة أعمدة التاريخ والتاريخ/الوقت في النموذج الخاص بك لتحديد أقدم وأحدث قيم التاريخ المخزنة. ثم ينتج مجموعة كاملة من التواريخ التي تمتد إلى جميع التواريخ في النموذج الخاص بك، وضمان تحميل سنوات كاملة من التواريخ. على سبيل المثال، إذا كان أقرب تاريخ أدخلته في النموذج الخاص بك 15 أكتوبر 2021، فسيكون التاريخ الأول الذي يتم إرجاعه بواسطة الدالة CALENDARAUTO هو 1 يوليو 2021. إذا كان آخر تاريخ مخزن في النموذج 15 يونيو 2022، فإن آخر تاريخ يتم إرجاعه بواسطة الدالة CALENDARAUTO سيكون 30 يونيو 2022.

على نحوٍ فعال، الدالة CALENDARAUTO تضمن استيفاء المتطلبات التالية لوضع علامة على جدول تاريخ:

  • يجب أن يتضمن الجدول عمودًا لنوع البيانات "تاريخ".
  • يجب أن يحتوي العمود على سنوات كاملة.
  • يجب ألا يحتوي العمود على تواريخ مفقودة.

تلميح

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

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

ملاحظة

لا يغير ترتيب الأعمدة أو تصفيتها طريقة تخزين القيم. تساعدك هذه الوظائف على استكشاف وفهم البيانات.

صورة تُظهر الجدول Due Date في طريقة عرض البيانات. هناك عمود واحد يسمى Date، وعندما يتم فرز القيم من الأقرب إلى الأبعد، يكون التاريخ الأول هو July 1, 2017.

الآن بعد تحديد عمود التاريخ، راجع الرسالة في شريط الحالة (الموجود في الزاوية السفلية اليسرى). وهو يصف عدد الصفوف التي يقوم الجدول بتخزينها، كما يصف عدد القيم المتميزة الموجودة في العمود المحدد.

صورة توضح رسالة الحالة لجدول "تاريخ الاستحقاق" (1461 صفًا) عمود التاريخ (1461 قيمة مميزة).

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

ستتم إعادة حساب الجدول المحسوب Due Date في كل مرة يتم فيها تحديث جدول يحتوي على عمود تاريخ. بمعنى آخر، عند تحميل صف في جدول Sales بتاريخ الطلب في 1 يوليو 2022، سيتم توسيع جدول Due Date تلقائيًا ليشمل التواريخ حتى نهاية السنة التالية: 30 يونيو 2023.

يتطلب جدول Due Date أعمدة إضافية لدعم متطلبات التصفية والتجميع المعروفة، خاصةً حسب السنة والفصل والشهر.