Это самая фундаментальная функция в DAX. Они используются, когда вам нужно изменить контекст, в котором вычисляется выражение (первый параметр функции). Разница между этими двумя функциями связана с типом ввода и типом вывода.
CALCULATE функция принимает в качестве входных данных выражение, которое оценивается как скалярное и возвращает скалярное значение.
CALCULATETABLE функция принимает в качестве входных данных выражение, которое вычисляется в таблице и возвращает таблицу.
Поэтому, если вам нужно изменить контекст, в котором вычисляется скалярное выражение, используйте CALCULATE
. Если вам нужно изменить контекст, в котором вычисляется табличное выражение, используйте CALCULATETABLE
.
Выражения
Выражение, которое оценивает как скалярное, - это все, что возвращает вам скаляр. Например, SUM () , MIN () , MAX () все они возвращают вам одно значение.
Выражение, которое оценивается как таблица: все, что возвращает вам стол. Например, «Моя таблица» [My Field] и VALUES («My Table» [My Field]) оба возвращают вам таблицу.
Источники
Наконец, как узнать тип ввода и тип вывода дакс-функций? Мой любимый источник - dax.guide