Пользовательская сортировка LuckyTemplates с использованием DAX

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

Оглавление

Наша модель данных

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

Пользовательская сортировка LuckyTemplates с использованием DAX

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

Пользовательская сортировка LuckyTemplates: использование цикла while

Начнем с меры с помощью простого цикла while. 

Пользовательская сортировка LuckyTemplates с использованием DAX

Мы установим наш бюджет на 20000 и сохраним его в переменной Budget, используя _Budget.

Пользовательская сортировка LuckyTemplates с использованием DAX

А затем мы воспользуемся циклом while, создав переменную таблицы VAR_Table

Пользовательская сортировка LuckyTemplates с использованием DAX

Затем мы используем , которые противоречат нашей базовой таблице 4 , и добавляем столбец промежуточных сумм, используя «_RT» .

Пользовательская сортировка LuckyTemplates с использованием DAX

Затем мы получаем [Analyzed ROI] в нашей текущей строке, сохраненной как VAR_ROI . Затем мы берем наш бюджет . Из него мы вычитаем , фильтруем таблицу 4 для анализируемого ROI, который больше или равен ROI, который мы получаем для нашей текущей строки, и получаем [Cost ]

Пользовательская сортировка LuckyTemplates с использованием DAX

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

Затем мы выходим из цикла while. Мы создаем нашу переменную FinalTable с помощью VAR_FinalTable , где мы просто фильтруем нашу переменную Table для текущей суммы , которая больше или равна нулю. Мы применяем этот фильтр, потому что все, что ниже нуля, означает, что мы стали отрицательными и бюджет вышел за рамки бюджета.

Пользовательская сортировка LuckyTemplates с использованием DAX

Затем мы можем использовать для этих значений. Мы включим наши столбцы — «Кампании», «Проанализированная рентабельность инвестиций» и «Стоимость» — и добавим .

Пользовательская сортировка LuckyTemplates с использованием DAX

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

Пользовательская сортировка LuckyTemplates с использованием DAX

Давайте проверим нашу исходную таблицу, чтобы сравнить результаты.

Пользовательская сортировка LuckyTemplates с использованием DAX

Мы видим, что PPC действительно имеет более низкий ROI, чем SEM и Instagram. 

Однако, как вы, возможно, заметили, наш результат не вернулся в правильном порядке: Instagram 8.1 показал сначала перед SEM 8.15. 

Применение порядка сортировки LuckyTemplates

Но что, если мы хотим, чтобы Instagram возвращался первым, потому что у него самый высокий ROI и SEM, который должен быть возвращен вторым? По сути, мы хотим гарантировать порядок сортировки. Это немного сложно, но нетрудно понять, как это сделать.

Вот как должна выглядеть наша функция, где нижняя часть будет такой же, как в цикле while, который у нас был ранее.

Пользовательская сортировка LuckyTemplates с использованием DAX

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

Опять же, мы начинаем с нашего VAR_Budget , который мы установили на 20000. Затем мы создаем нашу переменную Count, используя VAR_Count I, и применяем к таблице 4. 

Пользовательская сортировка LuckyTemplates с использованием DAX

В следующей строке мы будем использовать функцию CONCATENATEX для объединения наших столбцов Campaigns, Analyzed ROI и Cost. Вы можете использовать что угодно в качестве разделителя, если его нет в ваших данных, поэтому в этом случае давайте просто используем звездочки. 

Затем мы будем использовать символ вертикальной черты (|) в следующем параметре после столбца стоимости. Мы также будем использовать VAR_Ordered для сортировки по проанализированному ROI в порядке убывания, что означает, что самый высокий ROI будет вверху.

Пользовательская сортировка LuckyTemplates с использованием DAX

Если мы посмотрим на строку комментария, там сказано, что код выдаст нам результат в формате вроде SEM*8.158*10000 | Инстаграм*8.1*10000 . Он также будет отображаться в порядке от самого высокого ROI до самого низкого ROI. 

Пользовательская сортировка LuckyTemplates: использование цикла For

Этот пример интересен тем, что мы получаем цикл for , цикл while и всевозможные классные функции. На этот раз мы будем использовать цикл for

Таблица 1

В этом примере Table1 является нашим циклом for, и то, что мы делаем, это ДОБАВЛЯЕМ КОЛОННЫ к , которые идут от единицы до нашего счета на единицу, записанную как (1,_Count,1).

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

Мы также используем Value , наш автоматический столбец, созданный с помощью GENERATESERIES , или наши календари 1, 2, 3, 4, 5, пока мы не исчерпаем количество строк, которые есть в нашей таблице. Затем мы возвращаем его обратно как Text

Пользовательская сортировка LuckyTemplates с использованием DAX

Теперь у нас есть гарантированный порядок сортировки для нашей таблицы, который идет от самого высокого ROI к самому низкому. Итак, вот ваш DAX для гарантированного порядка сортировки. 

Таблица 2

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

Давайте воспользуемся еще одним ADDCOLUMNS , чтобы добавить в таблицу 1 наш цикл for. Для кампаний создайте столбец кампаний и используйте , чтобы заменить звездочки вертикальной чертой. Затем мы будем использовать PATHITEM в RowPath, чтобы получить первый элемент и вернуть его как ТЕКСТ.

Пользовательская сортировка LuckyTemplates с использованием DAX

В столбце «Анализированная рентабельность инвестиций» мы будем делать то же самое. ЗАМЕНИТЕ звездочки трубочками. Затем возьмите второй элемент на нашем пути и верните его как ТЕКСТ. Мы делаем это, потому что по какой-то причине PATHITEM позволяет нам возвращать целое число или текст, но не десятичные числа.

Это немного странно, но мы можем решить эту проблему, потому что все, что нам нужно сделать, это добавить ноль, и DAX автоматически преобразует строку TEXT в числовое значение. 

Пользовательская сортировка LuckyTemplates с использованием DAX

Опять же, мы делаем то же самое для столбца «Стоимость» . Мы используем ПОДСТАВИТЬ и ПУТЬ , чтобы получить третий элемент. Затем, чтобы вернуть число, мы снова добавляем ноль, потому что в данном случае это целое число.

Пользовательская сортировка LuckyTemplates с использованием DAX

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

Пользовательская сортировка LuckyTemplates с использованием DAX

Наш SEM был нашим самым высоким ROI для нашей кампании, а Instagram — вторым. 


Внешние инструменты в LuckyTemplates — LuckyTemplates Power Sort Pro
Как сортировать и фильтровать диаграммы в построителе отчетов
Динамическая сортировка визуализаций в отчетах LuckyTemplates

Заключение

Используя циклы while и for, мы успешно использовали пользовательскую сортировку LuckyTemplates в нашей модели данных на основе их ROI — доказательство того, что DAX определенно может гарантировать порядок сортировки. 

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

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

Грег Деклер

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в 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 для своих бизнес-отчетов.