Первая функция, с которой необходимо начинать изучение DAX является CALCULATE. Данная функция не имеет точного аналога в Excel, однако ее можно сравнить с функциями SUMIFS да COUNTIFS . Если кратко, то данная функция выполняет наложение фильтров на другие расчетные функции, тем самым мы можем отбирать и включать в расчет только нужные нам данные.
=CALCULATE(< статистическое выражение >, < фильтр1 >, < фильтр2 >, ...)
< статистическое выражение >
Статистическое выражение должно нам вернуть результат вычисления (значение, а не таблицу). По этой причине в этом параметре часто используются статистические функции типа SUM , MIN , MAX , COUNTROWS тому подобное.
< фильтр1 >, < фильтр2 >, ...
Фильтр определяет диапазон данных, над которыми нужно работать. Здесь указываются условия для отбора значений.
Допустим мы имеем такую таблицу, которая называется
Давайте на ее основе создадим сводную таблицу и подсчитаем количество записей для каждого продукта.
Теперь давайте создадим новое расчетное поле
Как мы получили в расчетном поле Count_All_Product цифры 16 ? Объяснение в том, что мы сняли для этого поля все фильтры, которые были применены в сводной таблице (каждая строка в сводной таблице это отдельный фильтр), с помощью функции ALL() . То есть, иначе говоря, функция ALL(
Давайте добавим еще одно поле
Видим, что цифры в поле
=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))
Мы изменили аргумент для функции ALL(), заменив
Итак видим, что на поле