Виртуальная таблица LuckyTemplates | 5 советов и приемов по отладке

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

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

Пример, который я собираюсь рассмотреть сегодня, взят с , и он исходит от участника по имени Дэйв С, который работает в области промышленной безопасности. У Дэйва был ряд оценок безопасности, и он хотел нормализовать их, чтобы высшая оценка равнялась 10, а затем динамически получить N-е место в этом списке.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

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

Оглавление

Совет № 1. Используйте внешний инструмент для визуализации виртуальной таблицы LuckyTemplates

Вы можете использовать DAX Studio или табличный редактор. В этом примере я использую табличный редактор 3 (TE3). Технически это возможно сделать с помощью вкладки «Моделирование — Новая таблица», но это приведет к созданию физических таблиц в вашей модели данных. Вам придется вручную переключаться между этим и редактором, и это просто медленный и трудный способ сделать это.

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

Итак, внутри TE3 мы создаем новый запрос DAX. Мы можем взять нашу первоначальную меру и скопировать ее в наш запрос DAX.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Если вы помните, запросы DAX всегда начинаются с EVALUATE . Сначала мы получим ошибку, потому что запросы DAX возвращают таблицы . Это была мера с двумя последними переменными, которые являются скалярами. Здесь мы можем изменить возвращаемое значение , что является моим следующим советом.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Совет № 2: Отлаживайте виртуальную таблицу LuckyTemplates по частям, используя переменные

Вы можете отлаживать виртуальные таблицы почти так же, как и меры — по частям, изменяя возвращаемое значение. Начнем с первой виртуальной таблицы, vEvalTable . Мы просто заменяем возвращаемое значение (Final) нашей первой переменной (VAR). И вы можете видеть, что ошибка исчезла, потому что теперь запрос DAX получает таблицу.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

В vEvalTable мы берем исходные данные, то есть показатели безопасности, нормализуем их и добавляем столбец нормализованного значения в виртуальную таблицу. У нас есть индекс, значение региона и нормализованное значение. Мы можем сортировать эти значения вверх или вниз, а также фильтровать значения.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Это дает нам именно то, что мы ожидали. Он возвращает 50 строк, что является полным набором данных. Все идет хорошо, так что давайте спустимся и изучим следующую таблицу, которая называется vTableTopN . В этой таблице мы берем TOPN, используя значение ползунка n-го элемента. В этом примере у нас есть это седьмое значение виртуальной таблицы выше (vEvalTable), и мы берем этот TOPN на основе нормализованного значения в порядке убывания.

Итак, когда мы меняем нашу функцию RETURN на это, она падает, и мы ничего не получаем. Давайте посмотрим, почему, потому что это действительно важная концепция для отладки и понимания виртуальных таблиц.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Если мы посмотрим на формулу, у нас есть N-е значение ползунка элемента в качестве главного подозреваемого здесь. Возвращаясь к LuckyTemplates, мы видим, что это в основном просто сбор числа семь. Обратите внимание, что ползунки существуют в контексте страницы .

Итак, в этом случае, когда мы смотрим на отладку этой таблицы вне контекста, это выбранное значение не имеет никакого контекста . У него нет ничего с точки зрения возможности вытащить этот номер. Мы получали TOPN, но не знаем, что такое N в TOPN, потому что это выбранное значение возвращает пустое значение.

Как мы справляемся с этим? Давайте посмотрим на выбранную меру стоимости. Большую часть времени мы всегда обращаем внимание на первый параметр в , но есть второй параметр, который является альтернативным. Это подводит нас к моему третьему совету.

Совет № 3: используйте альтернативный параметр в SELECTEDVALUE

Что здесь произошло, так это то, что он вытягивал пробел в качестве альтернативы. Но что мы хотим сделать (в целях отладки), так это то, что мы хотим поместить здесь реальное значение . Итак, мы ставим цифру 7 и сохраняем ее.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Теперь у нас есть некоторые значения. Он возвращает семь строк, что именно так и должно быть, поскольку значение TOPN равно семи.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Если мы возьмем и скопируем это в раздел RETURN, мы получим результаты. Интересно, что он не возвращает одну строку. Он возвращает три строки, потому что эти три связаны. Именно по этой причине в данном случае мы используем TOPN, а не RANKX.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

Теперь переходим к Результату . Если мы скопируем результат VAR в раздел RETURN, это станет моим четвертым советом.

Совет № 4: Используйте {}, чтобы превратить скаляры в таблицы

В формуле мы берем максимальное ( ) этого vTableNthItem и возвращаем нормализованное значение. Это может быть , это может быть , это может быть . Это просто какой-то агрегатор, который возвращает одно значение в этой таблице. Итак, если мы скопируем это, это выдаст нам ошибку, потому что теперь это скаляр.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Совет № 5: Используйте CONCATENATEX/UNICHAR, чтобы превратить таблицу в скаляр

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

Давайте взглянем на эту меру, которая называется Visualized Virtual Table , и у нас есть все виртуальные таблицы, которые у нас были изначально. Например, мы хотим отобразить, скажем, на главной странице отчета таблицу vTableTopN.

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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

Виртуальная таблица LuckyTemplates |  5 советов и приемов по отладке

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


Основные виртуальные таблицы в LuckyTemplates Использование
виртуальных таблиц DAX внутри функций итерации в LuckyTemplates — концепции DAX
Таблицы в LuckyTemplates: типы и различия

Заключение

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

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

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

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 для своих бизнес-отчетов.