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).

Статьи по теме:

  • DAX-Урок 2. Функция CALCULATE