إنشاء جدول تاريخ
أثناء إنشاء تقرير في Power BI، يكون أحد المتطلبات الشائعة للعمل هو إجراء عمليات حسابية بناءً على التاريخ والوقت. على سبيل المثال، مؤسسات ترغب في تتبع مسار أعمالها خلال عدد من الشهور أو لربع سنة أو لسنة مالية وما إلى ذلك. لهذا السبب، من الضروري أن يتم تنسيق هذه القيم المحددة بزمن بشكل صحيح. يكشف Power BI تلقائيًا عن الجداول وأعمدة التاريخ، مع ذلك، قد تحتاج أحيانًا إلى اتخاذ خطوات إضافية لتنسيق التواريخ حسب التنسيق الذي تتطلبه مؤسستك.
على سبيل المثال، افترض أنه عليك إنشاء تقارير لفريق المبيعات في مؤسستك. تحتوي قاعدة البيانات على جداول للمبيعات والأوامر والمنتجات والمزيد. ستلاحظ أن هناك العديد من هذه الجداول، بما في ذلك جدولي المبيعات والأوامر، يحتوي على أعمدة تاريخ خاصة به، كما هو موضح في العمودين ShipDate و OrderDate في جدولي المبيعات والأوامر. أنت مكلف بإنشاء جدول لإجمالي المبيعات وعدد الأوامر حسب السنة والشهر. كيف يمكنك إنشاء عنصر مرئي في جداول متعددة، كل منها له عمود التاريخ الخاصة به؟
لحل هذه المشكلة، يمكنك إنشاء جدول تاريخ مشترك يمكن استخدامه من قبل عدة جداول. يوضح المقطع التالي كيفية إنجاز هذه المهمة في Power BI.
إنشاء جدول تاريخ مشترك
الطرق التي يمكنك من خلالها إنشاء جدول تاريخ مشترك:
بيانات المصدر
DAX
Power Query
بيانات المصدر
في بعض الأحيان، قد يكون لقواعد البيانات المصدر ومستودعات البيانات جداول تاريخ خاصة بها بالفعل. إذا كان تصميم المسؤول لقاعدة البيانات شاملاً ودقيق، يمكن استخدام هذه الجداول لتنفيذ المهام التالية:
تحديد أيام العطلات للشركة
إنشاء تقويم منفصل وسنة مالية
تحديد عطلات نهاية الأسبوع مقابل أيام الأسبوع
جداول بيانات المصدر هي جداول مكتملة وجاهزة للاستخدام الفوري. إذا كان لديك جدول بهذا الشكل، يمكنك استيراده إلى نموذج البيانات الخاص بك وعدم استخدام أي أساليب أخرى مُوضحة في هذا المقطع. نوصيك باستخدام أحد جداول بيانات المصدر لأنه على الأرجح يكون مشتركًا مع الأدوات الأخرى التي قد تستخدمها بجانب Power BI.
إذا لم يكن لديك جدول بيانات مصدر، يمكنك استخدام طرق أخرى لإنشاء جدول تاريخ مشترك.
DAX
يمكنك استخدام دالتي "تعبير تحليل البيانات" (DAX) CALENDARAUTO() أو CALENDAR() لإنشاء جدول تاريخ مشترك. تُرجع الدالة CALENDAR() نطاق متصل من التواريخ بناءً على تاريخ البدء والانتهاء اللذين تم إدخالهما كوسيطات في الدالة. أما الدالة CALENDARAUTO() فهي تُرجع نطاق متصل وكامل من التواريخ التي يتم تحديدها تلقائياً من مجموعة بياناتك. يتم اختيار تاريخ البدء باعتباره أقدم تاريخ موجود في مجموعة بياناتك، في حين أن تاريخ الانتهاء يكون هو آخر تاريخ موجود في مجموعة بياناتك والبيانات التي يتم ملء الشهر المالي بها والذي يمكنك تضمينها كوسيطة في الدالة CALENDARAUTO(). في هذا المثال، تُستخدم الدالة CALENDAR() عندما تريد فقط عرض البيانات بداية من 31 مايو 2011 (أول يوم بدأت فيه المبيعات تعقب هذه البيانات) وحتى 10 سنوات تالية.
في Power BI Desktop، انتقل إلى علامة التبويب جدول على الشريط. حدد جدول جديد، ثم أدخل التالي في صيغة DAX:
Dates = CALENDAR(DATE(2011, 5, 31), DATE(2022, 12, 31))
لديك الآن عمود للتواريخ يمكنك استخدامه. لكن هذا العمود متفرق قليلاً. بإمكانك أيضاً عرض الأعمدة للسنة فقط، ورقم الشهر والأسبوع في السنة، ويوم محدد من الأسبوع. ولتنفيذ هذه المهمة، عليك تحديد عمود جديد على الشريط وإدخال معادلة DAX التالية، التي سوف تسترد السنة من جدول التاريخ الذي أنشأته.
Year = YEAR(Dates[Date])
يمكنك تنفيذ نفس العملية لاسترداد رقم الشهر ورقم الأسبوع ويوم الأسبوع:
MonthNum = MONTH(Dates[Date])
WeekNum = WEEKNUM(Dates[Date])
DayoftheWeek = FORMAT(Dates[Date], "DDDD")
عند الانتهاء، سيتضمن جدولك الأعمدة التي تظهر في الشكل التالي.
لقد أنشأت الآن جدول تاريخ مشترك باستخدام الدالة DAX. تضيف هذه العملية فقط الجدول الجديد الذي أنشأته إلى نموذج البيانات، وستظل بحاجة إلى إنشاء علاقات بين جدول التاريخ وجدول "المبيعات" وجدول "الأمر"، ثم وضع علامة على الجدول باعتباره جدول تاريخ رسمي لنموذج البيانات. مع ذلك، قبل إتمام هذه المهام، فكّر في طريقة أخرى لإنشاء جدول تاريخ عام، على سبيل المثال باستخدام Power Query.
Power Query
يمكنك استخدام لغة الصيغة M، أي لغة التطوير المستخدمة لإنشاء الاستعلامات في Power Query، من أجل تعريف جدول تاريخ مشترك.
حدد تحويل البيانات في Power BI Desktop، وهو ما سيؤدي إلى توجهيك إلى Power Query. في المسافة الفارغة من الجزء الأيسر استعلامات،، انقر بزر الماوس الأيمن لفتح القائمة المنسدلة التالية، حيث تحدد استعلام جديد > استعلام فارغ.
في طريقة العرض استعلام جديد التي تظهر أمامك، أدخل الصيغة M التالية لإنشاء جدول تقويم:
= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))
بالنسبة لبيانات المبيعات، يمكنك تعيين تاريخ البدء ليكون هو أقدم تاريخ في بياناتك: 31 مايو 2011. ويمكنك أيضاً عرض التواريخ للسنوات الـ 11 التالية، بما في ذلك التواريخ في المستقبل. بهذه الطريقة، يمكنك أن تضمن تدفق بيانات المبيعات الجديدة دون الحاجة إلى إعادة إنشاء هذا الجدول. بجانب ذلك، يمكنك تغيير المدة. وفي هذه الحالة، يمكنك إنشاء نقطة بيانات لكل يوم، ويمكنك أيضاً زيادة عددها حسب عدد الساعات والدقائق والثواني. يوضح الشكل التالي النتيجة.
بعد إتمام العملية بنجاح، ستجد أن لديك قائمة تواريخ بدلاً من جدول تواريخ. ولتصحيح هذا الخطأ، انتقل إلى علامة التبويب تحويل على الشريط، ثم حدد تحويل > إلى جدول. كما يوحي الاسم، ستقوم هذه الميزة بتحويل القائمة إلى جدول. ويمكنك إعادة تسمية العمود إلى DateCol.
بعد ذلك، يمكنك إضافة أعمدة إلى الجدول الجديد لعرض التواريخ بدلالة السنة والشهر والأسبوع واليوم حتى تتمكن من إنشاء تدرج هرمي في العنصر المرئي. مهمتك الأولى هي تغيير نوع العمود عن طريق تحديد الرمز الموجود بجانب اسم العمود، ومن القائمة المنسدلة الناتجة، تحديد النوع تاريخ.
بعد الانتهاء من تحديد النوع تاريخ، يمكنك إضافة أعمدة للسنة والشهور والأسابيع والأيام. انتقل إلى إضافة عمود، وحدد القائمة المنسدلة ضمن التاريخ، ثم حدد السنة، كما هو موضح في الشكل التالي.
ستلاحظ أن Power BI قد أضاف عموداً لكل السنوات التي تم سحبها من DateCol.
يمكنك تنفيذ العملية نفسها للشهور والأسابيع والأيام. وبعد الانتهاء من ذلك، ستجد الجدول يحتوي على الأعمدة الظاهرة في الشكل التالي.
بهذا، تكون قد استخدمت Power Query بنجاح لإنشاء جدول تاريخ مشترك.
توضح الخطوات السابقة كيفية استيراد الجدول إلى نموذج البيانات. والآن، عليك وضع علامة على الجدول باعتباره جدول التاريخ الرسمي بحيث يتمكن Power BI من التعرف عليه لكل القيم المستقبلية وتضمن صحة التنسيق.
وضع علامة لتحديد جدول التاريخ الرسمي
أول شيء عليك فعله لوضع علامة على الجدول باعتباره جدول التاريخ الرسمي، هو البحث عن الجدول الجديد في جزء الحقول. انقر بزر الماوس الأيمن فوق اسم الجدول ثم حدد وضع علامة كجدول تاريخ، كما هو موضح في الشكل التالي.
بوضع علامة على الجدول كجدول تاريخ، يجري Power BI عمليات تحقق من الصحة للتأكد من أن البيانات تحتوي على قيم خالية صفرية، وأنها فريدة، وتحتوي على قيم تاريخ متصلة على فترة ما. يمكنك أيضاً اختيار أعمدة معينة في الجدول المطلوب وضع علامة عليه كجدول تاريخ، والتي يمكن الاستفادة بها في حالة وجود العديد من الأعمدة داخل الجدول. انقر بزر الماوس الأيمن فوق الجدول، وحدد وضع علامة كجدول تاريخ، ثم وحدد إعدادات جدول التاريخ. ستظهر النافذة التالية حيث يمكنك اختيار العمود الذي يجب وضع العلامة تاريخ عليه.
سيؤدي تحديد وضع علامة كجدول تاريخ إلى إزالة التدرجات الهرمية التي تم إنشاؤها تلقائيًا من حقل التاريخ في الجدول الذي قمت بوضع علامة عليه كجدول تاريخ. أما بالنسبة لحقول التاريخ الأخرى، فسيظل التدرج الهرمي التلقائي موجوداً حتى تنشئ علاقة بين هذا الحقل وجدول التاريخ أو حتى تقوم بإيقاف تشغيل الميزة ضبط التاريخ/الوقت تلقائياً. يمكنك إضافة تدرج هرمي إلى جدول التاريخ المشترك يدوياً بالنقر بزر الماوس الأيمن فوق أعمدة السنة أو الشهر أو الأسبوع أو اليوم في جزء الحقول، ثم تحديد تدرج هرمي جديد. يوجد مزيد من التفاصيل بشأن هذه العملية في جزء لاحق من هذه الوحدة.
إنشاء عنصر مرئي
لإنشاء عنصر مرئي بين جدولي "المبيعات" و"الأوامر"، عليك إنشاء علاقة بين جدول التاريخ الجديد المشترك هذا وجدولي "المبيعات" و"الأوامر". بذلك، ستكون قادراً على إنشاء عناصر مرئية باستخدام جدول التاريخ الجديد. لإكمال هذه المهمة، انتقل إلى علامة التبويب النموذج ثم إلى **>**إدارة العلاقات، حيث يمكنك إنشاء علاقات بين جدول التاريخ المشترك وجدولي "الأوامر" و"المبيعات" باستخدام العمود OrderDate. تعرض لقطة الشاشة التالية مثالاً على علاقة واحدة من هذه العلاقات.
بعد إنشاء العلاقات، يمكنك إنشاء عنصر مرئي لإجمالي المبيعات وعدد الأوامر حسب الوقت باستخدام جدول التاريخ المشترك الذي قمت بتطويره باستخدام أسلوب DAX أو Power Query.
لتحديد إجمالي المبيعات، عليك إضافة كل المبيعات وذلك لأن عمود الكمية في جدول "المبيعات" يتناول عائد كل عملية بيع وليس عوائد إجمالي المبيعات. يمكنك إكمال هذه المهمة باستخدام عملية حساب القياس التالية، والذي سيتم شرحه في مناقشات لاحقة. عملية الحساب التي ستستخدمها عند إنشاء هذا القياس هي كما يلي:
#Total Sales = SUM(Sales[‘Amount’])
بعد الانتهاء، يمكنك إنشاء جدول عن طريق العودة إلى علامة التبويب المرئيات وتحديد التمثيل المرئي للجدول. إذا كنت تريد عرض إجمالي الأوامر والمبيعات حسب السنة والشهر، فلن تحتاج سوى تضمين العمودين السنة والشهر من جدول التاريخ، والعمود OrderQty والقياس #TotalSales. عندما تتعرف على التدرجات الهرمية، يمكنك أيضاً إنشاء تدرج هرمي يسمح لك بالتنقل لأسفل من السنوات إلى الشهور. على سبيل المثال، يمكنك عرضها جنباً إلى جنب. لقد أنشأت الآن عنصر مرئي بنجاح في جدول تاريخ مشترك.