Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
— это наиболее часто используемая функция DAX для ранжирования идей в LuckyTemplates. Это простая функция, но она может сбить с толку новичков. Однако это очень мощная функция, которая может дать ценную информацию для ваших отчетов.
В этой статье вы узнаете все тонкости функции RANKX DAX. Вы узнаете, когда и как ее использовать, и увидите, насколько полезна эта функция, когда мы рассмотрим некоторые сценарии и примеры.
Оглавление
Определение и синтаксис функции DAX RANKX
Функция RANKX LuckyTemplates DAX возвращает рейтинг определенного числа в списке чисел для каждой строки в аргументе таблицы. Его можно использовать в расчетах как для вычисляемых столбцов, так и для вычисляемых мер. Ниже приведен синтаксис формулы RANKX.
РАНГX(
, , , ,
)
Для параметра таблицы вы можете ввести стандартную таблицу, импортированную в LuckyTemplates, или вычисляемую таблицу через DAX. RANKX, как итерирующая функция , затем выполняет итерацию по этой таблице и ранжирует определенное число. Это зависит от количества значений в таблице. Например, если в таблице 20 значений, то RANKX будет иметь результат ранжирования от 1 до 20.
Одним из ключей к пониманию функции RANKX является то, что она возвращает скалярное значение . В параметре выражения нам нужно выражение DAX, которое возвращает скалярное значение. Это выражение циклически повторяет каждую строку в таблице, давая вам соответствующие значения ранжирования.
Параметры value и order являются необязательными, а параметр ties помогает определить ранжирование, когда в ваших значениях есть совпадения.
Концепции формул RANKX и LuckyTemplates DAX
Существует ряд концепций, которые нужно хорошо понимать, чтобы убедиться, что результаты ранжирования, которые вы ожидаете, созданы. Я расскажу о самой важной концепции при выполнении вычислений DAX, а именно о « контексте ». Как только вы это сделаете, вы действительно сможете понять, как эффективно использовать функцию RANKX.
RANKX — это очень уникальная функция DAX, которая требует более глубокого понимания ее логики и того, как она на самом деле работает при выполнении вычислений в определенном контексте (например, в таблице или диаграмме в LuckyTemplates).
Каждый отдельный параметр в функции DAX RANKX может изменить способ вычисления результата. Есть несколько параметров, которые вы можете ввести в эту функцию DAX, чтобы понять, как каждый из них может определить базовый результат, который считается важным.
Вот почему важно понимать ключевые элементы и концепции работы RANKX в различных контекстах. Это позволит вам быть уверенным, что ваши расчеты верны и что ваши потребители просматривают информацию, которая действительно имеет смысл.
Базовый сценарий RANKX DAX
Во-первых, давайте взглянем на простой расчет RANKX. В этом примере мы пытаемся определить рейтинг этих продуктов на основе продаж (это также может быть основано на любом показателе) среди всех различных продуктов, которые мы продаем.
В первую очередь нам нужно создать таблицу внутри RANKX для оценки каждого отдельного продукта на основе указанной нами меры. Функцию можно использовать для удаления любого фильтра из таблицы «Продукты» и для оценки каждого отдельного продукта.
Но если мы удалим фильтр (в данном случае функцию ВСЕ ) и просто воспользуемся «Товары», то результат будет другим. Вот почему нам нужно использовать функцию ALL , чтобы получить правильный результат. Вот как вы можете решить простые вычисления RANKX .
Но что, если это станет более сложным? Что, если вам понадобятся результаты ранжирования, основанные не только на общем объеме продаж? Что ж, именно здесь нам нужно понять текущий контекст этого расчета. Нам нужно знать, как мы можем манипулировать контекстом, чтобы получить желаемый результат.
Сложный сценарий RANKX DAX
Попробуем внести точно такую же формулу (показатель рейтинга продукта) в таблицу справа.
Как видите, это дало нам еще один ошибочный результат. Причина этого в том, что у нас также есть столбец «Имя клиента». Если мы еще раз посмотрим на формулу, то увидим, что она не распространяется на каждого отдельного клиента . Мы только оцениваем продукты для каждого конкретного клиента.
Попробуем разобраться в колонке «Имя клиента» .
Даже если мы разберем столбец «Имя клиента», рейтинг продукта все равно будет меняться в зависимости от рейтинга продукта, который они купили. Там много одинаковых чисел. Одним из примеров является ранг 17. В этом случае это может быть связано с тем, что этот конкретный клиент купил только 17 товаров .
Возможно, это то, что вам нужно в этом сценарии. Но что, если вам понадобится что-то более сложное? Что, если вам понадобится ранг от 1 до неопределенного значения контекстов имени клиента и продукта?
Как я уже подчеркивал, важно понимать контекст и то, как мы манипулируем контекстом , чтобы получить желаемый результат.
В нашем примере у нас есть два измерения из двух совершенно разных таблиц. У нас есть столбец «Имя клиента» из таблицы «Клиенты» и столбец «Название продукта» из таблицы «Продукты».
Нам нужно как-то убрать фильтры на эту виртуальную таблицу внутри логики RANKX из обеих двух таблиц. Нам нужно сделать то, что мы сделали в первой таблице (слева), но нам нужно сделать это для обоих столбцов «Имя клиента» и «Имя продукта» в обеих конкретных таблицах.
Затем, в конце концов, мы получим правильный рейтинг через общий объем продаж имени клиента и названия продукта. Вот формула, которую мы можем использовать для этого отдельного сценария.
Функция позволяет нам соединить два столбца или две таблицы. Однако в этом случае мы просто соединим столбцы.
Мы удаляем все фильтры из таблиц Customers и Products. Затем мы пройдемся по каждой отдельной строке в этой виртуальной таблице и оценим или идентифицируем, где находится конкретный ранг для этого конкретного подмножества имени клиента и названия продукта.
Расширенный пример RANKX DAX
Как видно из предыдущих примеров, функция RANKX дает ценную информацию, когда вы используете ее для различных контекстов на странице отчета. Однако это также может быть одной из самых запутанных функций в LuckyTemplates. Это может дать вам разные результаты, которые кажутся правильными, когда на самом деле они неверны. Если вы не будете осторожны, вам придется переработать весь отчет.
Вам нужно хорошо понимать контекст, а затем научиться использовать RANKX в этом контексте.
Я буду углубляться в то, насколько сложным иногда может быть RANKX. Я рассмотрю пример, чтобы вы могли понять многие нюансы работы с этой функцией.
В визуализации ниже у нас есть рейтинг округов, рейтинг штатов и рейтинг регионов штатов.
Управление контекстом расчета может быть затруднено, если вы хотите увидеть их все в одной матрице. Посмотрим на таблицу. Вы можете видеть, что в нем есть информация о штатах, регионах, штатах и округах.
Для этого примера вам нужно определить рейтинг округов. Если в таблице есть только округ, рейтинг округа и общий объем продаж, вы получите правильные результаты ранжирования:
Но как только вы начнете размещать в таблице другие контексты, результат ранжирования начнет накапливаться для каждого округа, который находится в разных штатах и регионах штатов.
Таким образом, вам необходимо определить и изменить контекст расчета , чтобы убедиться, что вы получаете правильный общий рейтинг для каждого округа независимо от того, что выбрано на странице отчета. Всякий раз, когда вы выбираете штат, например Колорадо, формула также обновляется.
Вы также можете сделать выбор, используя State Regions. Если вы выберете «Северо-восток», он покажет правильный рейтинг.
В этом примере для получения рейтинга округа используются две формулы. Это поможет вам понять разницу в результатах, полученных при использовании различных функций DAX вместе с RANKX:
Формула № 1: RANKX с ALL и ALLSELECTED
Функция ALL является ключевой частью этой формулы для ранга округа:
Он манипулирует контекстом в формуле RANKX. Затем он перебирает таблицу «Регионы» и создает результат ранжирования. В этом случае функция ВСЕ фактически работает в каждом округе независимо от исходного контекста.
Эта проблема усложняется, когда вы начинаете накладывать слои на контексты слайсера. При использовании ранжирование будет автоматически обновляться в зависимости от выбора в слайсере. Вы также должны использовать , чтобы поместить дополнительный контекст в результат или изменить контекст вычисления.
Контекст корректируется на основе фильтров в функции РАСЧЕТ. При этом ранжирование будет корректироваться в зависимости от контекста, поступающего от слайсеров штата и региона штата.
Формула № 2: RANKX со всеми и ценностями
Теперь давайте посмотрим на столбец County (Updated).
Вы хотите убедиться, что этот столбец будет продолжать показывать общий рейтинг независимо от того, что выбрано в слайсерах. Каждый округ должен иметь уникальный номер.
Это используемая формула:
В этом примере не было способа расшифровать уникальный округ, поэтому был создан другой столбец. Столбец «Полный округ» включает округ, штат и регион.
Это дает вам хорошее различие между графствами. Таким образом, теперь вы можете работать с виртуальной таблицей округов, которые есть в данных. Прежде чем сделать это, вам нужно удалить контекст ALL из таблицы Regions.
Таким образом, никакого контекста, поступающего из таблицы Region, на данный момент не существует. С помощью функции вы можете вернуть контекст столбца Full County.
Один из вариантов — сослаться на каждый столбец с помощью функции ВСЕ, но лучшая альтернатива — избавиться от всего контекста из регионов и вернуть только полный округ. После того, как внутри CALCULATE были произведены манипуляции с контекстом, функция RANKX начинает свою работу оттуда.
RANKX работает с каждым округом в каждой строке вместе с их общим объемом продаж, а затем ранжирует их. Вот как вы получаете значения от 1 до X в строке округа (обновлено). В результате фильтры и слайсеры не будут иметь значения и не повлияют на ранжирование, поскольку формула настроена на их игнорирование.
Другие примеры практического измерения RANKX LuckyTemplates
Теперь, когда вы изучили основы концепций RANKX и LuckyTemplates DAX, давайте рассмотрим дополнительные примеры использования RANKX. Сначала рассмотрим пример, в котором RANKX используется для поиска верхнего и нижнего значений. В следующем примере RANKX демонстрируется как способ сегментации или группировки результатов.
Поиск верхних и нижних значений с использованием RANKX
Обычно RANKX используется, когда вы хотите узнать свои верхние или нижние значения . Например, если вы хотите найти своих лучших клиентов или самые низкие продукты, вы можете использовать RANKX вместе с другими функциями DAX.
В этом первом примере я покажу вам, как комбинировать RANKX с функциями CALCULATE и , чтобы увидеть, кто является нашими основными клиентами не только в течение статического периода времени, но и во времени. Затем мы продемонстрируем это в матрице продаж наших 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, вы можете написать формулу, написание которой не займет у вас много времени, а затем она станет шаблоном, который вы сможете использовать снова и снова.
Вот мера, которую я создал для этого сценария:
Начнем с функции ВЫЧИСЛИТЬ, потому что без ВЫЧИСЛЕНИЯ ничего не происходит. Затем мы добавляем Total Sales, потому что это то, что мы суммируем.
Затем нам нужно отфильтровать таблицу имен клиентов, которая будет перебирать каждого отдельного клиента, оценивать их рейтинг, а затем смотреть, выше или ниже их рейтинг выше или ниже MIN и MAX, которые мы только что создали.
Следующий шаг — снова использовать функцию и ФИЛЬТР. Затем выберите «Группы клиентов» — таблицу, которую я создал.
Затем мы пройдемся по этой таблице, используя RANKX. Мы рассчитываем общий объем продаж вверху, но таблица «Группы клиентов» на самом деле является рейтингом. Нам нужно получить рейтинг каждого из этих отдельных клиентов, а затем посмотреть, входят ли они в какую-либо из групп, представленных в таблице «Группы клиентов».
Затем мы ранжируем их по общему объему продаж, а затем выбираем DESC, чтобы ранжировать их как 1 для самого высокого и 200 для самого низкого. Затем мы закроем его значением, превышающим для клиентов с самым высоким рейтингом. Наконец, мы будем использовать RANKX с аналогичной логикой, которую мы использовали выше, но с меньшим или равным .
Вы можете использовать этот снова и снова во многих применимых сценариях. RANKX позволяет создавать таблицы динамического ранжирования , что дает вам невероятную информацию о ранжировании.
Заключение
RANKX — простая функция, но не простая в использовании. Ключ в том, чтобы сосредоточиться на его нюансах, чтобы иметь возможность лучше понять функцию. Существует так много способов использования функции RANKX в вычислениях DAX, особенно в сочетании с различными функциями. Вы будете поражены тем, насколько гибкой может быть эта функция в LuckyTemplates.
Примеры, которые я показал вам в этом блоге, определенно являются лучшими способами продемонстрировать RANKX, особенно когда речь идет о его универсальности при расчете любого анализа типа ранжирования. Его можно использовать в различных сценариях.
Ключевым выводом здесь является то, что вам действительно нужно понимать контекст, в который помещается ваша функция RANKX.
Я надеюсь, что вы найдете этот контент полезным и будете использовать его в своей рабочей среде.
Ваше здоровье!
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать