VAR

Almacena el resultado de una expresión como una variable con nombre que después se puede pasar como argumento a otras expresiones de medida. Una vez que se han calculado los valores resultantes de una expresión variable, esos valores no cambian, aunque se haga referencia a la variable en otra expresión.

Sintaxis

VAR <name> = <expression>  

Parámetros

Término Definición
name Nombre de la variable (identificador).
No se admiten delimitadores. Por ejemplo, "varName" o [varName] da lugar a un error.
Juego de caracteres admitido: a-z, A-Z, 0-9.
0-9 no son válidos como primer carácter.
__ (doble subrayado) se permite como prefijo del nombre del identificador.
No se admiten otros caracteres especiales.
No se permiten palabras clave reservadas.
No se permiten nombres de tablas existentes.
No se permiten espacios vacíos.
expression Expresión DAX que devuelve un valor escalar o de tabla.

Valor devuelto

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

Comentarios

  • Una expresión pasada 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 medida, 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 mediante la sintaxis TableName[ColumnName].
  • Para conocer los procedimientos recomendados al usar VAR, consulte Uso de variables para mejorar las fórmulas DAX.

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

Ejemplo

Para calcular un porcentaje de crecimiento interanual sin usar una variable, puede crear tres medidas independientes. Esta primera medida calcula Sum of Sales Amount:

Sum of SalesAmount = SUM(SalesTable[SalesAmount])  

Una segunda medida calcula el importe de ventas del año anterior:

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

Luego puede crear una tercera medida que combine las otras dos medidas a fin de calcular un porcentaje de crecimiento. Observe que la medida Sum of SalesAmount se usa en dos lugares: primero para determinar si hay una venta y luego para calcular un porcentaje.

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

Mediante una variable, puede crear una única medida 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 una variable, puede obtener el mismo resultado, pero de forma más legible. Y dado que el resultado de la expresión se almacena en la variable, el rendimiento de la medida se puede mejorar significativamente porque no tiene que volver a calcularse cada vez que se usa.

Uso de variables para mejorar las fórmulas DAX
Consultas DAX