События
31 мар., 23 - 2 апр., 23
Det ultimate Microsoft Fabric-, Power BI-, SQL- og AI-fellesskapsledede arrangementet. 31. mars til 2. april 2025.
Registrer deg i dagЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления
Вычисляет выражение в измененном filter контексте.
Примечание
Есть также функция CALCULATETABLE. Он выполняет точно те же функции,
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Срок | Определение |
---|---|
expression |
Вычисляемого выражения. |
filter1, filter2,… |
(Необязательно) Логические выражения or табличные выражения, определяющие filters, orfilter модификаторы. |
Выражение, используемое в качестве параметра first, по сути, совпадает с measure.
Filters может быть:
Если существует несколько
Логическое выражение filter — это выражение, которое оценивается как TRUE
orFALSE
. Существует несколько правил, которые они должны соблюдать:
Начиная с выпуска Power BI Desktop за сентябрь 2021 г., также применяются следующие действия:
Total sales on the last selected date =
CALCULATE (
SUM ( Sales[Sales Amount] ),
'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] )
)
Табличное выражение 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, который является результатом выражения.
При предоставлении выражений filter функция CALCULATE изменяет контекст filter для evaluate выражения. Для каждого выражения filter существует два возможных стандартных результата, когда выражение filternot упаковано в функцию KEEPFILTERS:
Функция CALCULATE, используемая без filters достигает определенного требования. Он преобразует контекст строки в filter контекст. Это необходимо, если выражение (not модели measure) для суммирование данных модели необходимо оценить в контексте строки. Этот сценарий может произойти в формуле вычисляемого столбца or при вычислении выражения в функции итератора. Обратите внимание, что при использовании модели measure в контексте строки переход контекста выполняется автоматически.
Эта функция not поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах or правилах безопасности на уровне строк (RLS).
В следующей таблице Sales таблица measure дает результат дохода, но только для продуктов с цветом синего цвета.
Примеры в этой статье можно использовать с моделью sample Adventure Works DW 2020 Power BI Desktop. Сведения о получении модели см. в
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
Категория | Сумма продаж | Синий доход |
---|---|---|
Принадлежности | $1,272,057,89 | $165,406,62 |
Велосипеды | $94,620,526.21 | $8,374,313,88 |
Одежда | $2,117,613,45 | $259,488,37 |
Компоненты | $11,799,076,66 | $803,642.10 |
всего | $ 109,809,274.20 | $ 9602,850,97 |
Функция CALCULATE оценивает sum таблицы SalesSales Amount в измененном контексте filter. В таблицу Product добавляется новый filter столбец color—or, filter перезаписывает все filter, которые уже применены к столбцу.
В следующей таблице Salesmeasure определение создает соотношение продаж по продажам за all каналов продаж.
Канал | Сумма продаж | Общий канал % выручки |
---|---|---|
Интернет | $29,358,677,22 | 26.74% |
Перекупщик | $80,450,596,98 | 73.26% |
всего | $ 109,809,274.20 | 100.00% |
Revenue % Total Channel =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
REMOVEFILTERS('Sales Order'[Channel])
)
)
Функция DIVIDE делит выражение, которое суммирует таблицу salesстолбца Sales Amountvalue (в контексте filter) на то же выражение в измененном контексте filter. Это функция CALCULATE, которая изменяет контекст filter с помощью функции REMOVEFILTERS, которая является функцией модификатора filter. Он удаляет
Следующая Customer таблица вычисляемого столбца классифицирует клиентов в класс лояльности. Это очень простой сценарий: когда доход, полученный клиентом, меньше $ 2500, они классифицируются как Низкий; в противном случае они High.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
В этом примере контекст строки преобразуется в контекст filter. Он называется переходом контекста. Функция ALLEXCEPT удаляет filters из столбцов таблицы allCustomerexcept столбца CustomerKey.
контекста
контекст строки
CALCULATETABLE
функции
функции Filter
События
31 мар., 23 - 2 апр., 23
Det ultimate Microsoft Fabric-, Power BI-, SQL- og AI-fellesskapsledede arrangementet. 31. mars til 2. april 2025.
Registrer deg i dag