Фильтрация данных — самый распространенный способ анализа данных. Она позволяет углубляться в ваши данные и отсеивать ненужную информацию.
Power BI предоставляет пользователям широкие возможности в использовании фильтров и срезов для детализации данных. Мы рассмотрим все способы отфильтровать визуальные элементы с помощью DAX и интерфейсных решений. Их можно применять по отдельности или в любом комбинированном виде для более точного анализа данных.
Срезы в Power BI
Слайсеры позволяют пользователю сортировать и фильтровать упакованный отчет и просматривать только ту информацию, которую он хочет. Они представлены в отчете в виде визуальных элементов и позволяют пользователю выбирать значения при анализе отчета. Например, если у вас есть отчет по анализу продаж, вы можете сделать срез по годам. В этом слайсере вы можете выбрать год, за который хотите просмотреть показатели продаж. Визуальные элементы отчета автоматически изменятся, показывая информацию за этот год.
В зависимости от типа данных, вы сможете применить стиль "между", "Выпадающий список", "Список" и "Кнопки":

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

Панель фильтров
Этот инструмент доступен пользователям ваших отчетов если иконка "глаз" не перечеркнута. В таком случае, при загрузке pbix в service (облако Power BI), пользователь также сможет накладывать и очищать настройки.

Разберемся как работает стандартная фильтрация на панели отчета.
1. Фильтр визуализации. Позволяет отфильтровывать визуализации практически по любым полям. Например, пользователь может посмотреть только данные для конкретного страны, города или типа продукта:

2. Фильтр страницы. Накладывает фильтрацию на все визуальные элементы на странице отчета:

3. Фильтр отчета. Накладывает условия на все страницы pbix файла. Можно использовать в случае, если пользователь хочет посмотреть только данные для конкретного года или сегмента.

Power BI также позволяет вам создавать сложные фильтры, которые могут осуществлять сравнение данных, например, используя операторы «равно», «больше» и «меньше». А в случае с датами, предоставляет подвергать отбору относительные даты: "находится на или после", "В последние х дней" и т.д. Вы также можете зафиксировать и скрыть фильтр для пользователя.
Фильтрация в измерениях DAX
Вы можете использовать функции фильтрации DAX Power BI в различных сценариях, например, когда вы хотите:
- Уменьшить количество строк в таблице.
- Скрыть ненужные столбцы или строки.
- Выполнить арифметические операции над предопределенными полями.
- Рассчитать новые параметры или новые меры.
- Создать динамический расчет.
- Управлять контекстом данных и так далее.
Функция фильтра DAX довольно проста для понимания и использования. Это простая команда, которая начинается с FILTER и принимает два параметра:
FILTER ( <Table>, <FilterExpression> )
Параметры, которые должны быть включены в функцию фильтра Power BI DAX, следующие:
- <Table> = Имя таблицы, которую необходимо отфильтровать. Этот параметр также может содержать выражение, результатом которого является таблица.
- <FilterExpression> = условие фильтра DAX Power BI, которое должно оцениваться для каждой строки данной таблицы. Строки, для которых условие становится ИСТИННЫМ, сохраняются, а остальные удаляются.
После применения функции фильтра функция фильтра Power BI DAX выводит пользовательские данные в виде таблицы , содержащей только отфильтрованные строки.
Обычно функции фильтра DAX можно увидеть и использовать внутри меры. Использование табличной функции в мере позволяет динамически создавать виртуальные таблицы на основе требований фильтра в визуализациях таблиц. Вот пример, чтобы просветить то, о чем говорится:
Filtred Sales =
VAR __filtered = FILTER ( 'financials', 'financials'[Product] = "Amarilla" || 'financials'[Country] = "Germany" )
RETURN
CALCULATE ( SUM(financials[ Sales]), __filtered )
В этом примере мы создаем переменную с именем __filtered, которая содержит данные для продукта Amarilla и страны Germany (указанных с помощью выражения ИЛИ «||»). Затем эта переменная передается другой функции, называемой CALCULATE, которая возвращает количество продаж для каждого из этих продуктов в отдельном столбце.
Функция фильтра не изменяет ваши столбцы
По умолчанию функция фильтра не изменяет столбцы таблицы данных. Если вы хотите получить только те столбцы, которые затронуты или выбраны в соответствии с вашими требованиями, а не все, вы можете сделать это, используя функцию фильтра в качестве входной функции для другой функции.
Table Filtred Sales =
VAR filtered =
FILTER (
financials,
financials[Product] = "Montana"
&& financials[Country] = "Canada"
)
RETURN
SELECTCOLUMNS ( filtered, "Montana_Sales", financials[Sales] )
В этом примере мы создаем переменную с именем filtered, которая содержит данные для продуктов Montana и Carretera (указанных с помощью выражения ИЛИ «||»). Затем эта переменная передается другой функции CALCULATE, которая возвращает количество продаж для каждого из этих продуктов в отдельном столбце.

Фильтры контекста
Контекст фильтра работает на уровне модели. Когда вы помещаете фильтр в столбец, фильтр влияет на столбец, таблицу, которой принадлежит столбец, и все таблицы, к которым можно получить доступ через связи. По умолчанию фильтр распространяется от одной стороны отношения ко многим сторонам. Тем не менее, активируя двунаправленные отношения, вы можете распространять контекст фильтра в обоих направлениях: от одной стороны к многим сторонам и от многих сторон к одной стороне.
Направление распространения контекста фильтра отражается стрелкой в середине любого отношения в представлении схемы Power BI.

По умолчанию распространение происходит от одной стороны ко многим сторонам, что означает, что фильтр в таблице Date распространяется на таблицу Sales , и то же самое применяется от Product к Sales . Но тогда фильтр по продажам не распространяется ни на продукт , ни на дату .
У вас есть возможность изменить способ распространения контекста фильтра, активировав двунаправленные отношения. Если бы отношение между Product и Sales было двунаправленным, то фильтр по Sales распространялся бы на Product .
Заключение
Мы рассмотрели всего четыре основных возможности фильтрации данных: стандартные срезы, с помощью панели отчёта, внутри измерений и через связи модели.
Вы можете очень эффективно использовать срезы в Power BI для фильтрации небольших частей наборов данных. Они также играют ключевую роль в представлении наиболее важных данных в виде диаграмм или графиков.
Панель фильтров также дает возможность конечному пользователю самостоятельно влиять на данные в отчете. При этом, место на макете будет свободно для визуализаций.
Функция фильтра — это простая функция Power BI, которая позволяет перебирать строки любой таблицы, создавая контекст строки для каждой и проверяя, следует ли включать эту строку в ваши вычисления. Те, которые квалифицируются как true, объединяются в отдельную таблицу и передаются пользователю в качестве вывода. В этом уроке мы рассмотрели способы создания условий с помощью AND «&&» и OR «||». выражения.
Говоря о связях, мы хотим дать совет: двунаправленные отношения — мощный и опасный инструмент. Не используйте их, если у вас нет четкого понимания концепций моделирования данных и DAX.
Комментарии