ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
هي دالة DAX الأكثر استخدامًا لترتيب الرؤى في LuckyTemplates. إنها وظيفة بسيطة ، لكنها قد تكون محبطة للمبتدئين. ومع ذلك ، فهي وظيفة قوية للغاية يمكن أن تسفر عن رؤى قيمة لتقاريرك.
في هذه المقالة ، ستعرف خصوصيات وعموميات وظيفة RANKX DAX. سوف تتعلم متى وكيف تستخدمها وسترى مدى فائدة هذه الوظيفة بينما نستكشف بعض السيناريوهات والأمثلة.
جدول المحتويات
تعريف دالة DAX RANKX وصياغتها
ترجع الدالة RANKX LuckyTemplates DAX ترتيب رقم معين في قائمة الأرقام لكل صف في وسيطة الجدول. يمكن استخدامه في العمليات الحسابية لكل من الأعمدة المحسوبة والمقاييس المحسوبة. يوجد أدناه بناء جملة صيغة RANKX.
RANKX (
، ، ، ،
)
بالنسبة لمعلمة الجدول ، يمكنك إدخال جدول قياسي تم استيراده في LuckyTemplates أو جدول محسوب عبر DAX. RANKX ، كدالة متكررة ، تتكرر من خلال هذا الجدول وترتب رقمًا محددًا. هذا يعتمد على عدد القيم داخل الجدول. على سبيل المثال ، إذا كان الجدول يحتوي على 20 قيمة ، فستحصل RANKX على نتيجة ترتيب من 1 إلى 20.
مفتاح واحد لفهم دالة RANKX هو أنها تُرجع قيمة عددية . ضمن معلمة التعبير ، نحتاج إلى تعبير DAX يقوم بإرجاع قيمة عددية. يتكرر هذا التعبير ويتكرر خلال كل صف داخل الجدول ، مما يمنحك قيم الترتيب وفقًا لذلك.
معلمات القيمة والنظام اختيارية ، بينما تساعدك معلمة الروابط في تحديد الترتيب عند وجود روابط في قيمك.
مفاهيم صيغة RANKX و LuckyTemplates DAX
هناك عدد من المفاهيم التي يجب فهمها جيدًا للتأكد من إنشاء نتائج الترتيب التي تتوقعها. سأناقش أهم مفهوم عند تشغيل حساب DAX ، وهو " السياق ". بمجرد أن تثبت ذلك ، يمكنك حقًا فهم كيفية استخدام وظيفة RANKX بشكل فعال.
RANKX هي دالة DAX فريدة للغاية تتطلب مستوى أعمق من التفكير حول منطقها وكيف تعمل بالفعل عند تشغيل عملية حسابية في سياق معين (على سبيل المثال ، جدول أو مخطط داخل LuckyTemplates).
يمكن لكل معلمة مختلفة داخل دالة DAX RANKX تغيير الطريقة التي تحسب بها النتيجة. هناك العديد من المعلمات التي يمكنك إدخالها في دالة DAX هذه لفهم كيف يمكن لكل منها تحديد النتيجة الأساسية ، والتي تعتبر مهمة.
هذا هو السبب في أن فهم العناصر والمفاهيم الأساسية لكيفية عمل RANKX في مجموعة متنوعة من السياقات يعد أمرًا ضروريًا. سيمكنك هذا من التأكد من صحة حساباتك وأن المستهلكين يشاهدون رؤى منطقية بالفعل.
سيناريو أساسي RANKX DAX
أولاً ، دعنا نلقي نظرة على حساب RANKX البسيط. في هذا المثال ، نحاول تحديد ترتيب هذه المنتجات بناءً على المبيعات (يمكن أن يستند هذا أيضًا إلى أي مقياس) عبر جميع المنتجات المختلفة التي نبيعها.
في المقام الأول ، نحتاج إلى إنشاء جدول داخل RANKX لتقييم كل منتج بناءً على المقياس الذي حددناه. يمكن استخدام وظيفة لإزالة أي مرشح من جدول المنتجات ولتقييم كل منتج على حدة.
ولكن إذا أزلنا الفلتر (في هذه الحالة ، وظيفة ALL ) ، واستخدمنا "المنتجات" فقط ، فستظهر نتيجة مختلفة. هذا هو السبب في أننا نحتاج إلى استخدام وظيفة ALL للحصول على النتيجة الصحيحة. هذه هي الطريقة التي يمكنك بها حل حسابات RANKX البسيطة.
لكن ماذا لو أصبحت أكثر تعقيدًا؟ ماذا لو كنت بحاجة إلى نتائج مرتبة لا تعتمد فقط على إجمالي المبيعات؟ حسنًا ، هذا هو المكان الذي نحتاج فيه إلى فهم السياق الحالي لهذه الحسابات. نحتاج إلى معرفة كيف يمكننا معالجة السياق للحصول على النتيجة التي نريدها.
سيناريو RANKX DAX المعقد
دعنا نحاول إدخال الصيغة المماثلة بالضبط (مقياس ترتيب المنتج) في الجدول الموجود على الجانب الأيمن.
كما ترى ، فقد أعطانا نتيجة خاطئة أخرى. السبب وراء ذلك هو أن لدينا أيضًا عمود اسم العميل هنا. إذا نظرنا إلى الصيغة مرة أخرى ، فسترى أنها لا تفرق بين كل عميل على حدة . نحن نقوم فقط بتقييم المنتجات لكل عميل محدد.
دعنا نحاول فرز عمود اسم العميل .
حتى إذا قمنا بفرز عمود "اسم العميل" ، فسيظل ترتيب المنتج يتغير بناءً على ترتيب المنتج الذي اشتروه. هناك الكثير من الأرقام المتشابهة. أحد الأمثلة على ذلك هو المرتبة 17. في هذه الحالة ، قد يكون السبب هو أن هذا العميل المحدد اشترى 17 منتجًا فقط .
ربما هذا ما تحتاجه في هذا السيناريو. ولكن ماذا لو كنت بحاجة إلى شيء أكثر تعقيدًا من ذلك بقليل؟ ماذا لو كنت بحاجة إلى رتبة من 1 إلى قيمة غير محددة من سياقات اسم العميل والمنتج؟
كما أكدت ، من المهم فهم السياق وكيف نتعامل مع السياق للحصول على النتيجة التي نريدها.
في مثالنا ، لدينا بعدين من جدولين مختلفين تمامًا. لدينا عمود اسم العميل من جدول العملاء وعمود اسم المنتج من جدول المنتجات.
نحتاج إلى إزالة عوامل التصفية بطريقة ما على هذا الجدول الافتراضي داخل منطق RANKX من كلا الجدولين. نحتاج إلى القيام بما فعلناه في الجدول الأول (الجانب الأيسر) ، لكننا نحتاج إلى القيام بذلك عبر كل من عمودي اسم العميل واسم المنتج في كلا الجدولين المعينين.
ثم في النهاية ، سنحصل على الترتيب الصحيح من خلال إجمالي مبيعات اسم العميل واسم المنتج. هذه هي الصيغة التي يمكننا استخدامها لهذا السيناريو المميز.
تسمح لنا وظيفة بربط عمودين معًا ، أو يمكن أن تكون أيضًا جدولين. ومع ذلك ، في هذه الحالة ، سنقوم فقط بربط الأعمدة.
نقوم بإزالة جميع عوامل التصفية من كل من جداول "العملاء" و "المنتجات". بعد ذلك ، سنقوم بالتكرار خلال كل صف واحد في هذا الجدول الافتراضي وتقييم أو تحديد التصنيف المعين لمجموعة فرعية من اسم العميل واسم المنتج.
مثال متقدم لـ RANKX DAX
كما ترى في الأمثلة السابقة ، تمنحك وظيفة RANKX رؤى قيمة عند استخدامها لمجموعة من السياقات المختلفة في صفحة تقريرك. ومع ذلك ، يمكن أن تكون أيضًا إحدى الوظائف الأكثر إرباكًا لاستخدامها في LuckyTemplates. يمكن أن يعطيك نتائج مختلفة تبدو صحيحة ، في حين أنها في الواقع خاطئة. إذا لم تكن حريصًا ، فسينتهي بك الأمر إلى إعادة صياغة التقرير بالكامل.
أنت بحاجة إلى فهم قوي للسياق ثم تعلم كيفية استخدام RANKX في هذا السياق.
سأستكشف مدى تعقيد RANKX في بعض الأحيان. سأعمل من خلال مثال حتى تتمكن من فهم الفروق الدقيقة العديدة للعمل مع هذه الوظيفة.
في الرسم المرئي أدناه ، لدينا تصنيف المقاطعة وترتيب الولايات وترتيب مناطق الولاية.
قد تكون إدارة سياق الحساب أمرًا صعبًا إذا كنت تريد رؤيتها جميعًا في مصفوفة واحدة. لنلق نظرة على الجدول. يمكنك أن ترى أن لديها معلومات عن مناطق الولاية والولاية والمقاطعة.
في هذا المثال ، تحتاج إلى تحديد ترتيب المقاطعات. إذا كان لديك فقط المقاطعة ، وترتيب المقاطعة ، وإجمالي المبيعات في الجدول ، فستحصل على نتائج الترتيب الصحيحة:
ولكن بمجرد أن تبدأ في وضع طبقات من السياقات الأخرى في الجدول ، تبدأ نتيجة الترتيب في التراكم لكل مقاطعة في ولايات ومناطق ولاية مختلفة.
لذلك ، تحتاج إلى تحديد وتغيير سياق الحساب للتأكد من حصولك على الترتيب العام الصحيح لكل مقاطعة بغض النظر عما تم تحديده في صفحة التقرير. عندما تحدد ولاية مثل كولورادو ، يتم تحديث الصيغة أيضًا.
يمكنك أيضًا إجراء تحديد باستخدام مناطق الولاية. إذا حددت Northeast ، فسيظهر الترتيب المناسب.
في هذا المثال ، يتم استخدام صيغتين للحصول على تصنيف المقاطعة. سيساعدك هذا في فهم الاختلاف في النتائج الناتجة عن استخدام وظائف DAX المختلفة مع RANKX:
الصيغة رقم 1: RANKX مع ALL والمحددة
تعد وظيفة ALL هي الجزء الأساسي من هذه الصيغة في تصنيف المقاطعة:
يعالج السياق داخل صيغة RANKX. ثم يتكرر من خلال جدول المناطق وينشئ نتيجة الترتيب. في هذه الحالة ، تعمل وظيفة ALL افتراضيًا في كل مقاطعة بغض النظر عن السياق الأولي.
تصبح هذه المشكلة معقدة عندما تبدأ في الطبقة على سياقات تقطيع الشرائح. باستخدام ، سيتم تحديث الترتيب تلقائيًا اعتمادًا على التحديد في أداة التقطيع. تحتاج أيضًا إلى استخدام لوضع سياق إضافي على نتيجة أو لتغيير سياق الحساب.
يتم ضبط السياق بناءً على عوامل التصفية داخل دالة CALCULATE. مع هذا ، سيتم تعديل الترتيب بناءً على السياق القادم من تقطيعات منطقة الولاية والولاية.
الصيغة رقم 2: RANKX مع كل القيم
دعنا الآن نلقي نظرة على عمود المقاطعة (المحدث).
تريد التأكد من أن هذا العمود سيستمر في إظهار الترتيب العام بغض النظر عما تم تحديده في مقسمات طرق العرض. يجب أن يكون لكل مقاطعة رقم فريد.
هذه هي الصيغة المستخدمة:
في هذا المثال ، لم تكن هناك طريقة لفك تشفير مقاطعة فريدة ، لذلك تم إنشاء عمود آخر. يشتمل عمود المقاطعة الكاملة على المقاطعة والولاية والمنطقة.
يمنحك هذا تمييزًا جيدًا بين المقاطعات. بهذه الطريقة ، يمكنك الآن عمل جدول افتراضي للبلديات الموجودة في البيانات. قبل القيام بذلك ، تحتاج إلى إزالة سياق الكل من جدول المناطق.
لذا ، فإن أي سياق قادم من جدول المنطقة غير موجود في الوقت الحالي. باستخدام وظيفة ، يمكنك إضافة سياق عمود Full County مرة أخرى.
يتمثل أحد الخيارات في الإشارة إلى كل عمود باستخدام وظيفة ALL ، ولكن البديل الأفضل هو التخلص من كل السياق من "المناطق" وإعادة "المقاطعة الكاملة" فقط. بمجرد معالجة السياق داخل CALCULATE ، تبدأ وظيفة RANKX عملها من هناك.
تعمل RANKX في كل مقاطعة في كل صف جنبًا إلى جنب مع إجمالي مبيعاتها ثم تقوم بترتيبها. هذه هي الطريقة التي تحصل بها على القيم من 1 إلى X ضمن صف المقاطعة (المُحدَّث). نتيجة لذلك ، لن تكون عوامل التصفية وتقطيع الشرائح مهمة ولن تؤثر على الترتيب لأنه تم تعيين الصيغة لتجاهلها.
أمثلة عملية أخرى لـ RANKX لقياس LuckyTemplates
الآن بعد أن تعلمت أساسيات مفاهيم RANKX و LuckyTemplates DAX ، دعنا نستكشف المزيد من الأمثلة عن كيفية استخدام RANKX. أولاً ، انتقل إلى مثال حيث يتم استخدام RANKX للعثور على القيم العليا والسفلى. يعرض المثال التالي RANKX كطريقة لتقسيم النتائج أو تجميعها.
البحث عن القيم العليا والسفلى باستخدام RANKX
الاستخدام الشائع لـ RANKX هو عندما تريد معرفة القيم العليا أو الدنيا . على سبيل المثال ، إذا كنت تريد العثور على أفضل العملاء أو المنتجات السفلية لديك ، فيمكنك استخدام RANKX مع وظائف DAX الأخرى.
في هذا المثال الأول ، سأوضح لك كيفية دمج وظائف RANKX مع وظائف CALCULATE و لمعرفة من هم أفضل عملائنا ، ليس فقط لفترة زمنية ثابتة ولكن أيضًا عبر الزمن. بعد ذلك ، سنعرضه في مصفوفة مبيعات لأفضل 10 عملاء لدينا.
عندما نضع مقاييس الربع والسنة وإجمالي المبيعات في مصفوفة ، نحصل على جميع النتائج. هذا أمر رائع ، ولكن قد يكون من الصعب جدًا رؤية أي رؤية أو اتجاهات موضعية.
نريد أن نرى الاتجاهات ونحدد من هم أفضل 10 عملاء لدينا لهذه الفترة. على سبيل المثال ، هل كان لدينا عميل كان لفترة من الوقت أحد كبار عملائنا ولكنه تلاشى تمامًا؟ هذه هي نوع الأفكار التي نبحث عنها.
يمكننا القيام بذلك باستخدام صيغة واحدة. هذا هو المقياس الذي قمت بإنشائه باستخدام وظيفة CALCULATE لحساب إجمالي مبيعاتنا للعملاء الذين يجلسون ضمن أفضل 10.
يتعين علينا استخدام منطق الترتيب لإنشاء مؤشر منطق الترتيب الذي سيقول أنه إذا كان هذا العميل في أعلى 10 ، فقم بإرجاع قيمة إجمالي المبيعات هذه. بصرف النظر عن استخدام RANKX في LuckyTemplates ، سنستخدم أيضًا وظيفة FILTER ثم نستخدم VALUES ، والتي ستنشئ جدولًا داخليًا لكل عميل على حدة.
ثم نحتاج إلى التفكير في أي منطق نكتبه هنا ، شيء يقول "إذا كان الترتيب الحالي أقل من أو يساوي 10 يساوي إجمالي المبيعات إذا لم يكن كذلك ، فسيكون فارغًا". ما هو رائع حقًا في عبارات التصفية مثل هذا هو أنه يمكنك كتابة هذا النوع من المنطق بالداخل.
لذلك ، سنستخدم وظيفة RANKX وجميع أسماء العملاء لأننا سنصنف كل عميل في أي سياق معين. يتخلص نظام ALL من أي مرشح لأسماء العملاء حتى نتمكن من إكمال هذا الترتيب.
سنقوم بعد ذلك بالترتيب حسب إجمالي المبيعات وترتيبنا بترتيب تنازلي ، ثم ننتقل إلى أقل من أو يساوي 10. كان الأمر كذلك ، فنحن نريده أن يساوي إجمالي المبيعات ، وإذا لم يكن كذلك ، فسيكون فارغًا.
أخيرًا ، سنقوم باستبدال إجمالي مبيعاتنا بأهم 10 عملاء لدينا. يمكننا رؤية أفضل 10 عملاء لكل فترة زمنية واحدة وتنفيذ التنسيق الشرطي لجعله أفضل بصريًا. يمكننا أيضًا استخدام التنسيق الشرطي للحصول على رؤى أكثر إقناعًا.
إذا كنت تبيع للعملاء مرات عديدة ، فستحتاج إلى تقصير الإطار الزمني ؛ ولكن إذا كنت تبيع فقط للعملاء 2 أو 3 مرات في السنة ، فأنت تريد تحليل الأشياء من إطار زمني طويل الأجل.
هناك دالة DAX أخرى ، تسمى TOPN ، والتي تُستخدم أيضًا لرؤى الترتيب. ومع ذلك ، لا يزال هناك . ضع في اعتبارك أن TOPN هي دالة جدول بينما تقوم RANKX بإرجاع قيمة عددية . المفتاح هو فهم السياق الذي تضع فيه هذه الوظائف.
الجمع بين التجميع الديناميكي باستخدام LuckyTemplates RANKX
هناك طريقة أخرى رائعة لاستخدام RANKX وهي تقسيم النتائج أو تجميعها بدلاً من مجرد عرض النتائج بأنفسهم دون أي سياق.
في هذا المثال ، بدلاً من عرض نتيجة مبيعات عامة فقط ، أريد معرفة ما إذا كان العميل في أعلى النتائج مرتبة ثم معرفة ما إذا كان يتغير بمرور الوقت. أريد أن أفهم مقدار مبيعاتنا التي تأتي من أفضل 5 عملاء لدينا ، وأفضل 5 إلى 20 ، ثم بقية عملائنا.
لمعرفة ما إذا كان هناك اتجاه يحدث ، نحتاج إلى إنشاء مجموعات ديناميكية وتقييمها بمرور الوقت. هذا صعب للغاية ، خاصة إذا كنت تعمل من Excel. ولكن إذا كنت تفهم DAX جيدًا حقًا ، فيمكنك كتابة صيغة لا تستغرق وقتًا طويلاً في كتابتها على الإطلاق ، ثم تصبح نمطًا يمكنك استخدامه مرارًا وتكرارًا.
هذا هو المقياس الذي قمت بإنشائه لهذا السيناريو:
نبدأ بوظيفة CALCULATE لأنه لا شيء يحدث بدون CALCULATE. ثم نضيف إجمالي المبيعات لأن هذا هو ما نلخصه.
بعد ذلك ، نحتاج إلى تصفية جدول أسماء العملاء الذي سيتكرر من خلال كل عميل على حدة ، وتقييم ترتيبهم ، ثم معرفة ما إذا كان ترتيبهم أعلى أو أدنى من MIN و MAX اللذين أنشأناهما للتو.
الخطوة التالية هي استخدام وظيفة ووظيفة التصفية مرة أخرى. ثم اختر مجموعات العملاء ، وهو الجدول الذي قمت بإنشائه.
بعد ذلك ، سوف نكرر هذا الجدول باستخدام RANKX. نحن نحسب إجمالي المبيعات في الأعلى ولكن جدول مجموعات العملاء هو في الواقع الترتيب. نحتاج إلى الحصول على ترتيب كل من هؤلاء العملاء الفرديين ثم معرفة ما إذا كانوا ضمن أي من المجموعات الموجودة في جدول مجموعات العملاء.
سنقوم بعد ذلك بترتيبهم حسب إجمالي المبيعات ، ثم نختار DESC لتصنيفهم على أنه 1 للأعلى و 200 للأدنى. سنغلقه بعد ذلك مع أكبر من للعملاء الأعلى تصنيفًا. أخيرًا ، سنستخدم RANKX بالمنطق المماثل الذي استخدمناه أعلاه ، ولكن بعد ذلك بأقل من أو يساوي .
يمكنك استخدام هذا مرارًا وتكرارًا في العديد من السيناريوهات القابلة للتطبيق. يمكّنك RANKX من إنشاء جداول ترتيب ديناميكية ، مما يمنحك رؤى تصنيفية لا تصدق.
خاتمة
RANKX هي وظيفة بسيطة ، ولكنها ليست سهلة الاستخدام. المفتاح هو التركيز على الفروق الدقيقة حتى تتمكن من فهم الوظيفة بشكل أفضل. هناك العديد من الطرق لوظيفة RANKX في حسابات DAX ، خاصةً عند دمجها مع وظائف مختلفة. ستندهش من مدى مرونة هذه الوظيفة داخل LuckyTemplates.
الأمثلة التي عرضتها عليك في هذه المدونة هي بالتأكيد أفضل الطرق لإثبات RANKX ، خاصة عندما يتعلق الأمر بتنوعها في حساب أي تحليل لنوع الترتيب. يمكن استخدامه في عدد من السيناريوهات المختلفة.
الخلاصة الرئيسية هنا هي أنك تحتاج حقًا إلى فهم السياق الذي يتم فيه وضع وظيفة RANKX الخاصة بك.
آمل أن تجد هذا المحتوى مفيدًا وأن تستخدمه في بيئة عملك.
هتافات!
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته