كود M في أعمدة Power Query المخصصة | باور بي

كود M في أعمدة Power Query المخصصة | باور بي

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

تزيد القدرة على إنشاء أعمدة في Power Query باستخدام كود M من قدرتك على حل المشكلات الأكثر تعقيدًا.

قبل الخوض في الحل ، دعنا نراجع طبيعة المشكلة. لقد قدمت مجموعة بيانات ضخمة من Kaggle مكونة من 93 عامًا من بيانات الأوسكار. أردنا إخراج أفضل ممثلة ، والفائزين ، وخاصة أولئك النساء اللائي فازن بأكثر من جائزة واحدة لأفضل ممثلة ، ثم تصور استخدام Queryon Timeline للسنة التي فازوا فيها بالجائزة الثانية.

كود M في أعمدة Power Query المخصصة |  باور بي

كان لدي عدد من الأهداف عند وضع هذه المشكلة معًا. ما الذي نريد أن تركز المشكلة عليه وماذا نريد أن تكون الأهداف الرئيسية؟

وفي هذا ، كان هناك ثلاثة منهم.

الأول هو تعلم أو تطوير بعض الممارسات باستخدام تكوين Group By و All Rows . إنه شيء كنت أركز عليه حقًا لأنه يحل مجموعة كبيرة من المشكلات بكل بساطة وفي كثير من الأحيان يلغي الحاجة إلى بعض DAX شديد التعقيد.

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

وفقًا لفصل في كتاب جيل رافيف حول Power Query ، يمكن حل حوالي 40٪ من المشكلات في Power Query من خلال واجهة المستخدم فقط. ولكن هذا ، مع إضافة بعض التعليمات البرمجية الأساسية M والقدرة على إنشاء أعمدة مخصصة ، ليس بالأمر الصعب حقًا. يمكنك رفع هذه النسبة إلى أكثر من 80٪. يمكنك مضاعفة قدراتك على حل المشكلات ببعض المهارات الأساسية والبسيطة.

الشيء الثالث الذي أريد القيام به هو تقديم مرئيات Queryon Timeline المخصصة لأولئك الذين ليسوا على دراية بها. لقد جئت لأحبها حقًا. لقد استخدمتها في عدد من الحالات المختلفة وأعتقد أنها توفر طريقة فريدة حقًا لتصور البيانات.

جدول المحتويات

نهج الحل لمشكلة الأسبوع # 9

عند التفكير في هذه المشكلة ، أردت إجراء تجربة فكرية. ماذا لو أعطيتك 93 قصاصة ورقية بدلاً من ملف CSV (واحدة مع الفائز بجائزة أفضل ممثلة كل عام) ، كيف سيبدو الحل؟

من المحتمل أن يبدو الحل الخاص بك مثل ما لدي أدناه.

كود M في أعمدة Power Query المخصصة |  باور بي

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

وهكذا ، سأأخذ هذا كمخطط عام ، ثم أستعرض كيفية تفعيل هذا الحل المفاهيمي في شيء ما في Power Query. النهج الذي سنستخدمه هو ما تشير إليه ميليسا ، خبير Power Query المقيم لدينا ، على أنه التعلم بواسطة Googling.

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

كود M في أعمدة Power Query المخصصة |  باور بي

استخدام التجميع حسب في Power Query

ثم يمكننا الانتقال إلى Power Query والبدء في تشغيل حلنا. ما فعلته هو أنه في جدول الأوسكار هذا ، لقد مررت للتو وسحبت ملف CSV وقمت بالتصفية إلى الفائزين بجائزة أفضل ممثلة لكل عام. إذاً ، لدينا 93 صفاً فقط من الاسم فقط وعام الفيلم.

كود M في أعمدة Power Query المخصصة |  باور بي

إذا انتقلنا إلى Power Query وانتقلنا إلى هذا الجدول ، فإن أول شيء نريد القيام به هو " Group By" .

كود M في أعمدة Power Query المخصصة |  باور بي

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

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

سيكون لدينا عمود آخر يسمى Count ونريده عندما ننتقل إلى عدد الصفوف . نريد إيجاد عدد الانزلاقات في كل كومة. ثم نضغط على "موافق".

