VAR
Сохраняет результат выражения в виде именованной переменной, которая затем может быть передана в качестве аргумента другим measure выражениям. После вычисления результирующих values для выражения переменной эти values изменяются not, evenif переменная ссылается в другом выражении.
Синтаксис
VAR <name> = <expression>
Параметры
Срок | Определение |
---|---|
name |
Имя переменной (идентификатор). Разделители поддерживаются not. Например, or [varName] or [varName] приведет к . Поддерживаемый набор символов: a-z, A-Z, 0-9. 0-9 not допустимы как символ first. __ (двойной подчеркивание) допускается в качестве префикса имени идентификатора. Другие специальные символы не поддерживаются. Зарезервированные ключевые слова not разрешены. Имена существующих таблиц not разрешены. Пустые пробелы not разрешены. |
expression |
Выражение DAX, возвращающее скалярную таблицу orvalue. |
Возврат value
Именованной переменной, содержащей результат аргумента выражения.
Замечания
Выражение, переданное в качестве аргумента для VAR, может содержать другое объявление VAR.
При ссылке на переменную:
- Меры не могут ссылаться на переменные, определенные вне выражения measure, но могут ссылаться на переменные функциональной области, определенные в выражении.
- Переменные могут ссылаться на меры.
- Переменные могут ссылаться на ранее определенные переменные.
- Столбцы в табличных переменных нельзя ссылаться с помощью синтаксиса TableName[ColumnName].
Рекомендации по использованию VARсм. в статье Использование переменных для улучшения DAX формул.
Дополнительные сведения о том, как
используется в запросе, см. в запросов.
Пример
Чтобы calculate процент yearyear роста без использования переменной, можно создать три отдельных меры. Этот firstmeasure вычисляет Sum объема продаж:
Sum of SalesAmount = SUM(SalesTable[SalesAmount])
second measure вычисляет сумму продаж для previousyear:
SalesAmount PreviousYear =
CALCULATE([Sum of SalesAmount],
SAMEPERIODLASTYEAR(Calendar[Date])
)
Затем можно создать третий measure, который объединяет другие два меры, чтобы calculate процент роста. Обратите внимание, что Sum SalesAmount measure используется в двух местах; first определить, if есть продажа, а затем снова calculate процент.
Sum of SalesAmount YoY%: =
IF([Sum of SalesAmount] ,
DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
)
С помощью переменной можно создать один measure, который вычисляет тот же результат:
YoY% =
VAR Sales =
SUM(SalesTable[SalesAmount])
VAR SalesLastYear =
CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )
return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))
Используя переменную, вы можете получить тот же результат, но более читаемым способом. And, так как результат выражения хранится в переменной, производительность measureможет быть значительно улучшена, так как она не должна быть пересчитана каждой time используемой.
содержимое Related
Использование переменных для улучшения формул DAXDAX запросов