Добавление пользовательского среза в Power BI

Как сделать свой фильтр для имеющихся данных?

Предположим, у нас есть вот такая таблица:

Добавление пользовательского среза в Power BI 1

В итоге мы сделали вот такой отчёт:

Добавление пользовательского среза в Power BI 2

И здесь можно выделить 2 цели создания своего среза — для отображения выбранного типа значений (выручка или вес) или же мы разделим товары на овощи и фрукты.

Рассмотрим первый вариант — с подменой значений столбцов.

Создадим переключатель значений для строк — свой, пользовательский срез. Для этого нужно выбрать МоделированиеСоздать таблицу — раскроется строка для ввода формулы.

Добавление пользовательского среза в Power BI 3

Здесь понадобится функция DATATABLE(), она создаёт таблицу с указанными в аргументах данными. Описание функции есть в статье DATATABLE() в DAX. Как создать таблицу в Power BI через формулу DAX.

Создаём таблицу:

Тип_отчёта =
DATATABLE(
    "Выбрать данные";
    STRING;
    {
        {"Выручка (руб.)"};
        {"кг."}
    }
)

 

 

В итоге создалась таблица (её можно отредактировать этим же запросом):

Добавление пользовательского среза в Power BI 4

Как видно, строки Выручка (руб.) и кг. — это текст, поэтому в типе строк нужно выбрать STRING. Теперь вытаскиваем «Тип_отчёта»[Выбрать данные] в окно отчёта и выбираем визуализацию Срез.

Добавление пользовательского среза в Power BI 5

Получили фильтр, он же переключатель или срез, но он не привязан к нашим данным. И здесь можно реализовать переключение через IF() или SWITCH(). Второй вариант подходит, если у нас больше 2 условий. Второй вариант будет рассмотрен ниже. Сейчас рассмотрим вариант с IF(). Создаём меру:

Переключаемые данные = 
IF(
    SELECTEDVALUE('Тип_отчёта'[Выбрать данные]) = "Выручка (руб.)";
    SUM('ПРОДАЖИ'[Выручка (руб.)]);
    SUM('ПРОДАЖИ'[Продано (кг.)])
)

Изначально он показывает данные кг., так как изначально на фильтре ничего не выбрано, это можно откорректировать в формуле.

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

Добавление пользовательского среза в Power BI 6

Выбран пункт Выручка (руб.), поэтому в столбце Переключаемые данные отображаются данные по выручке. При выборе кг. соответственно будут килограммы.

Создание своих строк из имеющихся в Power BI

Теперь рассмотрим второй вариант. Груши, яблоки, картофель и морковь мы делим на овощи и фрукты.

Опять создаём таблицу:

Категория_продуктов = 
DATATABLE(
    "Выбор категории";
    STRING;
    {
        {"овощи"};
        {"фрукты"}
    }
)

Добавляем визуализацию среза с полученным столбцом таблицы:

Добавление пользовательского среза в Power BI 7

Теперь опять надо связать её с данными — создаём меру:

Выручка_категории = 
SWITCH(
    TRUE();
    SELECTEDVALUE('Категория_продуктов'[Выбор категории]) = "овощи";
    CALCULATE(
        SUM('ПРОДАЖИ'[Выручка (руб.)]);
        'ПРОДАЖИ'[Товар] = "Морковь" || 'ПРОДАЖИ'[Товар] = "Картофель");
    SELECTEDVALUE('Категория_продуктов'[Выбор категории]) = "фрукты";
    CALCULATE(
        SUM('ПРОДАЖИ'[Выручка (руб.)]);
        'ПРОДАЖИ'[Товар] = "Яблоки" || 'ПРОДАЖИ'[Товар] = "Груши");
    SUM('ПРОДАЖИ'[Выручка (руб.)])
)

Создаём необходимый отчёт на базе полученной меры и категорий — всё готово!

Общий вид:

Добавление пользовательского среза в Power BI 8