Exemples d'utilisation d'une variable dans une expression
Dans Qlik Sense, une variable est une entité nommée qui contient une valeur de données. Lorsqu'une variable est utilisée dans une expression, elle est remplacée par sa valeur ou sa définition.
La variable x contient la chaîne de texte Sum(Sales).
Dans un graphique, vous définissez l'expression $(x)/12. L'effet est exactement le même qu'avec l'expression de graphique Sum(Sales)/12.
Cependant, si vous modifiez la valeur de la variable x pour, par exemple, Sum(Budget), les données du graphique sont immédiatement recalculées avec l'expression interprétée comme Sum(Budget)/12.
Interprétation des noms
Il est déconseillé d'utiliser le même nom pour un champ et une fonction dans Qlik Sense Cependant, si vous poursuivez, vous devez savoir comment les utiliser dans une expression.
La chaîne XXX représente un champ, une variable, une fonction ou une mesure. XXX sera interprété comme l'un de ces éléments selon la façon dont vous créez l'expression.
Expression | XXX interprété comme : |
---|---|
XXX | mesure, variable ou champ |
$(XXX) | variable |
Count(XXX) | champ ou variable |
XXX() | fonction |
Lors du nommage d'une entité, évitez d'attribuer le même nom à plus d'un champ, d'une variable ou d'une mesure. Il existe un ordre de précédence strict pour la résolution des conflits entre les entités portant des noms identiques. Cet ordre est reflété dans tous les objets ou contextes dans lesquels ces entités sont utilisées. Cet ordre des priorités est le suivant :
-
À l'intérieur d'une agrégation, un champ est prioritaire sur une variable. Les étiquettes de mesure n'ont pas d'importance dans les agrégations et ne sont pas priorisées.
-
En dehors d'une agrégation, une étiquette de mesure est prioritaire sur une variable, qui, à son tour, est prioritaire sur un nom de champ.
-
De plus, en dehors d'une agrégation, une mesure peut être réutilisée en référençant son étiquette, sauf si l'étiquette est en fait une étiquette calculée. Dans ce cas, la mesure perd en signification afin de réduire le risque d'auto-référence et le nom sera toujours interprété d'abord comme une étiquette de mesure, puis comme un nom de champ, et enfin comme un nom de variable.
Calcul des variables
Qlik Sense offre différentes façons d'utiliser des variables dont les valeurs sont calculées. Le résultat dépend de la façon dont elles sont définies et appelées dans une expression.
Cet exemple nécessite le chargement des données suivantes dans l'éditeur de chargement de données :
Définissons deux variables depuis la boîte de dialogue Variables :
- Nom vSales Définition'Sum(Sales)'
- Nom vSales2 Définition'=Sum(Sales)'
Dans la seconde variable, un signe égal est ajouté avant l'expression. Ceci entraîne le calcul de la variable avant qu'elle ne soit étendue et l'expression évaluée.
Si vous utilisez la variable vSales telle quelle, par exemple dans une mesure, le résultat correspond à la chaîne Sum(Sales), c'est-à-dire qu'aucun calcul n'est réalisé.
Si vous ajoutez une expansion $ et appelez $(vSales) dans l'expression, la variable est étendue et la somme des ventes (Sales) est affichée.
Enfin, si vous appelez $(vSales2), la variable est calculée avant d'être étendue. En d'autres termes, le résultat affiché correspond à la somme totale des ventes (Sales). Le graphique suivant illustrant les résultats montre la différence entre l'utilisation de =$(vSales) et de =$(vSales2) comme expressions de mesure :
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Comme vous pouvez le constater, $(vSales) aboutit à la somme partielle d'une valeur de dimension tandis que $(vSales2) donne la somme totale.