Power BI / أساسي: أسس التحليل والنمذجة / الدرس 2
أنواع Power Query والإعداد المحلي
احفظ المعرفات ودلالة الأعداد والتواريخ أثناء تجهيز البيانات، بدلا من الاعتماد على الكشف التلقائي أو تنسيق العرض.
في هذه الصفحة
أهداف الدرس
- فصل نص المصدر عن تحويل النوع وعن تنسيق النموذج.
- اختيار أنواع بيانات وافتراضات محلية صريحة.
- اعتبار أخطاء التحويل دليلا يستلزم قرار جودة.
احفظ المعرفات كمعرفات
قد يكون رمز منتج يبدو عدديا نصا، لأن أصفاره البادئة أو كتابته الدقيقة جزء من هويته. يحذف تحويل 0017 إلى 17 معلومات الهوية، حتى إن عرض الرسم الرقم بأربع خانات لاحقا. وللكميات والأسعار والتواريخ عقود مختلفة. توجه أنواع Power Query التحويل قبل التحميل؛ أما صيغ تنسيق النموذج فتوجه العرض لاحقا، ولا تعكس تحويلا أتلف معنى المصدر. ابدأ بمواصفة عمود تسمي معناه ونوعه وسياسة null والنطاق المقبول. يفيد الكشف التلقائي في الاستكشاف، لكنه يحتاج مراجعة قبل اعتماد نموذج دوري عليه.
حدد الإعداد المحلي صراحة
قد تعني تواريخ نصية مثل 01/02/2026 أياماً مختلفة بحسب الإعداد المحلي. وبالمثل قد تغير الفاصلة العشرية طريقة تحليل نص عددي. يبني تعبير M الأول جدولا صغيرا ويحول عمود التاريخ بإعداد صريح يقدم اليوم على الشهر. التاريخ المقصود هو 2 يناير 2026. يعرض التعبير الكامل دون تشغيله في محرك Power Query. لا يصلح اختيار إعداد محلي واحد مصدرا يخلط أعرافا مختلفة؛ تحتاج صفوف الاستثناء قاعدة جودة موثقة، لا تحويلا يخمن التفسير بصورة مستقلة لكل قيمة.
let
Source = #table(type table [Code = text, Day = text], {{"0017", "02/01/2026"}}),
Typed = Table.TransformColumnTypes(Source, {{"Code", type text}, {"Day", type date}}, "en-GB")
in
Typed
يحتفظ الصف المقصود بـCode0017 كنص ويحول Day إلى 2 يناير 2026. مثال M غير منفذ.
اختر الدقة عمدا
تناسب الأعداد الصحيحة كميات لها عقد عدد صحيح. يستخدم Decimal Number فاصلة عائمة ثنائية، ولا يمثل كل كسر عشري بدقة. ولـFixed Decimal Number مقياس ثابت بأربع خانات عشرية، وقد يناسب المدخلات المالية ضمن نطاقه المدعوم، لكنه لا يقرر قواعد تقريب العمل أو تحويل العملة. يستخدم برنامج Python الثاني Decimal لحساب مالي صغير ودقيق. إنه مرجع مستقل، وليس ادعاء بتماثل Python وكل أنواع DAX. وثق هل يحدث التقريب لكل سطر أو فاتورة أو للعرض فقط، لأن الاختيارات قد تغير المجاميع.
from decimal import Decimal
amount = Decimal("0.10") + Decimal("0.20")
print(amount)
print(amount == Decimal("0.30"))
0.30
True
تنتج 0.30 وTrue من مدخلات Decimal النصية. لا يقرأ المثال مصنفا أو نموذجا أو مصدرا خارجيا.
احفظ معنى الخطأ وnull
لا ينبغي أن يتحول خطأ تحويل تاريخ تلقائيا إلى تاريخ اليوم أو null صامتة. قد تعني null قيمة مفقودة أو غير منطبقة أو مجهولة، بينما الصفر قيمة عددية فعلية. قرر هل توقف الأخطاء التحديث أم تعزل مع عدد تدقيق أم تتبع قاعدة موثقة أخرى. احفظ أمثلة افتراضية كافية لشرح الفشل دون كشف بيانات المصدر. قد يجعل استبدال كل خطأ بصفر الرسم مكتملا ظاهريا، بينما يخفض الإيراد أو يخفي تغير صيغة المصدر. تنتمي قرارات الجودة إلى عقد البيانات، لا إلى تنظيف تجميلي.
راجع مخرج الاستعلام النهائي
افحص مخطط البيانات المجهزة النهائي، لا أول خطوة معاينة فقط. قد تدخل عمليات الدمج أو إلغاء المحور أو الأعمدة المخصصة سلوك أنواع أو null جديدا. يمكن أن تفوت المعاينة صفوفا معيبة خارج نطاق العينة؛ لذلك حدد نطاق التحليل المقصود واحتفظ بأعداد المقبول والمرفوض. لا ينفذ المسار موصلا أو تحديثا أو محرك Power Query. يبقى M غير قابل للتشغيل، ويثبت برنامج Decimal حسابا دقيقا واحدا. يحتاج فحص النموذج المخول لاحقا تحقق نتائج التحويل وتغطية الصفوف، قبل الثقة بمعاينة تبدو ناجحة.
الأخطاء الشائعة وإصلاحها
تحول رمز المنتج 0017 إلى 17
- لماذا يحدث؟
- حُول معرّف تلقائيا إلى عدد.
- كيف تصلحه؟
- احفظ معرف المصدر كنص قبل فقد المعلومات.
- كيف تتجنب تكراره؟
- حدد أنواع المعرفات صراحة في عقد التجهيز.
تبدل تاريخ بين يناير وفبراير
- لماذا يحدث؟
- حُلل نص ملتبس وفق إعداد محلي غير معلن.
- كيف تصلحه؟
- طبق إعداد المصدر الموثق وارفض استثناءات الصيغ المختلطة.
- كيف تتجنب تكراره؟
- احفظ حالة تاريخ غير ملتبسة في مراجعة الجودة.
استبدال جميع أخطاء التحويل بصفر
- لماذا يحدث؟
- أُخفي فشل الجودة بغرض إكمال العرض.
- كيف تصلحه؟
- صنف القيم غير الصالحة والمفقودة والصفر الفعلي بصورة منفصلة.
- كيف تتجنب تكراره؟
- انشر أعداد الرفض ومعالجة الخطأ المتفق عليها.
اختبر فهمك
1. لماذا لا يستعيد تنسيق 17 على شكل 0000 المعرف الأصلي بصورة موثوقة؟
اعرض الحل المشروح
يغير التنسيق العرض فقط، ويفترض عرضا قد لا يطابق هوية المصدر. ربما انهارت نصوص مختلفة أصلا إلى العدد نفسه. احتفظ بالنص الأصلي، وعرف أي قاعدة تطبيع صراحة. لا تعيد بناء مفاتيح العمل من طريقة عرض بعد تحويل أتلفها؛ فقد تبدو القيمة ذات أربع خانات صحيحة بينما فقدت فروقا مهمة بين المعرفات.
2. ما الذي يجب تقريره قبل استبدال فشل تحويل سعر بقيمة null؟
اعرض الحل المشروح
قرر صلاحية الصف للمقياس، وأثر السعر المفقود في الإيراد، وهل يجب إيقاف التحديث، وكيف تحسب الصفوف المرفوضة. احفظ دليل صيغة المصدر من خلال مثال افتراضي آمن. قد يغير استبدال الخطأ بـnull دون هذا العقد شمول الصفوف ويخفض المجاميع بصمت. المعالجة قرار جودة موثق، لا وسيلة لجعل خطوة التحويل تبدو خالية من الأخطاء.
أهم ما تعلمته
- يحفظ نوع البيانات والإعداد المحلي المعنى قبل تنسيق العرض.
- تحتاج الأخطاء وnull والصفر قرارات جودة مختلفة.