Записки охотника

Параметры на уровне Power Query

Тематические статьи
Рвав-рвав, здесь снова собака Смайл!

Данная статья появилась благодаря поступившему запросу от пользователей одного телеграмм-канала.
Шустрый собака, в качестве помощи, решил по-быстрому найти ссылку с ответом на этот вопрос, но ничего толкового нагуглить по этому поводу в короткое время не сумел. В результате пришлось на мобиле кратенько описывать данный вопрос, аж бесит (!), и где-то в планах появилось сделать собственный материал.
Вся эта ситуация еще раз подтвердила справедливоcть моего высказывания в статье Создание календаря при помощи DAX на тему того, что «Правильно гуглить — тоже труд…», поэтому — начинаем.

Пример:

Таблица «Список проектов» содержит информацию по проекту, а именно данные по менеджеру проекта и дате начала проекта:

Таблица
Список проектов

Задача:

Продемонстрировать применение параметров различного типа в качестве инструмента фильтрации данных.

Параметры бывают следующих видов:

  • Любое значение — функционал будет продемонстрирован на примере столбца «Название проекта».
  • Список значений — функционал будет продемонстрирован на примере столбца «Дата начала проекта».
  • Запрос — функционал будет продемонстрирован на примере столбца «Руководитель проекта».

Процесс разработки:

  • Создана таблица «Список проектов» — это таблица, созданная на уровне Power Query, и содержащая входящие данные в столбцах «Менеджер проекта», «Название проекта» и «Дата начала проекта».

Рвав-рвав, как вы уже, наверно, догадались, никаких дополнительных действий (например, расчетов, построения связей), нам совершать не надо.

  • Создание параметров производится на уровне Power Query, с уровня DAX на него можно перейти, например, при помощи кнопки «Преобразование данных», расположенной на закладке «Главная».
  • Затем следует перейти в раздел управления параметрами, данное действие можно осуществить, например, при помощи одноименной кнопки «Управление параметрами», расположенной на закладке «Главная».
  • После этого откроется пустая форма создания параметра, которую необходимо наполнить определенным образом при помощи кнопки «Создать»:

Форма
Форма "Управление параметрами"

  • Параметр вида «Любое значение» можно настроить следующим образом:
— Поле «Имя» = «Проект» (задается произвольно, это имя параметра).
— Поле «Описание» = «Название проекта» (задается произвольно, в дальнейшем выводится в качестве подсказки пользователю).
— Поле «Требуется» = «Нет» (регулируется при помощи соответствующего флага, смысл установки которого состоит в том, чтобы указать обязательность заполнения реквизита).
— Поле «Тип» = «Текст» (обозначение ограничения на определенный тип данных в реквизите, что может быть полезно, например, в случае, когда в качестве параметра нужно использовать любое значение, так как вариантов много, но определенного типа, для того, чтобы избежать ошибочного ввода данных со стороны пользователя).
— Поле «Предлагаемые значения» = «Любое значение№ (тип параметра).
— Поле «Текущее значение» = «Нет» (текущее значение параметра, может быть использовано в качестве значения по умолчанию):

Форма
Параметр вида "Любое значение"

  • Для сохранения параметра необходимо нажать кнопку «ОК», после чего в области «Запросы», расположенной с левой стороны, появится созданный параметр:

Форма
Область запросов

  • Параметр вида «Список значений» можно настроить следующим образом:
— Поле «Имя» = «Дата».
— Поле «Описание» = «Начало проекта».
— Поле «Требуется» = «Да».
— Поле «Тип» = «Дата».
— Поле «Предлагаемые значения» = «Список значений», содержащий «01.01.2019» и «01.02.2019».
— Поле «Значение по умолчанию» = «01.01.2019» (значение по умолчанию выбирается из внесенного списка).
— Поле «Текущее значение» = «01.01.2019» (указанное значение также может отличаться от значения по умолчанию):

Форма
Параметр вида "Список значений"

  • Для сохранения параметра необходимо нажать кнопку «ОК».
  • До того, как приступить к настройке параметра вида «Запрос», необходимо предварительно создать объекты подобного типа в системе. Создание запроса можно осуществить, например, воспользовавшись контекстным меню в столбце таблицы путем выбора действия «Добавить как новый запрос». Ниже представлен предварительно обработанный запрос «Менеджеры», содержащий список руководителей проекта:

Форма
Область запросов

  • Параметр вида «Запрос» можно настроить следующим образом:
— Поле «Имя» = «Ответственный».
— Поле «Описание» = «Руководитель проекта».
— Поле «Требуется» = «Нет».
— Поле «Тип» = «Текст».
— Поле «Предлагаемые значения» = «Запрос».
— Поле «Запрос» = «Менеджеры» (значение выбирается из списка запросов).
— Поле «Текущее значение» = «Нет»:

Форма
Параметр вида "Запрос"

  • Для использования созданных параметров в качестве фильтра их необходимо привязать к соответствующим столбцам данных. Привязка осуществляется путем наложения фильтра на столбец с данными. Возможности фильтрации зависят от типа данных столбца:

Форма
Текстовые фильтры

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

Форма
Настройка фильтрации

Рвав-рвав, важно понимать, что поскольку параметр накладывает фильтр на набор данных, то с каждым следующим параметром вы можете так уменьшить конечную выборку, что в итоге получится пустой набор значений. Поэтому для целей демонстрации функционала далее будет показан пример применения только параметра «Ответственный».

  • Окончательный вид настройки в данном окне выглядит следующим образом:

Форма
Настройка фильтрации в связке с параметрами

  • После настройки фильтра необходимо нажать кнопку «ОК», при этом таблица «Список проектов» будет отфильтрована по значению параметра «Ответственный». И, поскольку, дефолтное значение для данного параметра мы при его создании не указывали, таблица «Список проектов» не будет содержать данных:

Таблица
Список проектов с учетом фильтра по значению параметра "Ответственный"

  • Чтобы исправить данную ситуацию, необходимо указать для параметра «Ответственный» любое текущее значение, например, «Морозова Ольга»:

Форма
Значение параметра

  • В результате данных действий таблица «Список проектов» будет отфильтровано по столбцу «Руководитель проекта» согласно указанному значению:

Таблица
Сокращенный список проектов

  • Для сохранения внесенных изменений, а именно привязки параметра к столбцу данных, и, собственно, любых других действий на уровне Power Query, необходимо применить все изменения при помощи кнопки «Закрыть и применить».
  • В целях демонстрации функционала работы параметров Power Query необходимо на основе данных таблицы «Список проектов» построить какой-либо визуальный элемент, например, аналогичную таблицу следующего вида:

Таблица
Список проектов по менеджеру "Морозова Ольга"

Рвав-рвав, как видите, на уровне визуализации таблица «Список проектов» содержит только часть данных, поскольку работает фильтр, указанный при помощи параметра «Ответственный».

Использование функционала:

  • Изменение значения параметра осуществляется по кнопке «Преобразование данных» → Изменить параметры":

Форма
Изменение значений параметров Power Query пользователем

Рвав-рвав, в данном окне отображается список всех параметров, присутствующих в отчете, а также всплывающие подсказки, доступные по значку «i».

  • После ввода в параметр «Ответственный» значения, отличного от текущего, необходимо зафиксировать изменения при помощи кнопки «ОК»:

Форма
Фиксация изменения значения параметров пользователем

  • В результате данных действий в окне на холсте страницы в верней ее части появится полоса с кнопкой «Применить изменения»:

Служебное сообщение
Применение изменений пользователя к набору данных

  • После нажатия кнопки «Применить изменения», значения, указанные пользователем через параметры, будут применены в качестве фильтра к таблице «Список проектов»:

Таблица
Список проектов по менеджеру "Ларионов Осип"

Возможное применение:

  • Параметры можно использовать в качестве нежесткого средства ограничения выборки данных, устанавливаемом пользователем самостоятельно. Это может понадобиться, если объем данных, подгружаемых при обновлении, достаточно большой, и при этом не все они нужны для текущего анализа.
  • Также, параметрами не обязательно именно фильтровать исходный набор данных, а использовать их значения для визуализаций, или каких-либо расчетов.
  • До появления в Power BI Desktop так называемого «инкрементного обновления», да, собственно, и после, уменьшение объема загружаемых данных можно осуществить описанным способом.

Рвав-рвав, статья подошла к концу и уморившаяся собака Смайл пошел дрыхнуть, оставив задние лапы…
Ваш Смайл