VAR

Stocke le résultat d’une expression sous la forme d’une variable nommée, que vous pouvez ensuite passer en tant qu’argument à d’autres expressions de mesure. Après DAX avoir calculé les valeurs d’une expression de variable, ces valeurs ne changent pas, même si vous référencez la variable 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ère une erreur.
Jeu de caractères pris en charge : a-z, A-Z, 0-9.
0-9 ne sont pas valides comme premier caractère.
__ (trait de soulignement double) est autorisé en tant que préfixe au 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és.
expression Expression DAX qui retourne une valeur scalaire ou table.

Valeur de retour

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

Remarques

  • Une expression passée en tant qu’argument à VAR peut contenir une autre déclaration de VAR.

  • Lorsque vous référencez 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.
    • Vous ne pouvez pas référencer des colonnes dans des variables de table à l’aide de la 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 DAX requêtes.

Exemple

Les exemples de cet article peuvent être utilisés avec l’exemple de modèle Adventure Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez DAX exemple de modèle.

Pour calculer un pourcentage de croissance annuelle sans utiliser de variable, vous pouvez créer trois mesures distinctes. Cette première mesure calcule la somme du montant des ventes :

Sum of Sales Amount =
SUM ( Sales[Sales Amount] )

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

Sales Amount PreviousYear =
CALCULATE ( [Sum of Sales Amount], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )

Vous pouvez ensuite créer une troisième mesure qui combine les deux autres mesures pour calculer un pourcentage de croissance. Notez que Sum of SalesAmount est utilisé à deux endroits : tout d’abord pour vérifier si une vente existe, puis de nouveau pour calculer un pourcentage.

Sum of SalesAmount YoY%: =
IF (
    [Sum of Sales Amount] && [Sales Amount PreviousYear],
    DIVIDE (
        ( [Sum of Sales Amount] - [Sales Amount PreviousYear] ),
        [Sales Amount PreviousYear]
    )
)

À l’aide d’une variable, vous pouvez créer une seule mesure qui calcule le même résultat :

YoY% =
VAR Sales =
    SUM ( Sales[Sales Amount] )
VAR SalesLastYear =
    CALCULATE ( SUM ( Sales[Sales Amount] ), SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
RETURN
    IF ( Sales && SalesLastYear, DIVIDE ( Sales - SalesLastYear, SalesLastYear ) )

En utilisant une variable, vous pouvez obtenir le même résultat d’une manière plus lisible. Et étant donné que le résultat de l’expression est stocké dans la variable, les performances de la mesure s’améliorent considérablement, car DAX elle ne le recalcule pas chaque fois qu’elle est utilisée.