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 — это выражение, которое оценивается как TRUE
orFALSE
. Существует несколько правил, которые они должны соблюдать:
- Они могут ссылаться только на один столбец.
- Они не могут ссылаться на меры.
- Они не могут использовать вложенную функцию 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 |
содержимое Related
- контекста
- функция CALCULATE (DAX)
- функции Filter (DAX)