Как сделать свой фильтр для имеющихся данных?
Предположим, у нас есть вот такая таблица:
В итоге мы сделали вот такой отчёт:
И здесь можно выделить 2 цели создания своего среза — для отображения выбранного типа значений (выручка или вес) или же мы разделим товары на овощи и фрукты.
Рассмотрим первый вариант — с подменой значений столбцов.
Создадим переключатель значений для строк — свой, пользовательский срез. Для этого нужно выбрать Моделирование — Создать таблицу — раскроется строка для ввода формулы.
Здесь понадобится функция DATATABLE(), она создаёт таблицу с указанными в аргументах данными. Описание функции есть в статье DATATABLE() в DAX. Как создать таблицу в Power BI через формулу DAX.
Создаём таблицу:
Тип_отчёта = DATATABLE( "Выбрать данные"; STRING; { {"Выручка (руб.)"}; {"кг."} } )
В итоге создалась таблица (её можно отредактировать этим же запросом):
Как видно, строки Выручка (руб.) и кг. — это текст, поэтому в типе строк нужно выбрать STRING. Теперь вытаскиваем «Тип_отчёта»[Выбрать данные] в окно отчёта и выбираем визуализацию Срез.
Получили фильтр, он же переключатель или срез, но он не привязан к нашим данным. И здесь можно реализовать переключение через IF() или SWITCH(). Второй вариант подходит, если у нас больше 2 условий. Второй вариант будет рассмотрен ниже. Сейчас рассмотрим вариант с IF(). Создаём меру:
Переключаемые данные = IF( SELECTEDVALUE('Тип_отчёта'[Выбрать данные]) = "Выручка (руб.)"; SUM('ПРОДАЖИ'[Выручка (руб.)]); SUM('ПРОДАЖИ'[Продано (кг.)]) )
Изначально он показывает данные кг., так как изначально на фильтре ничего не выбрано, это можно откорректировать в формуле.
Для примера я добавлю полученный столбец в имеющуюся таблицу, чтобы было нагляднее:
Выбран пункт Выручка (руб.), поэтому в столбце Переключаемые данные отображаются данные по выручке. При выборе кг. соответственно будут килограммы.
Создание своих строк из имеющихся в Power BI
Теперь рассмотрим второй вариант. Груши, яблоки, картофель и морковь мы делим на овощи и фрукты.
Опять создаём таблицу:
Категория_продуктов = DATATABLE( "Выбор категории"; STRING; { {"овощи"}; {"фрукты"} } )
Добавляем визуализацию среза с полученным столбцом таблицы:
Теперь опять надо связать её с данными — создаём меру:
Выручка_категории = SWITCH( TRUE(); SELECTEDVALUE('Категория_продуктов'[Выбор категории]) = "овощи"; CALCULATE( SUM('ПРОДАЖИ'[Выручка (руб.)]); 'ПРОДАЖИ'[Товар] = "Морковь" || 'ПРОДАЖИ'[Товар] = "Картофель"); SELECTEDVALUE('Категория_продуктов'[Выбор категории]) = "фрукты"; CALCULATE( SUM('ПРОДАЖИ'[Выручка (руб.)]); 'ПРОДАЖИ'[Товар] = "Яблоки" || 'ПРОДАЖИ'[Товар] = "Груши"); SUM('ПРОДАЖИ'[Выручка (руб.)]) )
Создаём необходимый отчёт на базе полученной меры и категорий — всё готово!
Общий вид: