Расчет недельных продаж с помощью DAX в LuckyTemplates
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Виртуальная таблица LuckyTemplates — моя любимая тема DAX. Они являются ключом к раскрытию всей мощи DAX. Виртуальные таблицы — это единственный полностью динамический тип таблиц в LuckyTemplates, и есть проблемы, которые можно решить, только применяя методы виртуальных таблиц в ваших мерах. Вы можете посмотреть полное видео этого урока в нижней части этого блога.
В этом руководстве я поделюсь своими пятью лучшими советами и приемами, которые я накопил за многие годы и которые действительно помогли мне понять и отладить то, что происходит в виртуальных таблицах Power Bi.
Пример, который я собираюсь рассмотреть сегодня, взят с , и он исходит от участника по имени Дэйв С, который работает в области промышленной безопасности. У Дэйва был ряд оценок безопасности, и он хотел нормализовать их, чтобы высшая оценка равнялась 10, а затем динамически получить N-е место в этом списке.
Первоначально мы думали сделать это с помощью простой меры , но позже поняли, что многие его нормализованные значения имеют связи. Например, если вам нужен седьмой элемент в списке, в RANKX не будет числа семь. Нет простого способа извлечь это из условия фильтра. Поэтому мы решили использовать меру на основе , чтобы она всегда отсчитывала n-е число.
Это похоже на то, когда вы берете седьмую карту из колоды, отсчитываете семь карт, а затем переворачиваете стопку из семи карт, и нижняя карта оказывается той, что вам нужна. Мы собираемся сделать то же самое в показателе TOPN.
Оглавление
Совет № 1. Используйте внешний инструмент для визуализации виртуальной таблицы LuckyTemplates
Вы можете использовать DAX Studio или табличный редактор. В этом примере я использую табличный редактор 3 (TE3). Технически это возможно сделать с помощью вкладки «Моделирование — Новая таблица», но это приведет к созданию физических таблиц в вашей модели данных. Вам придется вручную переключаться между этим и редактором, и это просто медленный и трудный способ сделать это.
Когда вы увидите динамический способ, которым это можно сделать с помощью внешнего инструмента, вы увидите преимущества.
Итак, внутри TE3 мы создаем новый запрос DAX. Мы можем взять нашу первоначальную меру и скопировать ее в наш запрос DAX.
Если вы помните, запросы DAX всегда начинаются с EVALUATE . Сначала мы получим ошибку, потому что запросы DAX возвращают таблицы . Это была мера с двумя последними переменными, которые являются скалярами. Здесь мы можем изменить возвращаемое значение , что является моим следующим советом.
Совет № 2: Отлаживайте виртуальную таблицу LuckyTemplates по частям, используя переменные
Вы можете отлаживать виртуальные таблицы почти так же, как и меры — по частям, изменяя возвращаемое значение. Начнем с первой виртуальной таблицы, vEvalTable . Мы просто заменяем возвращаемое значение (Final) нашей первой переменной (VAR). И вы можете видеть, что ошибка исчезла, потому что теперь запрос DAX получает таблицу.
В vEvalTable мы берем исходные данные, то есть показатели безопасности, нормализуем их и добавляем столбец нормализованного значения в виртуальную таблицу. У нас есть индекс, значение региона и нормализованное значение. Мы можем сортировать эти значения вверх или вниз, а также фильтровать значения.
Это дает нам именно то, что мы ожидали. Он возвращает 50 строк, что является полным набором данных. Все идет хорошо, так что давайте спустимся и изучим следующую таблицу, которая называется vTableTopN . В этой таблице мы берем TOPN, используя значение ползунка n-го элемента. В этом примере у нас есть это седьмое значение виртуальной таблицы выше (vEvalTable), и мы берем этот TOPN на основе нормализованного значения в порядке убывания.
Итак, когда мы меняем нашу функцию RETURN на это, она падает, и мы ничего не получаем. Давайте посмотрим, почему, потому что это действительно важная концепция для отладки и понимания виртуальных таблиц.
Если мы посмотрим на формулу, у нас есть N-е значение ползунка элемента в качестве главного подозреваемого здесь. Возвращаясь к LuckyTemplates, мы видим, что это в основном просто сбор числа семь. Обратите внимание, что ползунки существуют в контексте страницы .
Итак, в этом случае, когда мы смотрим на отладку этой таблицы вне контекста, это выбранное значение не имеет никакого контекста . У него нет ничего с точки зрения возможности вытащить этот номер. Мы получали TOPN, но не знаем, что такое N в TOPN, потому что это выбранное значение возвращает пустое значение.
Как мы справляемся с этим? Давайте посмотрим на выбранную меру стоимости. Большую часть времени мы всегда обращаем внимание на первый параметр в , но есть второй параметр, который является альтернативным. Это подводит нас к моему третьему совету.
Совет № 3: используйте альтернативный параметр в SELECTEDVALUE
Что здесь произошло, так это то, что он вытягивал пробел в качестве альтернативы. Но что мы хотим сделать (в целях отладки), так это то, что мы хотим поместить здесь реальное значение . Итак, мы ставим цифру 7 и сохраняем ее.
Теперь у нас есть некоторые значения. Он возвращает семь строк, что именно так и должно быть, поскольку значение TOPN равно семи.
Давайте перейдем к следующей виртуальной таблице, которой является vTableNthItem . У нас есть эта стопка из семи карт, и этот стол, по сути, переворачивает ее. В предыдущей таблице мы были в порядке убывания, а теперь в порядке возрастания.
Если мы возьмем и скопируем это в раздел RETURN, мы получим результаты. Интересно, что он не возвращает одну строку. Он возвращает три строки, потому что эти три связаны. Именно по этой причине в данном случае мы используем TOPN, а не RANKX.
Теперь переходим к Результату . Если мы скопируем результат VAR в раздел RETURN, это станет моим четвертым советом.
Совет № 4: Используйте {}, чтобы превратить скаляры в таблицы
В формуле мы берем максимальное ( ) этого vTableNthItem и возвращаем нормализованное значение. Это может быть , это может быть , это может быть . Это просто какой-то агрегатор, который возвращает одно значение в этой таблице. Итак, если мы скопируем это, это выдаст нам ошибку, потому что теперь это скаляр.
Но это мой четвертый совет, который касается отладки. Что вы можете сделать, так это просто добавить фигурные скобки . Таким образом, он превращает этот скаляр в таблицу.
И затем то, что у нас есть, это просто окончательная проверка ошибок, то есть, если выяснится, что оценочная таблица меньше, чем количество строк, она вернет недостаточно данных. Но в этом случае мы знаем, что наш набор данных достаточно велик. Однако мы можем просто проверить это, набрав Final . Опять же, поскольку это масштабатор, нам также нужны фигурные скобки, и здесь мы получаем то же значение.
Мы изучили и отладили эту виртуальную таблицу, а также использовали альтернативное значение в SELECTEDVALUE, чтобы оно не выпадало из контекста. Теперь я просто хочу показать вам еще один совет, который я нашел действительно полезным.
Совет № 5: Используйте CONCATENATEX/UNICHAR, чтобы превратить таблицу в скаляр
В контексте отладки вы захотите увидеть в LuckyTemplates, как выглядит эта таблица. Общее правило заключается в том, что мера может возвращать только скаляр, а не таблицу. Но есть один чит, который я собираюсь показать вам, который позволяет ему квази-возвратить таблицу.
Давайте взглянем на эту меру, которая называется Visualized Virtual Table , и у нас есть все виртуальные таблицы, которые у нас были изначально. Например, мы хотим отобразить, скажем, на главной странице отчета таблицу vTableTopN.
Вы можете использовать эту функцию . На самом деле вы можете взять это имя виртуальной таблицы (vTableTopN), взять значения из этой таблицы и соединить их. Вы можете создать что-то похожее на виртуальную таблицу.
Если мы примем эту меру, нам нужно вернуться в LuckyTemplates и добавить ее в карточную меру. Обычно таблица выдает ошибку, но через CONCATENATEX она превратила эту таблицу в скейлер. Вы можете видеть, что он довольно примитивен, но возвращает именно то, что мы ожидаем, и делает это динамически.
Это способ вставить таблицу в показатель и показать это в отчете. Это действительно полезный прием отладки. Это обеспечит хороший формат значения карты, которое вы можете использовать в отчете.
Основные виртуальные таблицы в LuckyTemplates Использование
виртуальных таблиц DAX внутри функций итерации в LuckyTemplates — концепции DAX
Таблицы в LuckyTemplates: типы и различия
Заключение
Надеемся, что это руководство даст вам пищу для размышлений с точки зрения работы с виртуальной таблицей LuckyTemplates. Вот несколько дополнительных советов и приемов для понимания того, что происходит за вашими виртуальными столами. Я надеюсь, что вы нашли это полезным.
Посетите наш веб-сайт для получения дополнительных руководств по LuckyTemplates и перейдите по ссылкам ниже для получения дополнительных материалов.
Всего наилучшего!
В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.