ВВЕРХ

DAX-Урок 3. Функция отбора данных FILTER

Описание

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

Синтаксис функции FILTER()

=FILTER(< таблица >, < фильтр >)

< таблица >

Таблица, которую мы хотим отфильтровать. Также может быть выражение, которое возвращает таблицу как результат:

  1. 'НазваниеТаблицы'
  2. ALL( 'НазваниеТаблицы' ) или ALL( 'НазваниеТаблицы' [ НазваниеКолонки ])
  3. FILTER( 'НазваниеТаблицы' , 'НазваниеТаблицы' [ НазваниеКолонки ] = " Зеленый ")
  4. VALUES( 'НазваниеТаблицы' [ НазваниеКолонки ])

< фильтр >

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

  1. [ НазваниеКолонки ] = Авто
  2. [ НазваниеКолонки ] >= 6

Давайте рассмотрим, как это выглядит на практике. Допустим мы имеет такую таблицу, которая называется Demo :

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

=CALCULATE(COUNTROWS(Demo); FILTER(Demo; Demo[Product]="Bikes"))

Как результат получим следующие значения в поле Count_All_Product:

Что сделала функция FILTER? Она уменьшила размеры таблицы, так как это мы делаем в Excel, установив фильтр в колонке Product и отфильтровав только записи со значениями Bikes :

Затем сосчитало количество всех строк в уменьшенной таблице. Видим, что в других строках нет записей по полю Count_All_Product, поскольку в новой таблице отсутствуют коньки (Skates) и сноуборды (Snow Board) .