Partilhar via


VAR

Armazena o resultado de uma expressão como uma variável nomeada, que pode ser passada como um argumento para outras expressões measure. Uma vez que os values resultantes tenham sido calculados para uma expressão variável, esses valuesnot mudam, evenif a variável é referenciada em outra expressão.

Sintaxe

VAR <name> = <expression>

Parâmetros

Vigência Definição
name O nome da variável (identificador).
Os delimitadores not são suportados. Por exemplo, 'varName' or [varName] resultará em um error.
Conjunto de caracteres suportado: a-z, A-Z, 0-9.
0-9 not são válidos como first caractere.
__ (sublinhado duplo) é permitido como um prefixo para o nome do identificador.
Nenhum outro caractere especial é suportado.
Palavras-chave reservadas not permitidas.
Nomes de tabelas existentes not são permitidos.
Espaços vazios not são permitidos.
expression Uma expressão DAX que retorna uma tabela or escalar value.

Regresso value

Uma variável nomeada que contém o resultado do argumento de expressão.

Comentários

  • Uma expressão passada como um argumento para VAR pode conter outra declaração VAR.

  • Ao fazer referência a uma variável:

    • As medidas não podem referir-se a variáveis definidas fora da expressão measure, mas podem referir-se a variáveis de âmbito funcional definidas dentro da expressão.
    • As variáveis podem referir-se a medidas.
    • As variáveis podem referir-se a variáveis previamente definidas.
    • As colunas em variáveis de tabela não podem ser referenciadas por meio da sintaxe TableName[ColumnName].
  • Para conhecer as práticas recomendadas ao usar VAR, consulte Usar variáveis para melhorar suas fórmulas DAX.

  • Para saber mais sobre como o VAR é usado em uma Consulta DAX, consulte DAX consultas.

Exemplo

Para calculate uma porcentagem de crescimento de yearsobreyear sem usar uma variável, você pode criar três medidas separadas. Este firstmeasure calcula Sum do Valor das Vendas:

Sum of SalesAmount = SUM(SalesTable[SalesAmount])

Um secondmeasure calcula o valor das vendas para o previousyear:

SalesAmount PreviousYear =
    CALCULATE([Sum of SalesAmount],
    SAMEPERIODLASTYEAR(Calendar[Date])
    )

Em seguida, você pode criar um terceiro measure que combine as outras duas medidas para calculate uma porcentagem de crescimento. Observe que o Sum de SalesAmount measure é usado em dois lugares; first determinar if há uma venda e, em seguida, novamente para calculate uma porcentagem.

Sum of SalesAmount YoY%: = 
    IF([Sum of SalesAmount] ,
        DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount])
    )

Usando uma variável, você pode criar uma única measure que calcula o mesmo resultado:

YoY% =
  VAR Sales = 
      SUM(SalesTable[SalesAmount])
  VAR SalesLastYear =
      CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) )

  return if(Sales, DIVIDE(Sales – SalesLastYear, Sales))

Usando uma variável, você pode obter o mesmo resultado, mas de uma forma mais legível. And como o resultado da expressão é armazenado na variável, o desempenho do measurepode ser significativamente melhorado porque não precisa ser recalculado a cada time é usado.

Use variáveis para melhorar suas fórmulasDAX consultas DAX