تعد جداول التواريخ في Power Pivot ضرورية لاستعراض البيانات وحسابها مع مرور الوقت. توفر هذه المقالة فهما جيدا لجداول التواريخ وكيفية إنشائها في PowerPivot. على وجه الخصوص، تصف هذه المقالة:
- سبب أهمية جدول التاريخ لاستعراض البيانات وحسابها حسب التواريخ والوقت.
- كيفية استخدام Power Pivot لإضافة جدول تواريخ إلى نموذج البيانات.
- كيفية إنشاء أعمدة تاريخ جديدة مثل السنة والشهر والفترة الزمنية في جدول التواريخ.
- كيفية إنشاء علاقات بين جداول التواريخ وجداول الحقائق.
- كيف تتعامل مع الوقت.
هذه المقالة موجهة للمستخدمين الجدد في Power Pivot. ومع ذلك، من المهم أن يكون لديك فهم جيد لاستيراد البيانات، وإنشاء العلاقات، وإنشاء أعمدة وقياسات محسوبة.
لا توضح هذه المقالة كيفية استخدام دالات DAX Time-Intelligence في صيغ القياس. لمزيد من المعلومات حول كيفية إنشاء المقاييس باستخدام دالات تحليل معلومات الوقت في DAX، انظر "تحليل معلومات الوقت" في Power Pivot في Excel.
ملاحظة
في Power Pivot، يعد الاسمان "قياس" و"حقل محسوب" مرادفين. نحن نستخدم مقياس الاسم في كامل هذه المقالة. لمزيد من المعلومات، راجع المقاييس في Power Pivot.
المحتويات
التعرف على جداول التواريخ
تشتمل معظم تحليلات البيانات على استعراض البيانات ومقارنتها على مدار التواريخ والوقت. على سبيل المثال، قد تريد جمع مبالغ المبيعات للربع المالي الماضي، ثم مقارنتها بأرباع السنة الأخرى، أو قد ترغب في حساب رصيد إغلاق نهاية الشهر لحساب. في كل حالة من هذه الحالات، تستخدم التواريخ كطريقة لتجميع معاملات المبيعات أو الأرصدة وتجميعها لفترة زمنية معينة.
تقرير Power View
يمكن أن يحتوي جدول التاريخ على العديد من التمثيلات المختلفة للتواريخ والوقت. على سبيل المثال، غالبا ما يحتوي جدول التواريخ على أعمدة مثل السنة المالية أو الشهر أو ربع السنة أو الفترة الزمنية التي يمكنك تحديدها كحقول من قائمة حقول عند تقسيم البيانات وتصفيتها في تقارير Power View أو PivotTables.
قائمة حقول Power View
لأعمدة التواريخ مثل السنة والشهر وربع السنة لتضمين كافة التواريخ ضمن النطاق الخاص بها، يجب أن يتضمن جدول التواريخ عمودا واحدا على الأقل مع مجموعة متجاورة من التواريخ. بمعنى التالي، يجب أن يتضمن هذا العمود صفا واحدا لكل يوم لكل سنة مضمنة في جدول التواريخ.
على سبيل المثال، إذا كانت البيانات التي تريد استعراضها تحتوي على تواريخ من 1 فبراير 2010 وحتى 30 نوفمبر 2012، وكنت تقوم بإعداد تقرير حول سنة تقويمية، فعندئذ تريد جدول تواريخ بنطاق تاريخ على الأقل من 1 يناير 2010 وحتى 31 ديسمبر 2012. يجب أن تحتوي كل سنة في جدول التاريخ على كافة أيام كل سنة. إذا كنت ستقوم بتحديث البيانات بانتظام ببيانات أحدث، فقد ترغب في تشغيل تاريخ الانتهاء لمدة عام أو عامين، بحيث لا تحتاج إلى تحديث جدول التاريخ مع مرور الوقت.
جدول تواريخ ذو مجموعة متجاورة من التواريخ
إذا كنت تقريرا عن سنة مالية، فيمكنك إنشاء جدول تواريخ مع مجموعة متجاورة من التواريخ لكل سنة مالية. على سبيل المثال، إذا كانت السنة المالية تبدأ بتاريخ 1 مارس، وكان لديك بيانات عن السنوات المالية 2010 وحتى التاريخ الحالي (على سبيل المثال، في السنة المالية 2013)، فيمكنك إنشاء جدول تواريخ يبدأ بتاريخ 1/3/2009 ويتضمن كل يوم على الأقل في كل سنة مالية حتى التاريخ الأخير في السنة المالية 2013.
إذا كنت ستقوم بإعداد تقرير حول كل من السنة التقويمية والسنة المالية، فلن تحتاج إلى إنشاء جداول تواريخ منفصلة. بإمكان جدول تواريخ واحد أن يتضمن أعمدة لسنة تقويمية وسنة مالية وحتى ثلاثة عشر تقويما تتألف من أربعة أسابيع. الشيء المهم هو أن جدول التواريخ يحتوي على مجموعة متجاورة من التواريخ لجميع السنوات المضمنة.
إضافة جدول تواريخ إلى نموذج البيانات
هناك عدة طرق يمكنك من خلالها إضافة جدول تواريخ إلى نموذج البيانات:
- استورد من قاعدة بيانات علائقية أو مصدر بيانات آخر.
- أنشئ جدول تواريخ في Excel ثم انسخه أو أنشئ ارتباطا إلى جدول جديد في Power Pivot.
- استيراد من Microsoft Azure Marketplace.
لنلقي نظرة على كل من هذه عن كثب.
الاستيراد من قاعدة بيانات ارتباطية
إذا قمت باستيراد بعض البيانات أو كلها من مستودع بيانات أو أي نوع آخر من قواعد البيانات الارتباطية، فمن المحتمل أن يكون هناك بالفعل جدول تواريخ وعلاقات بينه وبين باقي البيانات التي تقوم باستيرادها. من المحتمل أن تتطابق التواريخ والتنسيق مع التواريخ الموجودة في بيانات الحقائق، ومن المحتمل أن تبدأ التواريخ في الماضي وتمتد إلى المستقبل. قد يكون جدول التاريخ الذي تريد استيراده كبيرا جدا ويحتوي على نطاق تواريخ يتجاوز ما تحتاج إلى تضمينه في نموذج البيانات. يمكنك استخدام ميزات التصفية المتقدمة في "معالج استيراد الجدول" في Power Pivot لاختيار التواريخ والأعمدة المحددة التي تحتاجها بالفعل فقط. يمكن أن يؤدي هذا إلى تقليل حجم المصنف بشكل ملحوظ وتحسين الأداء.
معالج استيراد الجدول
في معظم الحالات، لن تحتاج إلى إنشاء أي أعمدة إضافية مثل السنة المالية والأسبوع واسم الشهر وما إلى ذلك. لأنها ستكون موجودة بالفعل في الجدول الذي تم استيراده. لكن، في بعض الحالات، بعد استيراد جدول التاريخ إلى نموذج البيانات، قد تحتاج إلى إنشاء أعمدة تواريخ إضافية، وذلك طبقا لحاجة إعداد التقارير معينة. لحسن الحظ، من السهل القيام بذلك باستخدام DAX. ستتعرف على المزيد حول إنشاء حقول جدول التواريخ لاحقا. تختلف كل بيئة عن الأخرى. إذا لم تكن متأكدا مما إذا كانت مصادر البيانات تحتوي على جدول تواريخ أو جدول تقويم ذي صلة، فاستشر مسؤول قاعدة البيانات.
إنشاء جدول تواريخ في Excel
يمكنك إنشاء جدول تواريخ في Excel ثم نسخه إلى جدول جديد في نموذج البيانات. من السهل جدا القيام بذلك ويمنحك الكثير من المرونة.
عند إنشاء جدول تواريخ في Excel، تبدأ بعمود واحد يتضمن نطاقا متجاورا من التواريخ. يمكنك عندئذ إنشاء أعمدة إضافية، مثل السنة وربع السنة والشهر والسنة المالية والفترة الزمنية، وما إلى ذلك في ورقة عمل Excel باستخدام صيغ Excel، أو بعد نسخ الجدول إلى نموذج البيانات، يمكنك إنشاؤها كأعمدة محسوبة. يمكن توضيح إنشاء أعمدة تاريخ إضافية في Power Pivot في القسم "إضافة أعمدة تاريخ جديدة" إلى "جدول التواريخ " لاحقا في هذه المقالة.
كيفية: إنشاء جدول بيانات في Excel ونسخه إلى نموذج البيانات
في Excel، في ورقة عمل فارغة، في الخلية A1، اكتب اسم رأس العمود لتحديد نطاق من التواريخ. عادة ما يكون هذا شيئا مثل التاريخ أو التاريخ والوقت أو مفتاح التاريخ.
في الخلية A2، اكتب تاريخ بداية. على سبيل المثال، 1/1/2010.
انقر فوق مقبض التعبئة واسحبه للأسفل إلى رقم صف يتضمن تاريخ انتهاء. على سبيل المثال، 2016/12/31.
حدد كافة الصفوف في عمود "التاريخ " (بما في ذلك اسم الرأس في الخلية A1).
في المجموعة "أنماط" ، انقر فوق "تنسيق كجدول"، ثم حدد نمطا.
في مربع الحوار "تنسيق كجدول "، انقر فوق موافق.
انسخ كل الصفوف، بما في ذلك الرأس.
في Power Pivot، على علامة التبويب "الشريط الرئيسي"، انقر فوق "لصق".
في "لصق معاينة>"اسم الجدول"، اكتب اسما مثلCalendar. اترك "استخدام الصف الأول كرؤوس أعمدة" محددا، ثم انقر فوق موافق.
يظهر جدول التاريخ الجديد (المسمى Calendar في هذا المثال) في Power Pivot كما يلي:
ملاحظة
يمكنك أيضا إنشاء جدول مرتبط باستخدام الإضافة إلى نموذج البيانات. على الرغم من ذلك، فإن هذا يجعل حجم المصنف أكبر على نحو غير ضروري لأن المصنف يحتوي على إصدارين من جدول التواريخ؛ واحد في Excel وواحد في Power Pivot..
ملاحظة
تاريخ الاسم عبارة عن كلمة أساسية في Power Pivot. إذا قمت بتسمية الجدول الذي أنشأته في تاريخ Power Pivot، فعليك حينئذ إحاطة اسم الجدول بعلامات اقتباس مفردة في أي صيغ DAX تشير إليه في وسيطة. تشير كل الصور والصيغ النموذجية في هذه المقالة إلى جدول تواريخ تم إنشاؤه في Power Pivot ويسمى Calendar.
لديك الآن جدول تواريخ في نموذج البيانات. يمكنك إضافة أعمدة تاريخ جديدة مثل السنة والشهر وغير ذلك باستخدام DAX.
إضافة أعمدة تاريخ جديدة إلى جدول التواريخ
يعد جدول التواريخ الذي يحتوي على عمود تاريخ واحد ويحتوي على صف واحد لكل يوم لكل سنة مهما لتعريف كافة التواريخ في نطاق تاريخ. ومن الضروري أيضا إنشاء علاقة بين جدول الحقائق وجدول التاريخ. ولكن عمود التاريخ الواحد الذي يتضمن صفا واحدا لكل يوم لا يعد مفيدا عند التحليل حسب التواريخ في تقرير PivotTable أو Power View. تريد أن يتضمن جدول التواريخ أعمدة تساعدك في تجميع البيانات لنطاق أو مجموعة من التواريخ. على سبيل المثال، قد تريد جمع مبالغ المبيعات حسب الشهر أو ربع السنة أو يمكنك إنشاء مقياس يحسب النمو على أساس سنوي. وفي كل واحدة من هذه الحالات، يحتاج جدول التاريخ إلى أعمدة السنة أو الشهر أو ربع السنة التي تسمح لك بتجميع البيانات لتلك الفترة.
إذا قمت باستيراد جدول التاريخ من مصدر بيانات علائقي، فقد يتضمن بالفعل أنواع مختلفة من أعمدة التاريخ التي تريدها. في بعض الحالات، قد ترغب في تعديل بعض هذه الأعمدة أو إنشاء أعمدة تاريخ إضافية. ويحدث ذلك على وجه الخصوص عند إنشاء جدول تواريخ خاص بك في Excel ونسخته إلى نموذج البيانات. لحسن الحظ، أصبحت عملية إنشاء أعمدة تاريخ جديدة في Power Pivot سهلة للغاية باستخدام دالات التاريخ والوقت في DAX.
تلميح
إذا لم تكن قد عملت بعد مع DAX، فإن أفضل مكان لبدء التعلم هو البدء السريع: التعرف على أساسيات DAX في 30 دقيقة على Office.com.
دالات التاريخ والوقت في DAX
إذا سبق لك استخدام دالات التاريخ والوقت في صيغ Excel، فمن المحتمل أن تكون ملما باستخدام دالات التاريخ والوقت. على الرغم من تشابه هذه الدالات مع نظيراتها في Excel، توجد بعض الاختلافات المهمة:
- تستخدم دالات التاريخ والوقت في DAX نوع بيانات datetime.
- يمكنهم أخذ القيم من عمود كوسيطة.
- يمكن استخدامها لإرجاع قيم التاريخ و/أو معالجتها.
غالبا ما يتم استخدام هذه الوظائف عند إنشاء أعمدة تاريخ مخصصة في جدول تواريخ، لذلك من المهم فهمها. سنستخدم عددا من هذه الدالات لإنشاء أعمدة للسنة وربع السنة والشهر المالي وما إلى ذلك.
ملاحظة
إن دالات التاريخ والوقت في DAX ليست هي نفس دالات تحليل معلومات الوقت. تعرف على المزيد حول تحليل معلومات الوقت في Power Pivot في Excel.
يتضمن DAX دالات التاريخ والوقت التالية:
- التاريخ
- DATEVALUE
- اليوم التالي
- EDATE
- EOMONTH
- HOUR
- MINUTE
- MONTH
- الآن
- SECOND
- TIME
- TIMEVALUE
- اليوم
- WEEKDAY
- WEEKNUM
- YEAR
- YEARFRAC
هناك العديد من دالات DAX الأخرى التي يمكنك استخدامها في الصيغ أيضا. على سبيل المثال، تستخدم العديد من الصيغ الموضحة هنا دالات رياضية ومثلثية مثل MODوTRUNCودالات منطقية مثل IFودالات نصية مثل FORMAT لمزيد من المعلومات حول دالات DAX الأخرى، راجع قسم " الموارد الإضافية " لاحقا في هذه المقالة.
أمثلة عن صيغ لسنة تقويمية
تصف الأمثلة التالية الصيغ المستخدمة لإنشاء أعمدة إضافية في جدول تواريخ مسمى Calendar. يوجد بالفعل عمود واحد اسمه "التاريخ" ويحتوي على نطاق متقارب من التواريخ من 1/1/2010 وحتى 31/12/2016.
السنة
=YEAR([date])
في هذه الصيغة، ترجع الدالة YEAR من القيمة الموجودة في عمود التاريخ. لأن القيمة الموجودة في عمود التاريخ هي من نوع البيانات datetime، تعرف الدالة YEAR كيفية إرجاع السنة منها.
الشهر
=MONTH([date])
في هذه الصيغة، كما هو الحال مع الدالة YEAR، يمكننا ببساطة استخدام الدالة MONTH لإرجاع قيمة شهر من العمود Date.
ربع السنة
=INT(([الشهر]+2)/3)
في هذه الصيغة، نستخدم الدالة INT لإرجاع قيمة تاريخ كعدد صحيح. الوسيطة التي نعينها للدالة INT هي القيمة من عمود "الشهر"، أضف 2 ثم اقسم ذلك على 3 للحصول على ربع السنة، من 1 إلى 4.
اسم الشهر
=FORMAT([date],"mmmm")
في هذه الصيغة، للحصول على اسم الشهر، نستخدم الدالة FORMAT لتحويل قيمة رقمية من عمود "التاريخ" إلى نص. نحدد عمود التاريخ كوسيطة أولى ، ثم التنسيق ؛ نريد أن يظهر اسم الشهر كل الأحرف، ولذلك نستخدم "mmmm". تبدو النتيجة مماثلة لما يلي:
إذا أردنا إرجاع اسم الشهر المختصر إلى ثلاثة أحرف، فسنستخدم "mmm" في وسيطة التنسيق.
يوم من أيام الأسبوع
=FORMAT([date],"ddd")
في هذه الصيغة، نستخدم الدالة FORMAT للحصول على اسم اليوم. ولأننا نريد فقط اسم اليوم المختصر، فإننا نحدد "ddd" في وسيطة التنسيق.
نموذج PivotTable
عندما يكون لديك حقول للتواريخ مثل السنة وربع السنة والشهر وما إلى ذلك، يمكنك استخدامها في PivotTable أو تقرير. على سبيل المثال، تعرض الصورة التالية الحقل SalesAmount من جدول وقائع المبيعات في VALUES، وYear and Quarter من جدول أبعاد Calendar في ROWS. يتم تجميع SalesAmount لسياق السنة والربع العام.
أمثلة عن صيغ لسنة مالية
السنة المالية
=IF([Month]<= 6,[Year],[Year]+1)
في هذا المثال، تبدأ السنة المالية في 1 يوليو.
لا توجد أي دالة يمكنها استخراج سنة مالية من قيمة تاريخ لأن تاريخي البدء والانتهاء للسنة المالية غالبا ما يختلفان عن تاريخي السنة التقويمية. للحصول على السنة المالية، نستخدم أولا الدالة IF لاختبار ما إذا كانت قيمة الشهر أصغر من أو تساوي 6. في الوسيطة الثانية، إذا كانت قيمة الشهر أقل من أو تساوي 6، فسيتم إرجاع القيمة من عمود السنة. إذا لم يكن الأمر كذلك، فقم بإرجاع القيمة من السنة وأضف 1.
هناك طريقة أخرى لتحديد قيمة شهر نهاية السنة المالية وهي إنشاء مقياس يحدد الشهر ببساطة. على سبيل المثال، FYE:=6. يمكنك بعد ذلك الإشارة إلى اسم القياس بدلا من رقم الشهر. على سبيل المثال، =IF([Month]<=[FYE],[Year],[Year]+1). يوفر هذا المزيد من المرونة عند الإشارة إلى شهر نهاية السنة المالية في عدة صيغ مختلفة.
الشهر المالي
=IF([Month]<= 6, 6+[Month], [Month]- 6)
في هذه الصيغة، نحدد ما إذا كانت قيمة [الشهر] أقل من أو تساوي 6، ثم نأخذ 6 ونضيف القيمة من الشهر، وإلا فسيتم طرح 6 من القيمة من [الشهر].
الربع المالي
=INT(([FiscalMonth]+2)/3)
الصيغة التي نستخدمها ل FiscalQuarter هي نفسها التي كانت تستخدمها في ربع السنة في السنة التقويمية. الفرق الوحيد هو أننا نحدد [FiscalMonth] بدلا من [Month].
أيام العطل أو التواريخ الخاصة
قد ترغب في تضمين عمود تاريخ يشير إلى تواريخ معينة وهي أيام عطلات أو تواريخ خاصة أخرى. على سبيل المثال، قد تريد جمع إجمالي المبيعات ليوم رأس السنة الجديدة بإضافة حقل عطلة إلى PivotTable أو كمقسم طريقة عرض أو عامل تصفية. وفي حالات أخرى، قد تحتاج إلى استبعاد هذه التواريخ من أعمدة تواريخ أخرى أو في مقياس.
بما في ذلك العطلات أو الأيام الخاصة أمر بسيط للغاية. يمكنك إنشاء جدول في Excel يحتوي على التواريخ التي تريد تضمينها. يمكنك بعد ذلك نسخ "إضافة إلى نموذج البيانات" أو استخدامها لإضافته إلى نموذج البيانات كجدول مرتبط. في معظم الحالات، ليس من الضروري إنشاء علاقة بين الجدول وجدول Calendar. يمكن لأي صيغ تشير إليه استخدام الدالة LOOKUPVALUE لإرجاع القيم.
فيما يلي مثال لجدول تم إنشاؤه في Excel يتضمن أيام العطل المراد إضافتها إلى جدول التواريخ:
| التاريخ | عطلة |
|---|---|
| 1/1/2010 | رأس السنة الجديدة |
| 11/25/2010 | عيد الشكر |
| 12/25/2010 | عيد الميلاد المجيد |
| 1/1/2011 | رأس السنة الجديدة |
| 11/24/2011 | عيد الشكر |
| 12/25/2011 | عيد الميلاد المجيد |
| 1/1/2012 | رأس السنة الجديدة |
| 22/11/2012 | عيد الشكر |
| 12/25/2012 | عيد الميلاد المجيد |
| 1/1/2013 | رأس السنة الجديدة |
| 11/28/2013 | عيد الشكر |
| 12/25/2013 | عيد الميلاد المجيد |
| 11/27/2014 | عيد الشكر |
| 12/25/2014 | عيد الميلاد المجيد |
| 1/1/2014 | رأس السنة الجديدة |
| 11/27/2014 | عيد الشكر |
| 12/25/2014 | عيد الميلاد المجيد |
| 1/1/2015 | رأس السنة الجديدة |
| 11/26/2014 | عيد الشكر |
| 12/25/2015 | عيد الميلاد المجيد |
| 1/1/2016 | رأس السنة الجديدة |
| 11/24/2016 | عيد الشكر |
| 12/25/2016 | عيد الميلاد المجيد |
في جدول التواريخ، نقوم بإنشاء عمود باسم عطلة ونستخدم صيغة كما يلي:
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
لنلق نظرة على هذه الصيغة بعناية أكبر.
نحن نستخدم الدالة LOOKUPVALUE للحصول على قيم من عمود "العطل" في الجدول "عطلات". في الوسيطة الأولى، نحدد العمود حيث ستكون قيمة النتيجة. نحدد عمود العطلة في الجدول عطلات لأن هذه هي القيمة التي نريد إرجاعها.
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
ثم نحدد الوسيطة الثانية، عمود البحث الذي يحتوي على التواريخ التي نريد البحث عنها. نحدد عمود التاريخ في الجدول "عطلات "، كما يلي:
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
أخيرا، نحدد العمود في جدول Calendar الخاص بنا الذي يحتوي على التواريخ التي نريد البحث عنها في جدول العطلات. هذا بالطبع هو عمود "التاريخ" في جدول Calendar.
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
سيرجع عمود العطلة اسم العطلة لكل صف يحتوي على قيمة تاريخ تتطابق مع تاريخ في الجدول "عطلات".
التقويم المخصص - ثلاثة عشر فترة من أربعة أسابيع
غالبا ما تبلغ بعض المنظمات، مثل البيع بالتجزئة أو خدمات الأغذية، عن فترات مختلفة، مثل ثلاثة عشر فترة من أربعة أسابيع. مع تقويم فترة من ثلاثة عشر أربعة أسابيع ، تكون كل فترة 28 يوما. لذلك، تحتوي كل فترة على أربعة من أيام الاثنين وأربعة أيام الثلاثاء وأربعة أربعاء وما إلى ذلك. وتحتوي كل فترة على عدد الأيام نفسه، وتقع عادة العطل ضمن الفترة نفسها كل سنة. يمكنك اختيار بدء الدورة الشهرية في أي يوم من أيام الأسبوع. كما هو الحال مع التواريخ في التقويم أو السنة المالية، يمكنك استخدام DAX لإنشاء أعمدة إضافية بتواريخ مخصصة.
في الأمثلة أدناه، تبدأ الفترة الكاملة الأولى في أول أحد من السنة المالية. في هذه الحالة، تبدأ السنة المالية في 1/7.
الأسبوع
تعطينا هذه القيمة رقم الأسبوع بدءا من الأسبوع الكامل الأول في السنة المالية. في هذا المثال، يبدأ أول أسبوع كامل يوم الأحد، ولذلك يبدأ أول أسبوع كامل في السنة المالية الأولى في جدول Calendar فعليا بتاريخ 7/4/2010 ويستمر حتى آخر أسبوع كامل في جدول Calendar. على الرغم من أن هذه القيمة بحد ذاتها ليست مفيدة تماما في التحليل، فمن الضروري الحساب لاستخدامها في صيغ أخرى لفترة 28 يوما.
=INT([التاريخ]-40356)/7)
لنلق نظرة على هذه الصيغة بعناية أكبر.
أولا، نقوم بإنشاء صيغة ترجع القيم من العمود Date كعدد صحيح، كالتالي:
=INT([date])
نريد بعد ذلك البحث عن أول يوم أحد في السنة المالية الأولى. نرى أنه هو 7/4/2010.
الآن، اطرح 40356 (وهو العدد الصحيح ل27/6/2010، وهو الأحد الأخير من السنة المالية السابقة) من هذه القيمة للحصول على عدد الأيام منذ بداية الأيام في جدول Calendar، كما يلي:
=INT([التاريخ]-40356)
ثم قم بقسمة الناتج على 7 (أيام خلال الأسبوع)، على الشكل التالي:
=INT(([التاريخ]-40356)/7)
تبدو النتيجة كالتالي:
نقطة
تبلغ الفترة الزمنية في هذا التقويم المخصص 28 يوما وستبدأ دائما يوم الأحد. سيعرض هذا العمود رقم الفترة التي تبدأ بيوم الأحد الأول في السنة المالية الأولى.
=INT(([الأسبوع]+3)/4)
لنلق نظرة على هذه الصيغة بعناية أكبر.
أولا، ننشئ صيغة ترجع قيمة من عمود الأسبوع كعدد صحيح، كالتالي:
= INT([Week])
ثم أضف 3 إلى تلك القيمة، على الشكل التالي:
=INT([Week]+3)
ثم قم بقسمة الناتج على 4، على الشكل التالي:
=INT(([الأسبوع]+3)/4)
تبدو النتيجة كالتالي:
الفترة المالية
ترجع هذه القيمة السنة المالية لفترة معينة.
=INT(([period]+12)/13)+2008
لنلق نظرة على هذه الصيغة بعناية أكبر.
أولا ، ننشئ صيغة ترجع قيمة من نقطة وتضيف 12:
=([نقطة]+12)
نقسم الناتج على 13، نظرا لوجود ثلاثة عشر فترة من 28 يوما في السنة المالية:
=(([period]+12)/13)
نضيف 2010، لأن هذه هي السنة الأولى في الجدول:
=(([الفترة]+12)/13)+2010
أخيرا ، نستخدم الدالة INT لإزالة أي كسر من الناتج ، وإرجاع عدد صحيح ، عند قسمته على 13 ، على الشكل التالي:
= INT(([period]+12)/13)+2010
تبدو النتيجة كالتالي:
الفترة في السنة المالية
ترجع هذه القيمة رقم الفترة الزمنية، من 1 إلى 13، بدءا من الفترة الكاملة الأولى (التي تبدأ من يوم الأحد) في كل سنة مالية.
=IF(MOD([Period],13), MOD([Period],13),13)
هذه الصيغة أكثر تعقيدا بعض الشيء ، لذا سنقوم بوصفها أولا بلغة نفهمها بشكل أفضل. توضح هذه الصيغة، قسمة القيمة من [Period] على 13 للحصول على الفترة الزمنية رقم (1-13) في السنة. إذا كان هذا الرقم 0، فسيتم إرجاع 13.
أولا، ننشئ صيغة ترجع باقي القيمة من Period بمقدار 13. يمكننا استخدام MOD (الدالات الرياضية والمثلثية) على النحو التالي:
= MOD([period],13)
ويوفر لنا هذا، في الغالب، النتيجة التي نرغب فيها، باستثناء الحالات التي تكون فيها قيمة الفترة 0 لأن هذه التواريخ لا تندرج ضمن السنة المالية الأولى، كما في الأيام الخمسة الأولى من جدول تواريخ Calendar النموذجي. يمكننا التعامل مع ذلك باستخدام الدالة IF. إذا كان الناتج 0، فسنرجع 13، على الشكل التالي:
= IF(MOD([period],13),MOD([Period],13),13)
تبدو النتيجة كالتالي:
نموذج PivotTable
تعرض الصورة أدناه PivotTable مع الحقل SalesAmount من جدول وقائع المبيعات في VALUES، وحقول PeriodFiscalYear وPeriodInFiscalYear من جدول أبعاد تاريخ Calendar في ROWS. يتم تجميع SalesAmount للسياق حسب السنة المالية وفترة 28 يوما في السنة المالية.
العلاقات
بعد إنشاء جدول تاريخ في نموذج البيانات، لبدء استعراض البيانات في PivotTables والتقارير ولتجميع البيانات استنادا إلى الأعمدة في جدول أبعاد التاريخ، ستحتاج إلى إنشاء علاقة بين جدول الحقائق وبيانات المعاملات وجدول التاريخ.
نظرا لأنك تحتاج إلى إنشاء علاقة تستند إلى التواريخ، يلزم التأكد من إنشاء هذه العلاقة بين أعمدة قيمها من نوع البيانات datetime (Date).
لكل قيمة تاريخ في جدول الحقائق، يجب أن يحتوي عمود البحث ذي الصلة في جدول التاريخ على قيم متطابقة. على سبيل المثال، يجب أن يحتوي الصف (سجل المعاملات) في جدول وقائع المبيعات بقيمة 15/8/2012 الساعة 12:00 ص في العمود DateKey على قيمة مطابقة في عمود "التاريخ" ذي الصلة في جدول التاريخ (المسمى Calendar). يعد هذا أحد الأسباب الأكثر أهمية لاحتواء عمود التاريخ في جدول التاريخ على نطاق متقارب من التواريخ يتضمن أي تاريخ محتمل في جدول الحقائق.
ملاحظة
على الرغم من أن عمود التاريخ في كل جدول يجب أن يكون من نفس نوع البيانات (التاريخ)، لا يهم تنسيق كل عمود.
ملاحظة
إذا لم يسمح لك Power Pivot بإنشاء علاقات بين الجدولين، فقد لا تقوم حقول التاريخ بتخزين التاريخ والوقت بنفس مستوى الدقة. قد تبدو القيم متشابهة ولكن يتم تخزينها بشكل مختلف استنادا إلى تنسيق الأعمدة. اقرأ المزيد حول العمل مع الوقت.
ملاحظة
تجنب استخدام المفاتيح البديلة للأعداد الصحيحة في العلاقات. عند استيراد بيانات من مصدر بيانات ارتباطي، يتم غالبا تمثيل أعمدة التاريخ والوقت بمفتاح بديل، وهو عمود عدد صحيح يستخدم لتمثيل تاريخ فريد. في Power Pivot، يجب تجنب إنشاء العلاقات باستخدام مفاتيح التاريخ/الوقت الصحيحة، وبدلا من ذلك، استخدام الأعمدة التي تحتوي على قيم فريدة مع نوع بيانات تاريخ. على الرغم من أن استخدام المفاتيح البديلة يعتبر من أفضل الممارسات في مستودعات البيانات التقليدية، إلا أن مفاتيح الأعداد الصحيحة غير مطلوبة في Power Pivot وقد تجعل من الصعب تجميع القيم في PivotTables حسب فترات تاريخ مختلفة.
إذا تلقيت خطأ عدم تطابق النوع عند محاولة إنشاء علاقة، فمن المحتمل أن يكون العمود في جدول الحقائق ليس من نوع بيانات التاريخ. قد يحدث هذا عندما يتعذر على Power Pivot تحويل نوع بيانات غير تاريخ (عادة ما يكون نوع بيانات نصية) إلى نوع بيانات تاريخ. لا يزال بإمكانك استخدام العمود في جدول الحقائق، ولكن سيكون عليك تحويل البيانات باستخدام صيغة DAX في عمود جديد محسوب. راجع تحويل تواريخ نوع بيانات النص إلى نوع بيانات تاريخ لاحقا في الملحق.
علاقات متعددة
في بعض الحالات، قد يكون من الضروري إنشاء علاقات متعددة أو إنشاء جداول تواريخ متعددة. على سبيل المثال، إذا كان هناك حقول تواريخ متعددة في جدول وقائع المبيعات، مثل DateKey وShipDate وReturnDate، يمكن أن يكون لها جميعا علاقات بالحقل Date في جدول تاريخ Calendar، ولكن يمكن أن يكون حقل واحد منها فقط علاقة نشطة. في هذه الحالة، ونظرا لأن DateKey يمثل تاريخ المعاملة، وبالتالي يمثل التاريخ الأكثر أهمية، فسيكون ذلك بمثابة العلاقة النشطة على أفضل وجه. أما بالنسبة للآخرين علاقات غير نشطة.
يحسب PivotTable التالي إجمالي المبيعات حسب السنة المالية وربع السنة المالية. يتم وضع مقياس يسمى "إجمالي المبيعات"، مع الصيغة "إجمالي المبيعات"=SUM([SalesAmount])" في VALUES، وتم وضع حقلي FiscalYear وFiscalQuarter من جدول تواريخ Calendar في ROWS.
يعمل جدول PivotTable المباشرة هذا بشكل صحيح لأننا نريد جمع إجمالي مبيعاتنا حسب transactiondate في DateKey. يستخدم مقياس إجمالي المبيعات التواريخ الموجودة في DateKey ويتم جمعه حسب السنة المالية والربع سنة المالية نظرا لوجود علاقة بين DateKey في جدول المبيعات وعمود التاريخ في جدول تواريخ Calendar.
العلاقات غير النشطة
ولكن ماذا لو أردنا جمع إجمالي مبيعاتنا ليس حسب تاريخ المعاملة ، ولكن حسب تاريخ الشحن؟ نحن بحاجة إلى علاقة بين العمود "تاريخ الشحن" في جدول "المبيعات" وعمود "التاريخ" في جدول Calendar. إذا لم ننشئ تلك العلاقة، فستستند تجميعاتنا دائما إلى تاريخ المعاملة. ومع ذلك، يمكن أن تكون لدينا علاقات متعددة، على الرغم من أن واحدة فقط يمكن أن تكون نشطة، ولأن تاريخ المعاملة هو الأكثر أهمية، فإنه يحصل على العلاقة النشطة مع جدول Calendar.
في هذه الحالة، يتضمن تاريخ الشحن علاقة غير نشطة، وبالتالي فإن أي صيغة قياس يتم إنشاؤها لتجميع البيانات استنادا إلى تواريخ الشحن يجب أن تحدد العلاقة غير النشطة باستخدام الدالة USERELATIONSHIP .
على سبيل المثال، نظرا لوجود علاقة غير نشطة بين العمود ShipDate في جدول المبيعات وعمود التاريخ في جدول Calendar، يمكننا إنشاء مقياس يجمع إجمالي المبيعات حسب تاريخ الشحن. نستخدم صيغة كالتالية لتحديد العلاقة التي سيتم استخدامها:
إجمالي المبيعات حسب تاريخ الشحن:=CALCULATE(SUM(Sales[SalesAmount]), USERELATIONSHIP(Sales[ShipDate], Calendar[Date]))
تنص هذه الصيغة بكل بساطة: حساب مجموع SalesAmount، ولكن قم بالتصفية باستخدام العلاقة بين العمود ShipDate في جدول المبيعات والعمود Date في جدول Calendar.
والآن، إذا أنشأنا PivotTable ووضعنا مقياس إجمالي المبيعات حسب تاريخ الشحن في VALUES، والسنة المالية وربع السنة المالية على الصفوف، فسنشاهد الإجمالي الكلي نفسه، ولكن تختلف كافة مبالغ المجموع الأخرى للسنة المالية والربع سنة المالية نظرا لأنها تستند إلى تاريخ الشحن وليس إلى تاريخ المعاملة.
PivotTable
يسمح لك استخدام العلاقات غير النشطة باستخدام جدول تواريخ واحد فقط، ولكنه يتطلب أن تشير أي مقاييس (مثل إجمالي المبيعات حسب تاريخ الشحن)، إلى العلاقة غير النشطة في صيغته. ثمة بديل آخر وهو استخدام جداول تواريخ متعددة.
جداول تواريخ متعددة
هناك طريقة أخرى للعمل باستخدام أعمدة تواريخ متعددة في جدول الحقائق وهي إنشاء جداول تواريخ متعددة وإنشاء علاقات نشطة منفصلة بينها. لنلق نظرة على مثال جدول المبيعات مرة أخرى. لدينا ثلاثة أعمدة تتضمن تواريخ قد نحتاج إلى تجميع البيانات عليها:
- DateKey مع تاريخ البيع لكل معاملة.
- تاريخ الشحن – مع تاريخ ووقت شحن العناصر المباعة إلى العميل.
- تاريخ الإرجاع – مع التاريخ والوقت عند استلام عنصر واحد أو أكثر من العناصر المرتجعة.
تذكر أن حقل DateKey مع تاريخ المعاملة هو الأكثر أهمية. سنقوم بمعظم التجميعات بناء على هذه التواريخ ، لذلك نريد بالتأكيد علاقة بينها وبين عمود التاريخ في جدول Calendar. إذا كنا لا نريد إنشاء علاقات غير نشطة بين ShipDate وReturnDate وحقل التاريخ في جدول Calendar، مما يتطلب صيغ قياس خاصة، يمكننا إنشاء جداول تواريخ إضافية لتاريخ الشحن وتاريخ الإرجاع. يمكننا بعد ذلك إنشاء علاقات نشطة بينهما.
في هذا المثال، أنشأنا جدول تواريخ آخر باسم ShipCalendar. وهذا يعني بطبيعة الحال إنشاء أعمدة تواريخ إضافية، وبما أن أعمدة التاريخ هذه موجودة في جدول تاريخ مختلف، فنحن نريد تسميتها بطريقة تميزها عن الأعمدة نفسها في جدول Calendar. على سبيل المثال، لقد أنشأنا أعمدة تحمل التسميات "سنة الشحن" و"شهر الشحن" و"ربع الشحن"، وما إلى ذلك.
إذا أنشأنا PivotTable ووضعنا مقياس إجمالي المبيعات في VALUES، وShipFiscalYear وShipFiscalQuarter على الصفوف، فسنرى النتائج نفسها التي رأيناها عندما أنشأنا علاقة غير نشطة وحقل خاص لحساب إجمالي المبيعات حسب تاريخ الشحن.
ويتطلب كل نهج من هذه الأساليب دراسة متأنية. عند استخدام علاقات متعددة مع جدول تواريخ واحد، قد يلزم إنشاء مقاييس خاصة لنقل العلاقات غير النشطة باستخدام الدالة USERELATIONSHIP. من ناحية أخرى، قد يكون إنشاء جداول تواريخ متعددة مربكا في قائمة الحقول، ونظرا لوجود عدد أكبر من الجداول في نموذج البيانات، سيتطلب ذلك المزيد من الذاكرة. جرب ما يناسبك.
الخاصية "جدول التاريخ"
تعين الخاصية "جدول التاريخ" بيانات التعريف اللازمة لعمل دالات Time-Intelligence مثل TOTALYTD وPREVIOUSMONTH وDATESBETWEEN بشكل صحيح. عند تشغيل عملية حسابية باستخدام إحدى هذه الدالات، يعرف مشغل الصيغ في Power Pivot إلى أين يذهب للحصول على التواريخ التي يحتاج إليها.
تحذير
إذا لم يتم تعيين هذه الخاصية، فقد لا ترجع المقاييس التي تستخدم دالات DAX Time-Intelligence نتائج صحيحة.
عند تعيين الخاصية "جدول التاريخ"، يمكنك تحديد جدول تاريخ وعمود تاريخ لنوع البيانات التاريخ (datetime) فيه.
كيفية: تعيين الخاصية "جدول التاريخ"
- في نافذة PowerPivot، حدد الجدول Calendar.
- على علامة التبويب "تصميم "، انقر فوق "وضع علامة كجدول تواريخ".
- في مربع الحوار "وضع علامة كجدول تواريخ"، حدد عمودا يتضمن قيما فريدة ونوع البيانات "تاريخ".
العمل مع الوقت
جميع قيم التواريخ التي تحتوي على نوع بيانات "التاريخ" في Excel أو SQL Server هي في الواقع رقم. يتضمن هذا العدد الأرقام التي تشير إلى وقت. في كثير من الحالات، يكون الوقت منتصف الليل لكل صف. على سبيل المثال، إذا كان حقل DateTimeKey في جدول حقائق المبيعات يحتوي على قيم مثل 10/19/2010 12:00:00 ص، فهذا يعني أن القيم متوافقة مع مستوى الدقة لليوم. إذا تضمنت قيم الحقل DateTimeKey وقتا مدرجا، على سبيل المثال، 19/10/2010 8:44:00 ص، فهذا يعني أن القيم تصل إلى مستوى الدقة بالدقائق. يمكن أن تكون القيم أيضا لمستوى الدقة على مستوى الساعة أو حتى مستوى الثواني. سيكون لمستوى الدقة في قيمة الوقت تأثير كبير على كيفية إنشاء جدول التاريخ والعلاقات بينه وبين جدول الحقائق.
يجب عليك تحديد ما إذا كنت ستقوم بتجميع البيانات حسب مستوى الدقة يوما أو إلى مستوى من الدقة الزمني. بمعنى آخر، قد ترغب في استخدام الأعمدة في جدول التواريخ مثل الصباح أو بعد الظهر أو الساعة كحقول تاريخ الوقت في مناطق الصفوف أو الأعمدة أو التصفية في PivotTable.
ملاحظة
الأيام هي أصغر وحدة وقت يمكن أن تعمل بها وظائف تحليل معلومات الوقت في DAX. إذا لم تكن بحاجة إلى استخدام قيم الوقت، فيجب تقليل دقة البيانات لاستخدام الأيام كوحدة دنيا.
إذا كنت ترغب في تجميع بياناتك إلى مستوى الوقت، فسيحتاج جدول التاريخ إلى عمود تاريخ يتضمن الوقت. في الواقع ، ستحتاج إلى عمود تاريخ بصف واحد لكل ساعة ، أو ربما حتى كل دقيقة ، من كل يوم ، لكل سنة في نطاق التاريخ. يرجع ذلك إلى أنه لإنشاء علاقة بين العمود DateTimeKey في جدول الحقائق وعمود التاريخ في جدول التاريخ، يجب أن تتوفر لديك قيم متطابقة. كما يمكنك أن تتخيل ، إذا قمت بتضمين الكثير من السنوات ، فقد يؤدي ذلك إلى جدول تاريخ كبير جدا.
ومع ذلك، في معظم الحالات، تريد تجميع البيانات حسب اليوم فقط. بمعنى آخر، ستستخدم أعمدة مثل السنة أو الشهر أو الأسبوع أو يوم الأسبوع كحقول في مناطق الصفوف أو الأعمدة أو عوامل التصفية في PivotTable. في هذه الحالة، يجب أن يحتوي عمود التاريخ في جدول التاريخ على صف واحد فقط لكل يوم في السنة، كما ذكرنا سابقا.
إذا كان عمود التاريخ يتضمن مستوى وقت من الدقة، ولكنك ستقوم بالتجميع في مستوى يوم فقط، لإنشاء العلاقة بين جدول الحقائق وجدول التواريخ، فقد تحتاج إلى تعديل جدول الحقائق عن طريق إنشاء عمود جديد يقتطع القيم في عمود التاريخ إلى قيمة يوم. بعبارة أخرى، قم بتحويل قيمة مثل 10/19/2010 8:44:00 ص إلى 10/19/2010 12:00:00 ص. يمكنك بعد ذلك إنشاء العلاقة بين هذا العمود الجديد وعمود التاريخ في جدول التاريخ حيث تتطابق القيم.
لنلق نظرة على مثال. تظهر هذه الصورة عمود DateTimeKey في جدول وقائع المبيعات. يجب أن تكون كل تجميعات البيانات الموجودة في هذا الجدول على مستوى اليوم فقط، باستخدام الأعمدة الموجودة في جدول تاريخ Calendar مثل Year، Month، Quarter، إلخ. الوقت المضمن في القيمة غير ملائم، بل التاريخ الفعلي فقط.
ولأننا لسنا بحاجة إلى تحليل هذه البيانات إلى المستوى الزمني، فلن نحتاج إلى تضمين عمود "التاريخ" في جدول تاريخ Calendar صفا واحدا لكل ساعة وكل دقيقة من كل يوم في كل سنة. لذلك، يبدو عمود التاريخ في جدول التاريخ كما يلي:
لإنشاء علاقة بين العمود DateTimeKey في جدول المبيعات وعمود التاريخ في جدول Calendar، يمكننا إنشاء عمود محسوب جديد في جدول وقائع المبيعات واستخدام الدالة TRUNC لقتطاع قيمة التاريخ والوقت في العمود DateTimeKey إلى قيمة تاريخ تتطابق مع القيم الموجودة في عمود "التاريخ" في جدول Calendar. تبدو الصيغة كما يلي:
=TRUNC([DateTimeKey],0)
يوفر لنا هذا عمودا جديدا (أطلق علينا اسم DateKey) بتاريخ من العمود DateTimeKey، ووقت 12:00:00 ص لكل صف:
يمكننا الآن إنشاء علاقة بين عمود (DateKey) الجديد وعمود التاريخ في جدول Calendar.
وبالمثل، يمكننا إنشاء عمود محسوب في جدول المبيعات يقلل من دقة الوقت في العمود DateTimeKey إلى مستوى دقة الساعة. في هذه الحالة، لن تعمل الدالة TRUNC، ولكن لا يزال بإمكاننا استخدام دالات التاريخ والوقت الأخرى في DAX لاستخراج قيمة جديدة وإعادة تجميعها لمستوى دقة ساعة. يمكننا استخدام صيغة كالتالي:
= DATE (YEAR([DateTimeKey]), MONTH([DateTimeKey]), DAY([DateTimeKey]) ) + TIME (HOUR([DateTimeKey]), 0, 0)
يبدو العمود الجديد كما يلي:
إذا تضمن عمود التاريخ في جدول التاريخ قيما لمستوى دقة الساعة، فيمكننا إنشاء علاقة بينها.
زيادة ملاءمة التواريخ
يعد عدد كبير من أعمدة التاريخ التي تقوم بإنشائها في جدول التاريخ ضروريا للحقول الأخرى، ولكنها في الواقع ليست مفيدة في التحليل. على سبيل المثال، يعتبر حقل DateKey في جدول المبيعات الذي أشرنا إليه وأوضناه في هذه المقالة مهما لأنه في كل معاملة، يتم تسجيل هذه المعاملة على أنها تحدث في تاريخ ووقت معينين. ولكن من وجهة نظر التحليل وإعداد التقارير، فهي ليست مفيدة للغاية لأنه لا يمكننا استخدامها كحقل صف أو عمود أو عامل تصفية في Pivot Table أو تقرير.
وبالمثل، في المثال الذي نعرضه، يعتبر عمود "التاريخ" في جدول Calendar مفيدا جدا ومهما في الواقع، ولكن لا يمكنك استخدامه كبعد في PivotTable.
للمحافظة على الاستفادة من الجداول والأعمدة الموجودة فيها قدر الإمكان، ولتسهيل التنقل في قوائم الحقول في PivotTable أو تقرير Power View، من المهم إخفاء الأعمدة غير الضرورية من أدوات العميل. قد تحتاج أيضا إلى إخفاء بعض الجداول أيضا. يحتوي جدول "العطلات" المعروض سابقا على تواريخ أيام العطل المهمة لبعض الأعمدة في جدول Calendar، ولكن لا يمكنك استخدام عمودي "التاريخ" و"العطلات" في جدول "العطلات" كحقلين في PivotTable. وهنا مرة أخرى، لتسهيل التنقل في قوائم الحقول، يمكنك إخفاء جدول العطلات بأكمله.
يعد اصطلاحات التسمية جانب آخر مهم من جوانب العمل مع التواريخ. يمكنك تسمية الجداول والأعمدة في Power Pivot بالطريقة التي تريدها. ولكن يجب أن تأخذ في الاعتبار أنه إذا كنت ستقوم بمشاركة المصنف مع مستخدمين آخرين، فإن اصطلاح التسمية الجيد يسهل التعرف على الجداول والتواريخ، ليس فقط في قوائم الحقول، ولكن أيضا في Power Pivot وصيغ DAX.
بعد أن يصبح لديك جدول تواريخ في نموذج البيانات، يمكنك البدء في إنشاء المقاييس التي ستساعدك في الحصول على أقصى استفادة من بياناتك. قد يكون بعضها بسيطا مثل جمع إجماليات المبيعات للسنة الحالية، في حين قد يكون البعض الآخر أكثر تعقيدا، حيث تحتاج إلى التصفية حسب نطاق معين من التواريخ الفريدة. تعرف على المزيد في المقاييس في Power Pivotووظائف تحليل معلومات الوقت.
ملحق
تحويل تواريخ نوع البيانات النصية إلى نوع بيانات تاريخ
في بعض الحالات، قد يحتوي جدول الحقائق الذي يحتوي على بيانات المعاملات على تواريخ لنوع بيانات نص. وهذا يعني أن التاريخ الذي يظهر ك 2012-12-04T11:47:09 ليس تاريخا على الإطلاق، أو على الأقل ليس نوع التاريخ الذي يمكن أن يفهمه Power Pivot. إنه في الواقع مجرد نص يقرأ كتاريخ. لإنشاء علاقة بين عمود التاريخ في جدول الحقائق، وعمود التاريخ في جدول التواريخ، يجب أن يكون كلا العمودين من نوع البيانات " تاريخ ".
عادة، عندما تحاول تغيير نوع البيانات لعمود تواريخ وهو عبارة عن نوع بيانات نصية إلى نوع بيانات تاريخ، بإمكان Power Pivot تفسير التواريخ وتحويلها إلى نوع بيانات تاريخ صحيح تلقائيا. إذا تعذر على Power Pivot إجراء تحويل نوع بيانات، فستتلقى خطأ عدم تطابق النوع.
ومع ذلك، لا يزال بإمكانك تحويل التواريخ إلى نوع بيانات تاريخ صحيح. يمكنك إنشاء عمود محسوب جديد واستخدام صيغة DAX لتحليل السنة والشهر واليوم والوقت وغير ذلك من السلاسل النصية ثم سلسلتها معا مرة أخرى بطريقة يمكن أن يقرأها Power Pivot كتاريخ صحيح.
في هذا المثال، استوردنا جدول حقائق يسمى المبيعات إلى Power Pivot. يحتوي على عمود يسمى DateTime. تظهر القيم كما يلي:
إذا أمعنا نظرنا إلى نوع البيانات في مجموعة "التنسيق" ضمن علامة التبويب "الشريط الرئيسي في Power Pivot"، فسنرى أنها من نوع البيانات "نص".
لا يمكننا إنشاء علاقة بين عمود التاريخ والوقت وعمود التاريخ في جدول التاريخ لأن أنواع البيانات غير متطابقة. إذا حاولنا تغيير نوع البيانات إلى "تاريخ"، فستتلقى خطأ عدم تطابق النوع:
في هذه الحالة، تعذر على Power Pivot تحويل نوع البيانات من نص إلى حديث. لا يزال بإمكاننا استخدام هذا العمود، ولكن من أجل إدخاله في نوع بيانات تاريخ صحيح، نحتاج إلى إنشاء عمود جديد يقوم بتحليل النص وإعادة إنشائه في قيمة يمكن أن ينشئ Power Pivot نوع بيانات تاريخ.
تذكر، من قسم العمل مع الوقت سابقا في هذه المقالة؛ يجب تحويل التواريخ في جدول الحقائق إلى مستوى الدقة يوما إذا كان تحليلك ضروريا. مع أخذ ذلك في الاعتبار، نريد أن تكون القيم في العمود الجديد على مستوى الدقة اليوم (باستثناء الوقت). يمكننا تحويل القيم الموجودة في العمود DateTime إلى نوع بيانات تاريخ وإزالة مستوى الوقت من الدقة باستخدام الصيغة التالية:
=DATE(LEFT([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2))
يوفر لنا ذلك عمودا جديدا (في هذه الحالة، يسمى التاريخ). يكتشف Power Pivot القيم لتكون تواريخ ويعين نوع البيانات تلقائيا إلى "تاريخ".
إذا أردنا الحفاظ على مستوى الوقت من الدقة، فنحن ببساطة نوسع الصيغة لتشمل الساعات والدقائق والثواني.
=DATE(LEFT([DateTime],4), MID([DateTime],6,2), MID([DateTime],9,2)) +
TIME(MID([DateTime],12,2), MID([DateTime],15,2), MID([DateTime],18,2))
الآن وبعد أن أصبح لدينا عمود تاريخ من نوع بيانات التاريخ، يمكننا إنشاء علاقة بينه وبين عمود تاريخ في تاريخ.
موارد إضافية
العمليات الحسابية في Power Pivot