كود M في أعمدة Power Query المخصصة |  باور بي

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

كود M في أعمدة Power Query المخصصة |  باور بي

ولكن بعد ذلك بالنسبة للأشخاص الذين لديهم حسابات متعددة ، سترى أننا حصلنا على جميع السجلات.

كود M في أعمدة Power Query المخصصة |  باور بي

بعد ذلك ، نريد تصفية العناصر (1). لذلك ، نحن في الأساس نرمي كل تلك الأكوام التي لها اسم واحد فقط. حدد 1 وانقر فوق "موافق".

كود M في أعمدة Power Query المخصصة |  باور بي

وقد وصلنا الآن إلى 14 فائزًا بجوائز متعددة. وقد وصلنا الآن إلى 14 فائزًا بجوائز متعددة. إذا أخذنا ذلك ووسّعناه ، فيمكننا إخراج Name لأن لدينا بالفعل الاسم هنا والاحتفاظ بـ year_film .

كود M في أعمدة Power Query المخصصة |  باور بي

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

كود M في أعمدة Power Query المخصصة |  باور بي

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

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

كود M في أعمدة Power Query المخصصة |  باور بي

وسيظهر لك واحد واثنين.

كود M في أعمدة Power Query المخصصة |  باور بي

لذا فقد تم فرزنا جيدًا ، والآن نريد أن يكون لدينا مثل فهرس أو ترتيب لكل واحد ، ثم نتمكن من أخذ الترتيب الثاني في كل كومة.

دمج Table.AddIndexColumn M Code

وهكذا عدنا الآن إلى منهجنا "Learned by Googling" حيث يمكننا فقط البحث في الترتيب أو الفهرس ، ولكن يمكننا أيضًا الانتقال إلى الدليل المرجعي لـ Microsoft . لقد أنشأت أداة خارجية أستخدمها طوال الوقت تنقلك من LuckyTemplates إلى الدليل المرجعي لـ Microsoft.

كود M في أعمدة Power Query المخصصة |  باور بي

في الدليل المرجعي لـ Microsoft ، يتم تجميع كل شيء حسب الوظيفة ويحتوي على مربع تصفية حيث يمكنك البحث عن كل ما تحتاجه. في هذه الحالة ، نكتب الترتيب أو الفهرس في مربع التصفية. لا يقدم لنا أي شيء بالنسبة إلى التصنيف ، ولكن بالنسبة إلى الفهرس ، لدينا هذا الجدول AddIndexColumn ، وهو ملائم وقابل للتطبيق على ما نبحث عنه. كما يوفر بعض الأمثلة على كيفية استخدام هذه الوظيفة.

كود M في أعمدة Power Query المخصصة |  باور بي

لذلك دعنا نذهب إلى Power Query ودعنا نعيد تجميع جدولنا حسب الممثلة.

كود M في أعمدة Power Query المخصصة |  باور بي

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

كود M في أعمدة Power Query المخصصة |  باور بي

وبعد ذلك ، إليك الخطوة الكبيرة ، وهي إضافة عمود مخصص في Power Query وإدخال رمز M. سيكون لدينا Table.AddIndexColumn ، ثم أضف الحقل AllData . سنسمي العمود الجديد (كنص) هنا بالفهرس ، وسنبدأ الفهرس عند واحد (1) ونزيده بمقدار واحد (1).

كود M في أعمدة Power Query المخصصة |  باور بي

ونحصل على هذا الفهرس المثالي هنا.

كود M في أعمدة Power Query المخصصة |  باور بي

الآن ، يمكننا حذف عمود AllData الخاص بنا هنا نظرًا لأن كل شيء التقط في Custom . بعد ذلك ، يمكننا فقط توسيع العمود المخصص و��خراج الاسم ، لأن لدينا بالفعل الاسم هنا أيضًا. مع ذلك ، ما لدينا هو هذا الفهرس المرقم لكل واحد.

كود M في أعمدة Power Query المخصصة |  باور بي

