Visualisations
October 13, 2022

Field parameters - переключаем меры и измерения

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

Включение параметра

По состоянию на 13-10-2022 года функция "Параметры поля" находится в предварительном просмотре и доступна только для стандартной версии PowerBI - в PowerBI Report Server она ещё не добавлена.

Чтобы добавить эту функцию, необходимо в PowerBI Desktop перейти в Параметры - Предварительные версии возможностей и поставить соответствующую галочку:

Включение функций находящихся в Preview

Переключение мер

Работать будем всё с той же моделью данных:

Схема модели данных

В модели созданы четыре меры:

Меры используемые в модели

В визуализациях будут использоваться три меры: [Продажи шт], [Кол-во заказов], [% изменения продаж].

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

Для этого переходим на вкладку Моделирование - Создание параметра - Поля:

Как перейти к созданию параметра поля

В мастере задаём имя таблицы параметров и выбираем нужные меры в том порядке, в котором хотим чтобы они были в срезе:

Создание таблицы переключения мер

Если потребуется изменить набор мер - добавить/удалить меры, изменить порядок их отображения или задать новые отображаемые имена, то это возможно будет сделать пока ТОЛЬКО в строке формул:

DAX функция создания таблицы параметров поля

Фигурные скобки {} - краткая запись создания таблицы. В круглых скобках через запятую указывается содержание строки каждого столбца.

Цифра в третьем "столбце" внутри круглых скобок отвечает за порядок отображения показателей. Не важно в каком порядке строки написаны в DAX - для сортировки важно значение этих цифр.

То есть в данном случае создаётся таблица, состоящая из трёх столбцов и трёх строк:

Таблица параметров поля в Данных

Столбцы имеют осмысленные названия, так как таблица параметров создавалась с помощью мастера.

Без использования мастера создать таблицу параметров полей НЕЛЬЗЯ - это будет простая таблица, даже несмотря на идентичное DAX-выражение.

Если вы не сняли в мастере галочку "Добавить срез на страницу", то на странице появится соответствующий срез:

Срез для переключения/выбора мер

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

Создадим две визуализации: гистограмму и таблицу с разбивкой по месяцам, в которые вместо мер поместим столбец с показателями из таблицы параметров. А также добавим срез по годам:

Визуализации с помощью параметров поля

Как видно, пока в срезе показателей не выбрали какое-то значение - в гистограмме и в таблице показываются все три меры. И если в таблице это приемлемо, то в диаграмме, из-за разности показателей - числа и проценты, значения искажаются. Поэтому изменим тип среза на "Единичный выбор":

Визуализация продаж в штуках
Визуализация процента отклонения продаж в сравнении с предыдущим месяцем

Теперь всё работает как надо. В отличие от метода со SWITCH - нет проблем с форматами, так как передаётся мера и её форматирование. В отличии от SWITCH и Calculation group практически не требует использования DAX - основное можно сделать с помощью мастера. Тем не менее, есть небольшая ложечка дёгтя - параметр поля, который отвечает за переключение мер, НЕЛЬЗЯ поместить в строки или столбцы матрицы, чтобы изменить порядок группировки, как я это сделал в статье "Как показать меры в строках матрицы?"

Матрица сгруппированная по показателям

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

Переключение измерений

Кроме переключения мер, Field Parametrs можно использовать и для переключения измерения, по которому построена визуализация. Принцип создания параметра идентичен созданию переключателя мер:

Создание таблицы измерений

Важно: в каком порядке вы добавляете поля, в таком они и будут расположены в срезе.

Матрица с параметром поля

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

Как только пользователь выбирает интересующие его измерения, они добавляются в визуализацию в ПОРЯДКЕ ВЫБОРА. Например, я сначала выбрал CategoryName, а затем Year:

Порядок отображения измерений

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

Но, срез, который представлен выше, имеет один "недостаток" - он содержит измерения, относящиеся к разным сущностям(иерархиям): даты и товары. И хотелось бы дать пользователю возможность переключаться между иерархиями одним нажатием, а не собирать каждый раз все уровни, которых может оказаться значительно больше.

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

Добавляем группировку в таблицу параметров

В строке функций я добавил для каждой строки таблицы ещё один столбец, который будет объединять измерения в нужные иерархии. За одно дал русские названия для измерений, которые отображаются в срезе:

Переключение измерений с группировкой

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

Переключение иерархий одним нажатием

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

Файл можно скачать по ссылке.