Accéder au contenu principal Passer au contenu complémentaire

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.

Utilisation de variables dans une expression

Il existe deux manières différentes d'utiliser une variable : dans une référence directe ou dans une expansion $. Si vous utilisez une référence directe, la valeur de la variable sera utilisée dans le calcul. Si vous utilisez une expansion $, l'expansion $ toute entière sera remplacée par la valeur de la variable avant l'analyse de l'expression. C'est pourquoi les deux méthodes différentes peuvent renvoyer des résultats différents.

Exemple : Utilisation d'une variable avec l'expansion $

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 remplacez la valeur de la variable x par, par exemple, Sum(Budget), les données du graphique sont immédiatement recalculées avec l'expression interprétée comme Sum(Budget)/12.

Note ConseilLors de l'utilisation de variables dans des expressions, vous pouvez modifier en une opération l'expression utilisée dans une série de graphiques en éditant simplement la variable.

Exemple : Variable avec une expansion $ dans un tableau croisé dynamique

Supposez que vous ayez un tableau croisé dynamique ou un objet croisé dynamique contenant les éléments suivants :

  • Les dimensions sont Product Type et Product Name.

  • Les mesures sont Sum(Sales) et Count (distinct InvoiceNumber).

  • Les éléments sous Colonnes sont Valeurs (par défaut) et le champ Quarter.

Vous pouvez utiliser des variables pour encourager une analyse interactive. Supposons que vous créiez également une variable vUserInteraction avec une définition vide. Ensuite, vous créez deux graphiques Bouton sur votre feuille, configurés avec l'action Définir la valeur de la variable :

  • Afficher plus de détails : un clic sur ce bouton définit la valeur de vUserInteraction sur ='Yes'.

  • Afficher moins de détails : un clic sur ce bouton définit la valeur de vUserInteraction sur ='No'.

Dans votre tableau croisé dynamique, vous pourriez ajouter un certain nombre de mesures supplémentaires au graphique, comme Count(Quantity) et Sum(Cost). Ensuite, configurez chaque colonne de mesure pour qu'elle ait la valeur suivante pour Afficher la colonne si :

'$(Reference)'='Yes'

Cela permet au graphique de s'adapter au fait que l'utilisateur souhaite ou non obtenir des informations supplémentaires. Si l'utilisateur clique sur le bouton Afficher plus de détails, des mesures supplémentaires sont ajoutées à la table. S'il ne clique pas sur ce bouton ou s'il clique sur Afficher moins de détails, les mesures supplémentaires sont retirées.

Plus d'exemples : Utilisation de variables avec des expansions $

Les expansions $ constituent un outil polyvalent et puissant dans Qlik Sense, offrant de nombreuses utilisations possibles. Pour plus d'exemples, consultez Expansions $.

Exemple : Référencement direct d'une variable dans une expression

L'utilisation d'une variable comme référence directe est moins courante, mais tout de même utile. Par exemple :

Supposons que vous ayez un champ TransactionSummary dans votre modèle de données contenant des résumés de transactions sous forme de texte libre. Ce champ pourrait contenir des informations supplémentaires sur les transactions. Par exemple, une transaction pourrait avoir un résumé documentant le fait que le client a acheté un article avec un crédit de magasin ou indiquant tout problème survenu lors de la vente.

Dans votre application, vous pourriez vouloir utiliser TransactionSummary, mais souhaiter placer les données dans le contexte sans affecter le modèle de données ou le script de chargement et sans stocker ces informations ailleurs dans le graphique.

Vous pourriez procéder comme suit :

  1. Créez une variable nommée vIntroStatement dans la boîte de dialogue des variables avec la définition suivante :

    ='The following summary was provided by the vendor: '
  2. Ajoutez la mesure suivante à un graphique Texte et image :

    vIntroStatement & TransactionSummary

Le stockage de l'instruction d'introduction sous forme de variable vous permet de contrôler de manière centralisée l'utilisation d'une valeur. Par exemple, la variable vIntroStatement pourrait être utilisée dans plusieurs graphiques et dans un certain nombre de mesures différentes (par exemple, il pourrait exister un graphique distinct contenant parfois un texte décrivant le nombre d'unités vendues au cours de la transaction). En utilisant une variable, vous pouvez simplifier le processus de mise à jour des expressions dans l'application. Pour modifier la formulation d'une expression, il suffit de mettre la variable à jour et les modifications sont répercutées dans toute l'application.

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.

Exemples d'interprétation des noms
ExpressionXXX interprété comme :
XXXmesure, 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.

Il est vivement conseillé d'utiliser une convention de nommage standardisée pour les variables que vous créez dans une application. Par exemple, vous pouvez faire en sorte que tous les noms de vos variables commencent par v. Exemple : vTexteUtilisateur. Cela permet de s'assurer que les variables sont rapidement reconnues comme telles et qu'elles se distinguent des mesures, des champs et des fonctions.

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 :

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

 

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 :

Résultats
Dim$(vSales)$(vSales2)
A3501560
B4701560
C7401560

Comme vous pouvez le constater, $(vSales) aboutit à la somme partielle d'une valeur de dimension tandis que $(vSales2) donne la somme totale.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !