تقنية تصور LuckyTemplates: تعرف على كيفية إنشاء لوحات تصميم الخلفية
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
في هذا البرنامج التعليمي ، سنعيد النظر في موضوع تناولته سابقًا حول كيفية إلغاء تنشيط أعمدة متعددة في Power Query باستخدام List.Zip. سأل أحد أعضاء LuckyTemplates في عن كيفية جعل هذه الطريقة ديناميكية. يمكنك مشاهدة الفيديو الكامل لهذا البرنامج التعليمي في أسفل هذه المدونة.
لقد صنفت هذا على أنه متقدم لأننا سنكتب عددًا من وظائف M وقد يكون بعضها جديدًا بالنسبة لك.
مع ذلك ، دعنا ننتقل إلى Power Query.
جدول المحتويات
البيانات بتنسيق جدولي
كما ترى ، تم تحويل هذه البيانات بالفعل إلى تنسيق جهاز لوحي مناسب مناسب للتحليل. هذه العملية ، على الرغم من أهميتها الكبيرة ، لن يتم تناولها هنا ، لكننا سنتناول كل خطوة بإيجاز.
في الخطوة المصدر ، نرى تكرارًا مستمرًا لأزواج القيم ، وهي الساعات وجهات الاتصال لكل سمة من السمات المذكورة أعلاه.
في "الخطوات التطبيقية" ، يمكنك رؤية باقي الخطوات. أزلنا بعض الصفوف العلوية ، وأزلنا الأعمدة الفارغة ، ونظفنا قيمنا النصية وقمنا بملئها. بعد ذلك ، نقلنا بياناتنا ، وأزلنا السجل الفارغ ، ودمجنا العمودين الأول والثاني ، وقمنا بتنظيف قيم النص مرة أخرى ، ونقلنا بياناتنا مرة أخرى.
أنشأنا خطوة مخصصة ، سنقوم بفحصها بمزيد من التفصيل لاحقًا ، واستخرجنا القيم من قائمتنا ، ثم غيّرنا النوع في النهاية.
دعونا نلقي نظرة على الكود بأكمله. الشيء الذي يهمنا هنا هو وظيفة List.Zip . خلاصة موجزة ، تأخذ قائمة واحدة كمعامل ثم تقوم بإرجاع قائمة. نتيجة لذلك ، نرى أن هذه القائمة المنفردة في هذا المثال تحتوي على ثلاث قوائم منفصلة.
إذا قمنا بفحص القائمة الأولى ، فإنها تحتوي على أسماء سمات مشفرة ، فقط قيم نصية تمت كتابتها. تحتوي القائمة الثانية على مراجع أعمدة مشفرة بشكل ثابت لقيم الساعة. تحتوي القائمة النهائية على مراجع أعمدة مشفرة لقيم جهات الاتصال.
ثم يأخذ List.Zip عنصرًا من كل قائمة من هذه القوائم الثلاث ويجمعها بناءً على موقعها في قائمة جديدة. على سبيل المثال ، يتم دمج كل عنصر أول من هذه القوائم في قائمة جديدة. يحدث الشيء نفسه لجميع القيم المدرجة في المرتبة الثانية في تلك القائمة ، وما إلى ذلك.
يمكن أن تقلق القيم المشفرة إذا كان من غير المرجح أن تتغير السمات بمرور الوقت. لذلك إذا لم تكن كل العناصر موجودة في المرة القادمة أو لم تكن هناك عناصر جديدة موجودة ، فيمكنك الوقوع في مشكلة.
تعديل التعليمات البرمجية لإلغاء تنشيط أعمدة متعددة ديناميكيًا
فكيف نجعل هذه الديناميكية؟
أول شيء أفعله هو الخطو عبر الكود لمعرفة ما إذا كان هناك مكان يمكننا فيه التقاط قيم السمات دون الحاجة إلى تصميم خطوة منفصلة لتحقيق ذلك. لذلك سوف نعود إلى الوراء خلال الشفرة ، وهذه خطوة RemoveNull مثالية.
يمكنك أن ترى أنه يسرد جميع قيم السمات هنا في العمود الأول. يمكننا استخدام واجهة المستخدم لاستخراجها.
لذلك انقر بزر الماوس الأيمن فوق هذا العنوان ، وأسفل حدد إضافة كاستعلام جديد .
نحصل على هذه القائمة وهذه أخبار جيدة لأننا نريد استبدال تلك القائمة المشفرة التي رأيناها سابقًا بالقائمة الديناميكية. كل ما علينا فعله هو ترتيب القيم.
لنبدأ بإزالة تلك القيم الخالية. لذلك داخل شريط الصيغة ، سنضيف قائمة . كما ترى الآن ، يتم تكرار جميع العناصر وذلك بسبب أزواج القيم. تم إدراجه مرة واحدة للساعات.
ثم مرة أخرى ، بالنسبة لجهات الاتصال ، لإزالة تلك التكرارات ، يمكننا إضافة قائمة مميزة . لقد أنشأنا الآن هذا المنطق وكل ما علينا فعله هو نسخه ولصقه مرة أخرى في نموذج الاستعلام الخاص بنا.
في نموذج الاستعلام ، افتح المحرر المتقدم وأنشئ اسمًا جديدًا للمتغير. دعنا نسميها AttributeList . ثم نلصق الرمز ونضع فاصلة.
دعنا الآن نعود إلى خطوتنا المخصصة. Inside List.Zip ، يمكننا استبدال القائمة الأولى باسم المتغير (AttributeList).
الآن دعونا نلقي نظرة فاحصة على القائمة الثانية. نعلم أنه يشير إلى أسماء الأعمدة ، ويبدأ كل اسم من أسماء الأعمدة بنفس السمة الموجودة بالفعل في تلك القائمة متبوعة بمسافة ونص "ساعات".
نحتاج فقط إلى إضافة لاحقة لكل عنصر. لنعد خطوة للوراء ونضيف عمودًا مخصصًا لإنشاء بعض المنطق.
Unpivot أعمدة متعددة ديناميكيًا: إضافة منطق عمود مخصص
إنه مجرد عمود مؤقت ، لذا لا نحتاج إلى إعطائه اسمًا مناسبًا. سنقوم بإزالته بمجرد الانتهاء.
لتغيير القيم في القائمة ، يمكننا استخدام وظيفة List.Transform . نحتاج إلى تحويل القيم الموجودة في قائمة السمات الخاصة بنا ، لذلك سأقوم بلصقها.
هنا في الرؤوس ، نرى أن القيم النصية تبدأ بحرف كبير ، ثم الباقي بأحرف صغيرة. تحتوي السمة الخاصة بنا على كلمة مكتوبة بأحرف كبيرة فقط ، لذلك يتعين علينا تحويل هذه القيمة النصية أيضًا. ويمكننا استخدام الشرطة السفلية للوصول إلى كل عنصر في القائمة وسنضيف تلك اللاحقة.
مع ذلك ، نحصل على قيمة قائمة في عمودنا. لا يهم أي واحد تختاره ، ولكن فقط انقر على الجانب في المساحة البيضاء في أي منها هنا.
أسفل الصفحة ، نرى معاينة لتلك القائمة التي أنشأناها. لذلك ترى أن رؤوس الأعمدة هذه مغلفة الآن بشكل صحيح بحيث تتطابق مع رؤوس الأعمدة التي نراها هنا مع هذه القائمة.
لدينا الآن الوسائل لتحديد الحقول من سجلنا التي نريد الوصول إليها. لذلك دعونا نفتح مربع حوار العمود المخصص الخاص بنا مرة أخرى ونضيف السجل . إنها تريد تسجيلًا كسجل ، لذا يمكننا استخدام تلك الشرطة السفلية للوصول إلى السجل الحالي الذي نحن فيه. ثم قدمنا له قائمة بجميع أسماء الحقول هذه ، لذا أضف قوس إغلاق واضغط على موافق .
لذلك لم يعد لدينا قائمة ، لكننا الآن نحصل على رقم قياسي. دعنا ننقر على الجانب الموجود في المساحة البيضاء مرة أخرى لعرض محتويات هذا السجل. هنا نرى أنه يسرد أسماء حقول التسجيل وقيم حقل التسجيل.
لكننا مهتمون فقط بقيم حقل التسجيل ، لذلك نحتاج إلى استخراج ذلك. لنعد إلى مربع حوار العمود المخصص ونضيف Record.FieldsValues .
نحصل الآن على قائمة مرة أخرى ولم نعد سجلاً. نضغط على الجانب الموجود في المساحة البيضاء مرة أخرى ، وترى أن لدينا الآن قائمة بهذه القيم فقط. حسنًا ، هذا يبدو جيدًا.
دعنا ننسخ المنطق الكامل الذي أنشأناه ، باستثناء أقواس الإغلاق الأخيرة. والآن يمكننا إزالة العمود المؤقت لأننا لم نعد بحاجة إليه.
في شريط الصيغة الخاص بنا ، نختار قائمتنا الثانية ونستبدلها بمنطقنا.
لإنشاء قائمة بقيم حقول التسجيل لجهات الاتصال ، كل ما نحتاج إلى تغييره هو اللاحقة. حتى نتمكن من تحديد تلك القائمة الأخيرة أيضًا ، ولصقها في منطقنا.
ثم ، بدلاً من ساعات ، دعنا نغير هذا إلى جهات الاتصال .
لا توجد أخطاء وهي تبدو جيدة. يعد هذا الآن حلاً ديناميكيًا لإلغاء تنشيط عدة أعمدة.
أعمدة LuckyTemplates Unpivot - البرنامج التعليمي لـ Power Query
كيفية إلغاء تنشيط الأعمدة في
أساسيات LuckyTemplates Unpivot و Pivot في LuckyTemplates - مراجعة محرر الاستعلام
خاتمة
هذه هي الطريقة التي يمكنك بها إلغاء تنشيط أعمدة متعددة ديناميكيًا في باستخدام List.Zip.
إذا ظهرت سمة جديدة ، فسيتم التقاطها تلقائيًا بواسطة AttributeList. وعندما يختفي عنصر ما ، فلن يكون موجودًا في تلك القائمة.
آمل أن تكون قد استمتعت بهذا. شاهد الفيديو الكامل أدناه للحصول على مزيد من التفاصيل حول هذا البرنامج التعليمي وتحقق من الروابط أدناه لمزيد من المحتوى حول الأعمدة المتعددة غير المحورية في LuckyTemplates.
أتمنى لك كل خير
ميليسا
تعرف على تقنية تصور LuckyTemplates هذه حتى تتمكن من إنشاء قوالب الخلفية واستيرادها إلى تقارير LuckyTemplates الخاصة بك.
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.