RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Я собираюсь показать вам, как создавать собственные средства разрешения конфликтов при использовании RANKX в LuckyTemplates .

Ничья в критической части результатов — распространенный сценарий. Есть несколько способов разрешения конфликтов, которые вы можете использовать, но важно выбрать тот, который лучше всего подходит для каждой ситуации. Вы можете посмотреть полное видео этого урока в нижней части этого блога.

Оглавление

Роль RANKX в LuckyTemplates

У меня есть привычка сравнивать функции DAX с рабочими местами в реальной жизни. Это помогает мне связать каждую функцию с тем, что она делает в LuckyTemplates.

RANKX оценивает и упорядочивает элементы в соответствии с определенным набором критериев. В реальном мире это можно сравнить с судьей на выставке собак, который просит участников выстроиться соответствующим образом.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

В сценарии, который я буду использовать сегодня, я собираюсь использовать RANKX в качестве судьи для гипотетического конкурса продаж. Данные включают в себя цифры от отдела продаж, и приз достается человеку с самым высоким общим объемом продаж за месяц .

Чтобы было интересно, давайте представим, что 1-й приз — это Cadillac El Dorado, а 2-й приз — набор ножей для стейков. Это огромный разрыв в стоимости, что означает, что может быть только один победитель.

Глядя на свою таблицу, я вижу список всех продавцов в отделе продаж.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Я добавлю данные для общего объема продаж каждого человека .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Это показатель RANKX , который я применяю к этой таблице.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Это просто базовая конфигурация RANKX , в которой используется , поэтому я не включаю Итого при сортировке рангов.

продавцов ранжируются на основе объема продаж . Они расположены в порядке DESC . Здесь я использую Skip на случай ничьей.

Некоторые могут использовать Dense вместо Skip , но в данном случае это не помогает.

Пропустить против плотного

Чтобы продемонстрировать, как пропуск влияет на меру, я перетащу ранги в таблицу.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Затем я собираюсь отсортировать данные по Rank .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

В таблице показана ничья за первое место. Но это был не лучший месяц для отдела продаж, поэтому менеджер не может позволить себе раздать 2 Cadillac El Dorados. Это означает, что мне нужно придумать тай-брейк, чтобы решить, кому достанется машина, а кому ножи для стейков.

Джаспер и Макс находятся наверху, делят номер 1. Поскольку я использовал Skip, вы увидите, что ранг подскакивает до 3 после двух единиц сверху . Это не работает для меня, потому что у меня все еще остается 2 победителя.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Что произойдет, если я использую Dense вместо Skip ?

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Если я использую Dense , сам галстук не пострадает. Но вместо цифры 3 после ничьей показывается цифра 2 .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Очевидно, Dense и в этом случае не работает. Это означает, что мне нужно будет применить настраиваемый инструмент разрешения конфликтов.

Выбор пользовательского тай-брейка

Хороший пользовательский тай-брейк определяется двумя основными характеристиками.

Во-первых, необходимо осмысленно различать связанные элементы. Это должен быть фактор, разделяющий два или более связанных элемента.

Во-вторых, он не должен изменять ранг или порядок несвязанных элементов.

Размышляя об этих двух аспектах, легко придумать ряд решений для тай-брейков.

Общий объем продаж является нашим основным фактором ранжирования.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Поэтому я должен подумать о других факторах, которые можно использовать для устранения ничьей, вызванной сходными данными в двух верхних строках.

Количество продаж может быть один. Кто суетится больше всего? У кого больше всего клиентов?

Также можно посмотреть на максимальную продажу, проверив, кто получил самые большие счета.

Я мог бы также посмотреть на средние продажи.

В этом случае я решил пойти с Median Sales . На него не так сильно влияют выбросы, исходящие как от верхнего, так и от нижнего пределов. Это означает, что он может дать лучшее измерение центральной тенденции.

Создание пользовательского разрешения конфликтов

При создании тай-брейка требуется немало DAX, но концепция проста.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

У меня есть Ranking2 в качестве переменной. Я также использовал HASONEVALUE по той же причине, по которой ранее использовал его в основном шаблоне RANKX . Единственная разница здесь в том, что на этот раз я использую Median Sales вместо Total Sales .

Затем я беру результат этой переменной и делю его на 100.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Поскольку у меня есть целые числа в моем общем объеме продаж, я могу играть с 1-м и 2-м десятичными знаками, чтобы исправить ничью. Разделив это на сто, мы получим числа за десятичной запятой, чтобы различать связанные числа сверху, не влияя на остальные результаты.

Это оставляет нас с верхними рангами, показывающими 0,01, 0,02 и так далее. Так что я собираюсь перевернуть это так, чтобы высший рейтинг получил наивысший балл на тай-брейке.

Итак, в HASONEVALUE я вычту RankScale из 1 .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Когда я применю это к таблице, вы увидите, что теперь у меня есть два десятичных знака под моим RANKX Tiebreaker .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Я также собираюсь перетащить в таблицу свои медианные продажи , чтобы более четко показать вам влияние нашего тай-брейка.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Глядя на эти цифры, видно, что ни Макс, ни Джаспер не получили наивысших оценок. На самом деле это был Мартин Перри.

Но помните, что это всего лишь решающий фактор , и общий объем продаж по-прежнему остается основным фактором ранжирования . Это означает, что я должен сравнивать числа только для связанных рядов .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Так что я просто добавлю свой Total Sales и RANKX Tie-break, чтобы получить цифры для столбца Total Sales Tiebreak .

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Я запущу RANKX для нового общего объема продаж с применением разрешения конфликтов и отсортирую данные.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Теперь он показывает полный прогон от 1 до n без связанных элементов.

Использование функции RAND для разрыва связей

Могут быть случаи, когда случайно сгенерированное число может служить решающим фактором.

Одним из примеров может быть ситуация, когда вам нужна фокус-группа, включающая случайный выбор из 20 лучших продавцов. Если внутри группы есть ничьи, разумно просто использовать случайное число в качестве тай-брейка.

Но проблема с Power Query и DAX в целом заключается в том, что случайные функции ведут себя по-разному . Вы не получите ожидаемых результатов, особенно если используете в итерационной функции.

RAND возвращает случайное число от 0 до 1 . Поэтому, если вы решите, что сценарий, над которым вы работаете, нуждается в случайно сгенерированном числе, чтобы разорвать ничью, в идеале это будет сделано в этой части меры.

RANKX в LuckyTemplates — разработка пользовательских разрешений конфликтов

Вместо просто Total Sales должен отображаться Total Sales плюс RAND . Но опять же, в этом конкретном сценарии это не даст мне окончательного результата ранжирования, который мне нужен.


Рекомендации по RANKX — концепции формул LuckyTemplates и DAX
Более глубокое понимание расширенного RANKX
Создание таблиц динамического ранжирования с использованием RANKX в LuckyTemplates

Заключение

Как вы видели в этом примере, разрешить ничью при использовании RANKX в LuckyTemplates довольно просто. Хитрость заключается в том, чтобы выяснить, какой пользовательский тай-брейк дает наиболее логичные результаты.

В будущем я собираюсь сделать больше руководств по другим методам разрешения конфликтов, особенно по использованию RAND в сценарии выборки. Я считаю, что стоит посмотреть глубже.

А пока я надеюсь, что использование этого подхода сработает для вас, если вы работаете над подобным сценарием в данный момент или если вы столкнетесь с чем-то подобным в будущем.

Всего наилучшего

***** Изучаете LuckyTemplates? *****







Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать