حلقة 0.0: مقدمة في لغة "M"
تعرف على تكوين لغة " M"
ما هي المتغيرات و الخطوات المطبقة؟
طبيعة القيم و التعبيرات
شرح القيم الأولية وقيم الدوال أو الوظائف مع أمثلة عملية باستخدام المحرر المتقدم
Subscribe to the new YouTube channel dedicated for English content
تعرف على تكوين لغة " M"
ما هي المتغيرات و الخطوات المطبقة؟
طبيعة القيم و التعبيرات
شرح القيم الأولية وقيم الدوال أو الوظائف مع أمثلة عملية باستخدام المحرر المتقدم
تعرف على أنواع القيم المنتظمة في لغة "M"
القيم المنتظمة في قوائم (انشائها و استخراج معلومات منها مع أمثلة مبسطة)
القيم المنتظمة في سجلات أو صفوف (انشائها و استخراج معلومات منها مع أمثلة مبسطة)
القيم المنتظمة في جداول (انشائها و استخراج معلومات منهامع أمثلة مبسطة)
استيراد بيانات من ملف الاكسيل الحالي (Excel.CurrentWorkbook)
تغيير تصنيف بيانات الأعمدة (Table.TransformColumnTypes)
اضافة عمود مخصص (Table.AddColumn)
جمع القيم الرقمية داخل قائمة (List.Sum)
تحويل الكويري إلى دالة مخصصة
استدعاء الدوال المخصصة من داخل محرر باور كويري
استدعاء الدوال المخصصة من داخل نافذة اكسيل
استدعاء الدوال المخصصة من داخل عمود مخصص (Custom Column)
استخدام المعامل كمتغير داخل معادلة
استخدام المعامل لتغيير مصدر البيانات بشكل مرن
تخليق المعاملات من داخل ورقة عمل اكسيل
استخدام دالة (Excel.Workbook) ودالة (File.Content) معا
مثال عملي لاستراد بيانات مركبة وتحويلها لبيانات جاهزة باستخدام 7 من أهم دوال الجداول
أربع دوال للتعامل مع البيانات:
Table.FillDown - Table.Skip - Table.PromoteHeaders - Tabel.UnpivotOtherColumns
ثلاث دوال للتعامل مع عنواين الأعمدة:
Table.FirstN- Table.SelectColumn - Table.Transpose
مثال عملي لاستراد بيانات من مجموعة من الجداول غير المتسقة ودمجها بطريفة ديناميكية باستخدام مجموعة من دوال لغة "M"
Excel.Workbook - Table.ColumnNames - Table.ExpandTableColumn
مثال عملي للمقارنة بين 3 جداول واستخراج الصفوف المتطابقة و غير المتطاقة باستخدام 4 من دوال القوائم في لغة "M"
List.Union - List.ContainsAny - List.Intersect - List.Difference
تبسيط الكود المستخدم في الحلقة 04 و اختصار الدوال المستخدمة إلى دالة واحدة بدلا من 4 دوال
Table.Combine
طريقتين لمعالجة بعض الأخطاء في باور كويري باستخدام الدوال:
الأولى: باستخدام try - otherwise وذلك في حالة ادخال نص في عملية حسابية
الثانية: باستخدام if - then - else وذلك في حالة ادخال null في عملية حسابية
في بعض الأحيان تحتاج إلى عمل استبدال للقيم داخل جدول جملة واحدة، فإذا كان لديك مجموعة من النصوص وترغب في استبدالها بمجموعة أخرى من النصوص فيمكنك فعل ذلك باستخدام دوال القوائم (List Functions)
سنقوم باستخدام جدول مساعد يحتوي على القيم القديمة والقيم الجديدة
سنقوم بتحويل الجدولين الى قوائم
بعد اتمام عملية الاستبدال سنقوم باعادة الجدول الى الحالة الأصلية
سوف نستخدم مجموعة من دوال القوائم والجداول
(List.RepalceMatchingItmes-Table.ToColumns-Table.FromColumns-Table.ColumnNames)
هل توجد طرق أخرى (غير طريقة دمج الجداول) للبحث داخل عدد من الجداول داخل باور كويري؟
هذا ما سوف نشاهده من خلال البحث عن أسماء العملاء وأسعار المنتجات داخل جدوال أخرى بدون القيام بعمليات الدمج
استخدام دالة List.PositionOf
باستخدام مشغل البحث [ ]
اعداد تقرير باستخدام Group By
من المهام المتكررة, عملية توزيع الأرقام بدلالة نسبة توزيع يتم احتسابها من داخل البيانات نفسها
مثل توزيع التكلفة على المنتجات أو منافذ البيع طبقا لنسبة المبيعات مثلا
أو كما هو الحال في هذا المثال, يتم توزيع الموازنة الاجمالية على الشهور بدلالة النسبة الفعلية لمبيعات كل شهر من اجمالي البيع في العام الماضي
الحل باستخدام Group By All Rows و Merge Queries
دمج الجداول بطريقة VLookup (تجنب التكرار والتحكم في المخرجات)
دمج الجداول بدلالة ثلاث أعمدة
استخراج المعلومات بدون Expand
استخدام ستة من دوال لغة "إم" (Table.Sort - List.First - List.Last - List.Average - List.Min - List.Max)
استخدام Records لحساب أكثر من قيمة داخل عمود
ستتعلم في هذا الفيديو المطابقة التامة والتقريبية في باور كويري، وسيوضح المثال كيف يمكنك الحصول على السعر الصحيح وخصم الكمية المناسب من قائمة أسعار ديناميكية ومصفوفة خصم الكمية.
بحث متطابق – Merge Queries
تجميع جدول المعاملات - Group by
بحث تقريبي - Table. SelectRows (M-Code)
اختيار العنصر الأخير في قائمة - List.Last (M-Code)
لديك جدول مكون من عمود واحد يحتوي بيانات بعض الاشخاص
كل ثلاث صفوف من الجدول تمثل بيانات شخص واحد (الاسم و الرقم الكودي و الجنسية)
المطلوب تقسيم هذا العمود الي ثلاث اعمدة بحيث يتم تخصيص عمود للاسم واخر للرقم و الاخير للجنسية
في نهاية الفيديو سوف تجد شرح لكيفية تنفيذ نفس المهمة باستخدام دوال ورقة العمل
ستتعلم في هذا الفيديو كيفية استخدام محرر باور كويري لتتعلم ذاتيا كيف تستخدم دوال لغة "M"
خلال هذه المحاضرة سنتعلم 9 من دوال لغة "M" كالتالي:
3 من دوال النصوص (Text.From - Text.Start - Text.End)
3 من دوال التاريخ (Date.Year - Date.DayOfWeekName - Date.MonthName)
3 من دوال الجداول (Table.SelectRows - Table.Group - Table.RowCount)
يعمل كل من "each" & "_" كاختصار لوظيفة مخصصة، ويمكن للمتغير "_" أن يمثل:
عنصرًا في قائمة،
أو صف في جدول،
أو جدولًا في مجموعة من الجداول، طبقا للسياق الذي تم استخدامه فيه
يركز الفيديو على المفهوم ويحتوي على مجموعة من الأمثلة، بعضها بسيط وبعضها الآخر معقد بعض الشيء.
ستتعلم في هذا الفيديو كيفية استخدام دالة Table.Buffer لزيادة سرعة معالجة البيانات
من خلال المثال العملي سنتعرض لما يلي:
كيفية حساب الإجمالي الجاري لعدد محدود من الصفوف
تحديث البيانات قبل استخدام Table.Buffer
تحديث البيانات بعد استخدام Table.Buffer
سنتعلم في هذا الفيديو كيفية استخراج البيانات من قواعد بيانات سيكوال سيرفر و يعتبر هذا الفيديو مقدمة مختصرة لقواعد البيانات و لكيفية عمل سيكوال سيرفر.
يركز هذا الفيديو على باور كويري داخل باو بي آي و من خلال المثال العملي سنناقش ما يلي:
مقدمة في SQL
استخراج البيانات بواسطة Import Data
SQL كود داخل باور بي اي
استخراج البيانات بواسطة Direct Query
سنتعلم في هذا الفيديو كيفية تفكيك الاجمالي السنوي التراكمي حتى نصل الي الاجماليات الشهرية
يركز هذا الفيديو على باور كويري داخل اكسيل ويبدأ الفيديو بمثال بسيط مع زيادة درجة الصعوبة تدريجيا وتحتوي الحلقة على الموضوعات التالية:
استخدام دالة Table.SelectRows
استخدام الاداتين Try & Otherwise
كيفية الحل في حالة وجود أكثر من سنة داخل مجوعة البيانات
كيفية الحل في حالة وجود أكثر من منتج داخل مجوعة البيانات