Россия Нет

Функции фильтров в DAX: FILTER (для Power BI и Power Pivot)

 
   
   

 Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Приветствую Вас, дорогие друзья, с Вами Будуев Антон. В этой статье мы подробно разберем функцию, входящую в категорию фильтров языка запросов DAX в Power BI и Power Pivot от Microsoft, с одноименным названием FILTER.

Данная функция работает в DAX как в Excel (Powerpivot), так и в Power BI. Но мы ее будем разбирать на основе Power BI, потому что именно в этой программе имеется возможность создавать вычисляемые таблицы в модели данных.  А на них, в свою очередь, будет удобнее разбирать функцию FILTER и примеры формул DAX с ее участием.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

Да, и еще один момент, в рамках распродажи до 29 ноября 2024 г. у Вас имеется возможность приобрести большой, пошаговый видеокурс «DAX — это просто» со скидкой 50% (вместо 10000, всего за 5000 руб.)

В этом видеокурсе язык DAX преподнесен как простой конструктор, состоящий из нескольких блоков, которые имеют свое определенное, конкретное предназначение. Сочетая различными способами эти блоки, Вы, при помощи конструктора формул DAX, с легкостью сможете решать любые (простые или сложные) аналитические задачи.

Итак, пользуйтесь этой возможностью, заказывайте курс «DAX — это просто» со скидкой 50% (до 29 ноября 2024 г.): узнать подробнее

до конца распродажи осталось:

 

DAX функция FILTER (для Power BI и Power Pivot)

Итак, DAX функция FILTER () — возвращает таблицу, фильтруя исходную таблицу по заданным в параметрах фильтрам. Фильтрация производится по строкам, то есть, возвращаются все столбцы исходной таблицы, а строки только те, которые удовлетворяют условию фильтра.

Синтаксис: FILTER (‘Таблица’; Фильтр)

Где:

  • ‘Таблица’ — исходная таблица или табличное выражение, которую необходимо отфильтровать
  • Фильтр — логическое выражение, которое сравнивается с каждой строчкой таблицы, указанной в первом параметре

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

Так как эта функция в итоге возвращает таблицу, то в основном FILTER () используют внутри самих формул DAX в каких-то промежуточных решениях, например, в составе параметров других функций, которые требуют для своей работы таблицу.

 

Пример формулы DAX на основе работы функции FILTER

Разберем работу FILTER на простейшем примере: у нас имеется исходная таблица ‘Общие Продажи’

 

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

Создадим в Power BI Desktop вычисляемую таблицу, нажав кнопку «Создать таблицу» во вкладке «Моделирование». Итак, код будет таким:

ПродажиОтдел1 = FILTER ('ОбщиеПродажи'; 'ОбщиеПродажи'[Отдел] = "Первый отдел")

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

Та строка, которая удовлетворяет этому условию, в итоге возвращается функцией FILTER, а те строки, которые не удовлетворяют — пропускаются.

Итог работы этой формулы следующий:

 

Как я уже писал выше, сама по себе данная функция используется редко, в основном ее используют в составе формул в одновременной работе с другими функциями.

Как пример, если потребуется создать меру, которая уже сразу должна выдать отфильтрованную в самом коде DAX сумму продаж, то в этом случае FILTER уже будет использоваться в качестве входящего параметра в другой функции:

СуммаПродажОтдел1 = 
SUMX(
    FILTER(
        'ОбщиеПродажи';
        'ОбщиеПродажи'[Отдел] = "Первый отдел"
    );
    'ОбщиеПродажи'[Продажи]
)

И, как итог, формула выдает сумму продаж только по первому отделу:

 

В данном примере FILTER возвращает отфильтрованную таблицу ‘ОбщиеПродажи’ в первый параметр функции SUMX, которая, в свою очередь, уже по этой отфильтрованной таблице вычисляет сумму столбца [Продажи].
 

Функция FILTER и несколько условий фильтров

На просторах Интернета я часто встречаю вопрос о том, как использовать в функции FILTER сразу несколько условий фильтров, ведь параметров для составления условия у нее всего один.

Вариантов здесь два:

  1. Либо дополнительно в условии использовать функции AND() или OR(), или операторы && (и) или || (или).Например, так (в этом примере я соединил два условия в одном при помощи DAX оператора «или» || ):  Или так (здесь мы объединили в FILTER несколько разных условий при помощи функции «и» AND):
  2.  

  3. Либо вложить FILTER саму в себя, проведя двойную фильтрацию. И, таким образом, мы сможем опять же объединить сразу несколько условий фильтров в рамках одной формулы:

На этом, с разбором DAX функции FILTER в Power BI и Power Pivot, все.
 

Подробное ВИДЕО «DAX функция FILTER для Power BI и Power Pivot. Несколько параметров условий в FILTER»









Ссылки из видео:
1) [Регистрируйтесь в бесплатном экспресс курсе] Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot: зарегистрироваться
2) [Скачивайте PDF] Справочник DAX функций для Power BI и Power Pivot на русском языке: скачать

«BI аналитика, и в частности составление формул на языке DAX — это действительно просто. Главное то, что описано выше в статье не просто прочитать, а повторить самостоятельно на практике, тогда Ваши результаты не заставят себя долго ждать!»



 

Друзья, хотите изучить полный курс по языку DAX для Power BI и Power Pivot
со скидкой 50% вместо 10000 всего за 5000 р.?

 
акция действует до 29 ноября


 

 


 
Узнать все подробности об этом курсе, а также заказать его со скидкой 50% всего за 5000 руб. Вы можете на странице курса, кликнув по кнопке ниже (до 29 ноября):
 

Узнать подробнее и заказать курс всего за 5000 руб.

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(21 голос, в среднем: 4.6 из 5 баллов)
[Экспресс-видеокурс] Быстрый старт в языке DAX

 
 
Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»
 
 
 
 

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.
 
Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

 
Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Автор статьи:
Категория: Язык функций и формул DAX для Power BI и Excel (Power Pivot)

Добавить комментарий

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных