Post-Image

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

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

Данная статья появилась по 2-м причинам:

  • Появился запрос пользователей на этот счет вида: “С чем это едят?”.

  • Шустрый собака, в качестве помощи, решил по-быстрому найти ссылку с ответом на этот вопрос, но ничего толкового нагуглить по этому поводу в короткое время не сумел.

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

    Вся эта ситуация еще раз подтвердила справедливоcть моего высказывания в статье Создание календаря при помощи DAX на тему того, что “Правильно гуглить – тоже труд…”, поэтому – начинаем.

  • Для построения примера, иллюстрирующего обозначенный функционал, нам необходим исходный набор данных любого вида, например, такой:

    Пример:

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

    art_005_screen_01

    Задача:

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

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

  • Любое значение – функционал будет продемонстрирован на примере столбца “Название проекта”.

  • Список значений – функционал будет продемонстрирован на примере столбца “Дата начала проекта”.

  • Запрос – функционал будет продемонстрирован на примере столбца “Руководитель проекта”.

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

  • Создана таблица “Список проектов” – это таблица, созданная на уровне Power Query, и содержащая входящие данные в столбцах “Руководитель проекта”, “Название проекта” и “Дата начала проекта”.

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

  • Создание параметров производится на уровне Power Query, с уровня DAX на него можно перейти при помощи кнопки “Edit Queries” (“Изменить запросы”), расположенной на закладке “Home” (“Главная”).

  • Затем следует перейти в раздел управления параметрами, данное действие можно осуществить при помощи одноименной кнопки “Manage Parameters” (“Управление параметрами”), расположенной на закладке “Home” (“Главная”).

  • После этого откроется пустая форма создания параметра, которую необходимо наполнить определенным образом при помощи кнопки “New” (“Создать”):

    art_005_screen_02

  • Параметр с типом “Любое значение” можно настроить следующим образом:

    – Поле “Name” / “Имя” = “Проект” (задается произвольно, это имя параметра).

    – Поле “Description” / “Описание” = “Название проекта” (задается произвольно, в дальнейшем выводится в качестве подсказки пользователю).

    – Поле “Required / Требуется = “Нет” (регулируется при помощи соответствующего флага, смысл установки которого состоит в том, чтобы указать обязательность заполнения реквизита).

    – Поле “Type” / “Тип” = “Текст” (обозначение ограничения на определенный тип данных в реквизите, что может быть полезно, например, в случае, когда в качестве параметра нужно использовать любое значение, так как вариантов много, но определенного типа, для того, чтобы избежать ошибочного ввода данных со стороны пользователя).

    – “Suggested Values” / “Предлагаемые значения” = “Любое значение” (тип параметра).

    – “Current Value” / “Текущее значение” = “Нет” (текущее значение параметра, может быть использовано в качестве значения по умолчанию):

    art_005_screen_03

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

    art_005_screen_04

  • Параметр с типом “Список значений” можно настроить следующим образом:

    – Поле “Name” / “Имя” = “Дата”.

    – Поле “Description” / “Описание” = “Начало проекта”.

    – Поле “Required” / “Требуется” = “Да”.

    – Поле “Type” / “Тип” = “Дата”.

    – Поле “Suggested Values” / “Предлагаемые значения” = “Список значений”, содержащий “01.01.2019” и “01.02.2019”.

    – Поле “Default Value” / “Значение по умолчанию” = “01.01.2019” (значение по умолчанию выбирается из внесенного списка).

    – Поле “Current Value” / “Текущее значение” = “01.01.2019” (указанное значение также может отличаться от значения по умолчанию):

    art_005_screen_05

  • Для сохранения параметра необходимо нажать кнопку “ОК”.

  • До того, как приступить к настройке параметра с типом “Запрос”, необходимо предварительно создать объекты подобного типа в системе. Создание запроса можно осуществить, например, воспользовавшись контекстным меню в столбце таблицы путем выбора действия “Add As New Query” (“Добавить как новый запрос”). Ниже представлен предварительно обработанный запрос “Менеджеры”, содержащий список руководителей проекта:

    art_005_screen_06

  • Параметр с типом “Запрос” можно настроить следующим образом:

    – “Name” / “Имя” = “Ответственный”.

    – “Description” / “Описание” = “Руководитель проекта”.

    – “Required” / “Требуется” = “Нет”.

    – “Type” / “Тип” = “Текст”.

    – “Suggested Values” / “Предлагаемые значения” = “Запрос”.

    – “Query” / “Запрос” = “Менеджеры” (значение выбирается из списка запросов).

    – “Current Value” / “Текущее значение” = “Нет”:

    art_005_screen_07

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

    art_005_screen_08

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

    art_005_screen_09

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

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

    art_005_screen_10

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

    art_005_screen_11

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

    art_005_screen_12

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

    art_005_screen_13

  • Для сохранения внесенных изменений, а именно привязки параметра к столбцу данных, и, собственно, любых других действий на уровне Power Query, необходимо применить все изменения при помощи кнопки “Close & Apply” (“Закрыть и применить”).

  • В целях демонстрации функционала необходимо на основе таблицы “Список проектов” построить какой-либо визуальный элемент, например, аналогичную таблицу следующего вида:

    art_005_screen_14

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

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

  • Изменение значения параметра осуществляется по кнопке “Transform data” (“Преобразование данных”) -> “Edit Parameters” (“Изменить параметры”):

    art_005_screen_15

    В данном окне отображается список всех параметров, присутствующих в отчете, а также всплывающие подсказки, доступные по значку “i”.

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

    art_005_screen_16

  • В результате данных действий в окне на холсте страницы в верней ее части появится полоса с кнопкой “Apply changes” (“Применить изменения”):

    art_005_screen_17

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

    art_005_screen_18

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

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

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

  • До появления в Power BI Desktop так называемого «инкрементного обновления» уменьшение объема загружаемых данных можно осуществить описанным способом.

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

    Ваш Смайл

    ДЛЯ ЛЮБИТЕЛЕЙ ПОНАЖИМАТЬ НА КНОПОЧКИ

    Рвав-рвав, увы и ах, тут нажимать нечего, а по этому… сами знаете, что :-)