أخيرًا ، يمكننا أن نفعل ما فعلناه في Count ، وهو تصفية كل العناصر الموجودة في الفوز الثاني.

كود M في أعمدة Power Query المخصصة |  باور بي

وها نحن ذا. هناك حلنا.

كود M في أعمدة Power Query المخصصة |  باور بي

تصور باستخدام Queryon Timeline Custom Visual

هناك بعض الأشياء الأخرى التي نريد القيام بها هنا ، والتي تعتمد جميعها على تنفيذ Queryon Visual . سنقوم بدمج وإضافة عنوان URL للصورة.

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

كود M في أعمدة Power Query المخصصة |  باور بي

ثم في عمود الممثلات ، سنقوم فقط بالتوسيع وسنوسع إلى عنوان URL.

كود M في أعمدة Power Query المخصصة |  باور بي

والآن لدينا هذا العمود مع عناوين URL.

كود M في أعمدة Power Query المخصصة |  باور بي

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

كود M في أعمدة Power Query المخصصة |  باور بي

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

كود M في أعمدة Power Query المخصصة |  باور بي

دعنا الآن ننتقل إلى جانب التصور لهذا وأريد تسليط الضوء على دخول أحد أعضاء LuckyTemplates ، وهو Jose ، الذي قام بالفعل بعمل رائع في التصور.

كود M في أعمدة Power Query المخصصة |  باور بي

بالعودة إلى Power Query من أجل التصور ، تجدر الإشارة إلى أن Microsoft قامت مؤخرًا بتنفيذ بعض التغييرات على الطريقة التي تعتمد بها المرئيات المخصصة . كجزء من هذه الشهادة ، شددوا على استخدام صور عناوين URL الخارجية.

إذا كنت تستخدم بالفعل إصدار Queryon Timeline الموجود في App Source (الإصدار 1.05) ، فلن تتمكن من سحب صور URL هذه. وهكذا ، لديك الآن خيار استخدام الإصدار 1.04 ، مع الاحتفاظ بصور عنوان URL ، حيث توجد على موقعهم طريقة لتضمين 64 صورة ثنائية مباشرة في ملف PBIX.

لقد ذكرت الآن تغيير ذلك العام إلى حقل تاريخ ، لذلك نحتاج إلى ربط ذلك بنموذج البيانات الخاص بنا.

كود M في أعمدة Power Query المخصصة |  باور بي

دعنا نغيرها من واحد إلى واحد إلى واحد إلى كثير ، والاتجاه الفردي على مرشح التقاطع ، ثم نجعل هذه العلاقة علاقة خطية .

كود M في أعمدة Power Query المخصصة |  باور بي

بعد ذلك ، بالنسبة لحقل عنوان URL للصورة ، نحتاج إلى التأكد من أنه في فئة البيانات ، لا يظهر على أنه غير مصنف ، ولكن كعنوان URL للصورة .

كود M في أعمدة Power Query المخصصة |  باور بي

الآن بعد أن تم إعداد كل شيء بشكل جيد ، نقوم فقط بسحب وإسقاط حقول الاسم والتاريخ وعنوان URL . يصبح ما تبقى منه تنظيفًا مباشرًا حقًا في خيارات التنسيق.

كود M في أعمدة Power Query المخصصة |  باور بي


جدول Power Query: كيفية دمج الأعمدة ديناميكيًا
كيفية دمج الاستعلامات في LuckyTemplates
استخراج القيم من السجلات والقوائم في Power Query

خاتمة

آمل أن أكون متحمسًا لإضافة رمز M إلى ذخيرتك. لقد أوضحت لك كيفية إعداد نموذج مفاهيمي وتنفيذ نهج Learn by Googling. لقد قمت بإرشادك عبر خطوات دمج كود M في عمود مخصص وتصور النتائج باستخدام Queryon Timeline.

أتمنى أن تكون قد وجدت ذلك مفيدًا. شاهد الفيديو الكامل أدناه للحصول على مزيد من التفاصيل حول البرنامج التعليمي وتحقق من الروابط أدناه لمزيد من المحتوى ذي الصلة.

أتمنى لك كل خير!


ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

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

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته