Поделиться через


CALCULATETABLE

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

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

Заметка

Есть также функция CALCULATE. Он выполняет точно те же функции, изменяет контекста , применен ного к выражению, возвращающим скалярные .

Синтаксис

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

Параметры

Срок Определение
expression Вычисляемая таблица.
filter1, filter2,… (Необязательно) Логические выражения or табличные выражения, определяющие filters, orfilter модификаторы.

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

Filters может быть:

  • Логические выражения filter
  • Выражения filter таблицы
  • функции изменения Filter

При наличии нескольких filtersони оцениваются с помощью ANDлогического оператора. Это означает, что all условия должны быть TRUE в том же time.

Логические выражения filter

Логическое выражение filter — это выражение, которое оценивается как TRUEorFALSE. Существует несколько правил, которые они должны соблюдать:

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

Начиная с выпуска Power BI Desktop за сентябрь 2021 г., также применяются следующие действия:

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

Выражение табличного filter

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

функции модификатора Filter

Filter функции модификатора позволяют выполнять больше, чем просто добавлять filters. Они предоставляют дополнительные элементы управления при изменении контекста filter.

Функция Цель
REMOVEFILTERS Удалите allfilters, orfilters из одной or больше столбцов таблицы, or из all столбцов одной таблицы.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Удалите filters из одного or больше столбцов, or из all столбцов одной таблицы.
KEEPFILTERS Добавьте filter без удаления существующих filters в одних столбцах.
USERELATIONSHIP Включение неактивной связи между столбцами related, в этом случае активная связь автоматически станет неактивной.
CROSSFILTER Измените направление filter (от обоих до одного, or из одного в оба) or отключить связь.

1 Функция ALLand его варианты ведут себя как модификаторы filterand как функции, возвращающие объекты таблицы. If функция REMOVEFILTERS поддерживается средством, лучше использовать ее для удаления filters.

Возврат value

Таблица values.

Замечания

  • При предоставлении выражений filter функция CALCULATETABLE изменяет контекст filter для evaluate выражения. Для каждого выражения filter существует два возможных стандартных результата, когда выражение filternot упаковано в функцию KEEPFILTERS:

    • If столбцы (таблицыor) не содержатся в контексте filter, а новые filters будут добавлены в контекст filter для evaluate выражения.
    • If столбцы (таблицыor) уже находятся в контексте filter, существующий filters будет перезаписан новым filters, чтобы evaluate выражение CALCULATETABLE.
  • Эта функция not поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах or правилах безопасности на уровне строк (RLS).

Пример

В следующем примере функция CALCULATETABLE используется для получения sum интернет-продаж за 2006 год. Это value позже используется для calculate соотношения интернет-продаж по сравнению с all продаж для year 2006 года.

Следующая формула:

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

Это приводит к следующей таблице:

Метки строк Интернет SalesAmount_USD CalculateTable 2006 Интернет-продажи Соотношение интернет-продаж до 2006
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