Compartir a través de


VAR

Almacena el resultado de una expresión como una variable con nombre, que luego se puede pasar como argumento a otras expresiones de measure. Una vez que se han calculado values resultantes para una expresión variable, esas valuesnot cambian, evenif se hace referencia a la variable en otra expresión.

Sintaxis

VAR <name> = <expression>

Parámetros

Término Definición
name Nombre de la variable (identificador).
Los delimitadores se admiten not. Por ejemplo, "varName" or [varName] dará como resultado un error.
Juego de caracteres admitido: a-z, A-Z, 0-9.
0-9 son not válidos como first carácter.
__ (carácter de subrayado doble) se permite como prefijo al nombre del identificador.
No se admite ningún otro carácter especial.
Se permiten palabras clave reservadas not.
Se permiten nombres de tablas existentes not.
Se permiten espacios vacíos not.
expression Expresión DAX que devuelve una tabla escalar orvalue.

Devolver value

Variable con nombre que contiene el resultado del argumento de expresión.

Observaciones

  • Una expresión que se pasa como argumento a VAR puede contener otra declaración VAR.

  • Al hacer referencia a una variable:

    • Las medidas no pueden hacer referencia a variables definidas fuera de la expresión de measure, pero pueden hacer referencia a variables de ámbito funcional definidas dentro de la expresión.
    • Las variables pueden hacer referencia a medidas.
    • Las variables pueden hacer referencia a variables definidas previamente.
    • No se puede hacer referencia a columnas de variables de tabla a través de la sintaxis TableName[ColumnName].
  • Para conocer los procedimientos recomendados al usar VAR, consulte Uso de variables para mejorar las fórmulas de DAX.

  • Para obtener más información sobre cómo se usa VAR en una consulta de DAX, consulte DAX consultas.

Ejemplo

Para calculate un porcentaje de yearyear crecimiento sin usar una variable, podría crear tres medidas independientes. Este firstmeasure calcula Sum de Importe de ventas:

Sum of SalesAmount = SUM(SalesTable[SalesAmount])

Un secondmeasure calcula el importe de ventas del previousyear:

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

A continuación, puede crear una tercera measure que combine las otras dos medidas para calculate un porcentaje de crecimiento. Observe que la Sum de measure SalesAmount se usa en dos lugares; first para determinar if hay una venta y, a continuación, volver a calculate un porcentaje.

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

Con una variable, puede crear un único measure que calcule el mismo resultado:

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

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

Mediante el uso de una variable, puede obtener el mismo resultado, pero de una manera más legible. And debido a que el resultado de la expresión se almacena en la variable, el rendimiento del measurese puede mejorar significativamente porque no es necesario volver a calcular cada time se usa.

Uso de variables para mejorar las fórmulas de DAXDAX consultas