Field parameters - переключаем меры и измерения
У меня есть две статьи, в которых рассказывается, как создать переключение показателей в визуальных элементах с помощью SWITCH и Calculation group. В этой статье я хочу рассказать о третьем способе, который нравится мне больше предыдущих, тем более, что с его помощью можно переключать не только меры, но и измерения. Хотя и он имеет свои ограничения, но об этом позже.
Включение параметра
По состоянию на 13-10-2022 года функция "Параметры поля" находится в предварительном просмотре и доступна только для стандартной версии PowerBI - в PowerBI Report Server она ещё не добавлена.
Чтобы добавить эту функцию, необходимо в PowerBI Desktop перейти в Параметры - Предварительные версии возможностей и поставить соответствующую галочку:
Переключение мер
Работать будем всё с той же моделью данных:
В визуализациях будут использоваться три меры: [Продажи шт], [Кол-во заказов], [% изменения продаж].
Цель - предоставить пользователю возможность выбора просмотра какого-либо одного показателя в визуализациях.
Для этого переходим на вкладку Моделирование - Создание параметра - Поля:
В мастере задаём имя таблицы параметров и выбираем нужные меры в том порядке, в котором хотим чтобы они были в срезе:
Если потребуется изменить набор мер - добавить/удалить меры, изменить порядок их отображения или задать новые отображаемые имена, то это возможно будет сделать пока ТОЛЬКО в строке формул:
Фигурные скобки {} - краткая запись создания таблицы. В круглых скобках через запятую указывается содержание строки каждого столбца.
Цифра в третьем "столбце" внутри круглых скобок отвечает за порядок отображения показателей. Не важно в каком порядке строки написаны в DAX - для сортировки важно значение этих цифр.
То есть в данном случае создаётся таблица, состоящая из трёх столбцов и трёх строк:
Столбцы имеют осмысленные названия, так как таблица параметров создавалась с помощью мастера.
Без использования мастера создать таблицу параметров полей НЕЛЬЗЯ - это будет простая таблица, даже несмотря на идентичное DAX-выражение.
Если вы не сняли в мастере галочку "Добавить срез на страницу", то на странице появится соответствующий срез:
Если же случайно сняли галочку, то просто добавьте стандартный визуал - срез, а в него столбец из таблицы параметров.
Создадим две визуализации: гистограмму и таблицу с разбивкой по месяцам, в которые вместо мер поместим столбец с показателями из таблицы параметров. А также добавим срез по годам:
Как видно, пока в срезе показателей не выбрали какое-то значение - в гистограмме и в таблице показываются все три меры. И если в таблице это приемлемо, то в диаграмме, из-за разности показателей - числа и проценты, значения искажаются. Поэтому изменим тип среза на "Единичный выбор":
Теперь всё работает как надо. В отличие от метода со SWITCH - нет проблем с форматами, так как передаётся мера и её форматирование. В отличии от SWITCH и Calculation group практически не требует использования DAX - основное можно сделать с помощью мастера. Тем не менее, есть небольшая ложечка дёгтя - параметр поля, который отвечает за переключение мер, НЕЛЬЗЯ поместить в строки или столбцы матрицы, чтобы изменить порядок группировки, как я это сделал в статье "Как показать меры в строках матрицы?"
Поэтому ищите и выбирайте вариант, который лучше всего подходит под вашу задачу.
Переключение измерений
Кроме переключения мер, Field Parametrs можно использовать и для переключения измерения, по которому построена визуализация. Принцип создания параметра идентичен созданию переключателя мер:
Важно: в каком порядке вы добавляете поля, в таком они и будут расположены в срезе.
Пока не выбрано ни одно измерение они будут располагаться в визуализации в виде иерархии в том порядке, который задан в третьем столбце таблицы параметров.
Как только пользователь выбирает интересующие его измерения, они добавляются в визуализацию в ПОРЯДКЕ ВЫБОРА. Например, я сначала выбрал CategoryName, а затем Year:
Таким образом, конечный пользователь получает очень гибкий инструмент настройки визуализации "под себя", без необходимости редактирования отчёта или создания различных "костылей" в виде дополнительных таблиц с динамическими измерениями или множества закладок, в которых легко запутаться.
Но, срез, который представлен выше, имеет один "недостаток" - он содержит измерения, относящиеся к разным сущностям(иерархиям): даты и товары. И хотелось бы дать пользователю возможность переключаться между иерархиями одним нажатием, а не собирать каждый раз все уровни, которых может оказаться значительно больше.
Чтобы выполнить это условие, отредактируем таблицу переключения измерений, созданную с помощью мастера:
В строке функций я добавил для каждой строки таблицы ещё один столбец, который будет объединять измерения в нужные иерархии. За одно дал русские названия для измерений, которые отображаются в срезе:
То есть теперь пользователь может, как и прежде, выбирать нужные ему измерения в нужном ему порядке, либо включать целую иерархию одним нажатием. Либо мы можем оставить возможность менять только иерархии:
В итоговый отчёт добавил страницу, где одновременно используется переключатель и мер, и иерархий.
Файл можно скачать по ссылке.