VAR

Stocke le résultat d’une expression sous forme de variable nommée, qui peut ensuite être passée comme argument à d’autres expressions de mesure. Une fois que les valeurs obtenues ont été calculées pour une expression de variable, ces valeurs ne changent pas, même si la variable est référencée dans une autre expression.

Syntaxe

VAR <name> = <expression>  

Paramètres

Terme Définition
name Nom de la variable (identificateur).
Les délimiteurs ne sont pas pris en charge. Par exemple, ‘varName’ ou [varName] génèrent une erreur.
Jeu de caractères pris en charge : a-z, A-Z, 0-9.
Les caractères 0-9 ne peuvent pas être utilisés comme premier caractère.
__ (double trait de soulignement) est autorisé comme préfixe pour le nom de l’identificateur.
Aucun autre caractère spécial n’est pris en charge.
Les mots clés réservés ne sont pas autorisés.
Les noms des tables existantes ne sont pas autorisés.
Les espaces vides ne sont pas autorisées.
expression Expression DAX qui retourne une valeur scalaire ou de table.

Valeur de retour

Variable nommée contenant le résultat de l’argument d’expression.

Notes

  • Une expression passée comme argument à VAR peut contenir une autre déclaration VAR.

  • Lors du référencement d’une variable :

    • Les mesures ne peuvent pas faire référence à des variables définies en dehors de l’expression de mesure, mais peuvent faire référence à des variables d’étendue fonctionnelle définies dans l’expression.
    • Les variables peuvent faire référence à des mesures.
    • Les variables peuvent faire référence à des variables définies précédemment.
    • Les colonnes contenues dans des variables de table ne peuvent pas être référencées au moyen d’une syntaxe TableName[ColumnName].
  • Pour connaître les meilleures pratiques lors de l’utilisation de VAR, consultez Utiliser des variables pour améliorer vos formules DAX.

  • Pour en savoir plus sur l’utilisation de VAR dans une requête DAX, consultez Requêtes DAX.

Exemple

Pour calculer un pourcentage de croissance d’une année sur l’autre sans utiliser de variable, vous pouvez créer trois mesures distinctes. Cette première mesure calcule la somme des montants des ventes :

Sum of SalesAmount = SUM(SalesTable[SalesAmount])  

Une deuxième mesure calcule le montant des ventes pour l’année précédente :

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

Vous pouvez ensuite créer une troisième mesure qui combine les deux autres mesures pour calculer le pourcentage de croissance. Notez que la mesure Sum of SalesAmount est utilisée à deux reprises : une première fois pour déterminer s’il existe une vente, et une deuxième fois pour calculer un pourcentage.

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

En utilisant une variable, vous pouvez créer une seule mesure qui calcule le même résultat :

YoY% = VAR Sales = SUM(SalesTable[SalesAmount])  

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

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

En utilisant une variable, vous pouvez obtenir le même résultat, mais de façon plus lisible. Par ailleurs, comme le résultat de l’expression est stocké dans la variable, les performances de la mesure peuvent être considérablement améliorées, car elle n’a pas besoin d’être recalculée à chaque utilisation.

Utiliser des variables pour améliorer vos formules DAX
Requêtes DAX