VAR

Сохраняет результат выражения в виде именованной переменной, которая затем может быть передана в качестве аргумента другим measure выражениям. После вычисления результирующих values для выражения переменной эти values изменяются not, evenif переменная ссылается в другом выражении.

Синтаксис

VAR <name> = <expression>  

Параметры

Срок Определение
name Имя переменной (идентификатор).
Разделители поддерживаются not. Например, or [varName] or [varName] приведет к error.
Поддерживаемый набор символов: 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 используемой.

Использование переменных для улучшения формул DAX
DAX запросов