Функция CALCULATETABLE

Вычисляет табличное выражение в контексте, изменяемом данными фильтрами.

CALCULATETABLE(<expression>,<filter1>,<filter2>,…)

Элемент

Определение

Expression

Вычисляемое табличное выражение

filter1,filter2,…

Логическое или табличное выражение, определяющее фильтр

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

К логическим выражениям, используемым в качестве аргументов, применяются следующие ограничения.

  • Выражение не может ссылаться на меру.

  • В выражении не может использоваться вложенная функция CALCULATE.

  • В выражении не может использоваться функция, просматривающая таблицу или возвращающая таблицу, в том числе статистические функции.

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

Таблица значений.

Функция CALCULATETABLE изменяет контекст, в котором выполняется фильтрация данных, и вычисляет выражение в новом указанном контексте. Для каждого столбца, используемого в аргументе фильтра, удаляются все существующие фильтры, и вместо них применяется фильтр, указанный в аргументе фильтра.

Эта функция является синонимом для функции RELATEDTABLE.

В следующем примере функция CALCULATETABLE используется для получения суммы продаж через Интернет за 2006 г. Затем это значение используется для вычисления отношения продаж через Интернет ко всем продажам за 2006 г.

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

Метки строк

Internet SalesAmount_USD

CalculateTable 2006 Internet Sales

Internet Sales to 2006 ratio.

2005

$2,627,031.40

$5,681,440.58

0.46

2006

$5,681,440.58

$5,681,440.58

1.00

2007

$8,705,066.67

$5,681,440.58

1.53

2008

$9,041,288.80

$5,681,440.58

1.59

Общий итог

$26,054,827.45

$5,681,440.58

4.59

=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2006)
     , [SalesAmount_USD])