Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

في هذا البرنامج التعليمي ، سنعيد النظر في موضوع تناولته سابقًا حول كيفية إلغاء تنشيط أعمدة متعددة في Power Query باستخدام List.Zip. سأل أحد أعضاء LuckyTemplates في عن كيفية جعل هذه الطريقة ديناميكية. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي في أسفل هذه المدونة.

لقد صنفت هذا على أنه متقدم لأننا سنكتب عددًا من وظائف M وقد يكون بعضها جديدًا بالنسبة لك.

مع ذلك ، دعنا ننتقل إلى Power Query.

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

البيانات بتنسيق جدولي

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

في "الخطوات التطبيقية" ، يمكنك رؤية باقي الخطوات. أزلنا بعض الصفوف العلوية ، وأزلنا الأعمدة الفارغة ، ونظفنا قيمنا النصية وقمنا بملئها. بعد ذلك ، نقلنا بياناتنا ، وأزلنا السجل الفارغ ، ودمجنا العمودين الأول والثاني ، وقمنا بتنظيف قيم النص مرة أخرى ، ونقلنا بياناتنا مرة أخرى.

أنشأنا خطوة مخصصة ، سنقوم بفحصها بمزيد من التفصيل لاحقًا ، واستخرجنا القيم من قائمتنا ، ثم غيّرنا النوع في النهاية.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

دعونا نلقي نظرة على الكود بأكمله. الشيء الذي يهمنا هنا هو وظيفة List.Zip . خلاصة موجزة ، تأخذ قائمة واحدة كمعامل ثم تقوم بإرجاع قائمة. نتيجة لذلك ، نرى أن هذه القائمة المنفردة في هذا المثال تحتوي على ثلاث قوائم منفصلة.

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

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

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

تعديل التعليمات البرمجية لإلغاء تنشيط أعمدة متعددة ديناميكيًا

فكيف نجعل هذه الديناميكية؟

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

يمكنك أن ترى أنه يسرد جميع قيم السمات هنا في العمود الأول. يمكننا استخدام واجهة المستخدم لاستخراجها.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

في نموذج الاستعلام ، افتح المحرر المتقدم وأنشئ اسمًا جديدًا للمتغير. دعنا نسميها AttributeList . ثم نلصق الرمز ونضع فاصلة.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

دعنا الآن نعود إلى خطوتنا المخصصة. Inside List.Zip ، يمكننا استبدال القائمة الأولى باسم المتغير (AttributeList).

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

الآن دعونا نلقي نظرة فاحصة على القائمة الثانية. نعلم أنه يشير إلى أسماء الأعمدة ، ويبدأ كل اسم من أسماء الأعمدة بنفس السمة الموجودة بالفعل في تلك القائمة متبوعة بمسافة ونص "ساعات".

نحتاج فقط إلى إضافة لاحقة لكل عنصر. لنعد خطوة للوراء ونضيف عمودًا مخصصًا لإنشاء بعض المنطق.

Unpivot أعمدة متعددة ديناميكيًا: إضافة منطق عمود مخصص

إنه مجرد عمود مؤقت ، لذا لا نحتاج إلى إعطائه اسمًا مناسبًا. سنقوم بإزالته بمجرد الانتهاء.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

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

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

أسفل الصفحة ، نرى معاينة لتلك القائمة التي أنشأناها. لذلك ترى أن رؤوس الأعمدة هذه مغلفة الآن بشكل صحيح بحيث تتطابق مع رؤوس الأعمدة التي نراها هنا مع هذه القائمة.

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

لكننا مهتمون فقط بقيم حقل التسجيل ، لذلك نحتاج إلى استخراج ذلك. لنعد إلى مربع حوار العمود المخصص ونضيف Record.FieldsValues .

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

دعنا ننسخ المنطق الكامل الذي أنشأناه ، باستثناء أقواس الإغلاق الأخيرة. والآن يمكننا إزالة العمود المؤقت لأننا لم نعد بحاجة إليه.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

في شريط الصيغة الخاص بنا ، نختار قائمتنا الثانية ونستبدلها بمنطقنا.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

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

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

ثم ، بدلاً من ساعات ، دعنا نغير هذا إلى جهات الاتصال .

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates

لا توجد أخطاء وهي تبدو جيدة. يعد هذا الآن حلاً ديناميكيًا لإلغاء تنشيط عدة أعمدة.

Unpivot أعمدة متعددة ديناميكيًا في LuckyTemplates


أعمدة LuckyTemplates Unpivot - البرنامج التعليمي لـ Power Query
كيفية إلغاء تنشيط الأعمدة في
أساسيات LuckyTemplates Unpivot و Pivot في LuckyTemplates - مراجعة محرر الاستعلام

خاتمة

هذه هي الطريقة التي يمكنك بها إلغاء تنشيط أعمدة متعددة ديناميكيًا في باستخدام List.Zip.

إذا ظهرت سمة جديدة ، فسيتم التقاطها تلقائيًا بواسطة AttributeList. وعندما يختفي عنصر ما ، فلن يكون موجودًا في تلك القائمة.

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

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

ميليسا

Leave a Comment

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية

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

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

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

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

كيفية حفظ وتحميل ملف 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 لاحتياجات إعداد تقارير الأعمال الخاصة بك.