# Expansion $ comprenant une variable

Dans le script de chargement ou dans une expression de graphique, utilisez une variable dans une expansion de signe dollar pour :

* Référencer un texte.

* Référencer une valeur numérique.

## Une variable texte.

Lorsque vous utilisez une variable pour remplacer du texte dans le script ou dans une expression, respectez la syntaxe suivante :

` $(variablename)
             `

`$(variablename)` développe l'expression de la valeur dans la variable. Si `variablename` n'existe pas, l'expansion correspond à une chaîne vide.

## Exemples : Scripts de chargement de variables de type texte

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple 1 : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
Set x = 'red';  	// Assign the value "red" to variable x
Set y = 'blue'; 	 // Assign the value "blue" to variable y
Set z = '$(x) $(y)';    // Expands x and y, returns "red blue" in variable z

// Expand x and y, return "red green blue" in variable MyString

Let MyString='$(x)'&' green '&'$(y)';

// Create table MyTable, load variable values for x, y, z into fields X, Y, Z
// Concatenate with variable MyString into field NewString

MyTable:
Load '$(x)' as X, '$(y)' as Y, '$(z)' as Z, '$(MyString)' as NewString autogenerate 1;
```

Pour plus d'informations sur l'utilisation de chargements inline, consultez [Utilisation de chargements inline pour charger des données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

Explication

Cet exemple démontre :

* Comment développer une variable dans des affectations de variables.

* Comment développer des variables combinées avec des opérations textuelles.

Il s'agit d'une configuration utile pour créer des étiquettes dynamiques et des chaînes de texte générales qui combinent le contenu d'une variable avec des chaînes statiques.

Sortie

Créez le tableau suivant dans Qlik Sense :

Tableau - sortie provenant du script de chargement

| X | Y | Z | NewString |
| --- | --- | --- | --- |
| red | blue | red blue | red green blue |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple 2 : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
Set vFunction = 'upper';  // Assign the string “upper” to variable vFunction
Set vField = 'String';    // Assign the string "String" to variable vField
Let vEvaluate = '$(vFunction)'&'('&'$(vField)'&')';

// The variable vEvaluate returns the value "upper(string)"

MyTable: // Create table called MyTable
Load *, $(vEvaluate) as Upper;          // vEvaluate expanded as a dynamic expression
Load *, '$(vEvaluate)' as Expression;   // vEvaluate expanded as string
Load * inline [
ID, String
1, abc
2, def
3, ghi
4, jkl ];
```

Explication

Les instructions `Set` et `Let` sont utilisées pour affecter des valeurs aux variables du script de chargement. La différence entre les deux réside dans le fait que l'instruction `Set` affecte une chaîne à la variable, tandis que l'instruction `Let` évalue le contenu de la chaîne avant d'affecter la valeur obtenue à la variable. Dans cet exemple, le tableau de chargement inline est complété de deux instructions preceding load qui sont utilisées pour visualiser différentes évaluations de la variable `vEvaluate` sous forme de chaîne de texte et d'expression correspondante.

Sortie

Créez le tableau suivant dans Qlik Sense :

Tableau - sortie provenant du script de chargement

| ID | String | Expression | Upper |
| --- | --- | --- | --- |
| 1 | abc | upper(String) | ABC |
| 2 | def | upper(String) | DEF |
| 3 | ghi | upper(String) | GHI |
| 4 | jkl | upper(String) | JKL |

## Exemple : Expression de graphique de variables de type texte

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
// Create table SalesByCountry
SalesByCountry:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
Belgium, 2014, 182766.87
Belgium, 2015, 178042.33
Brazil, 2014, 174492.67
Brazil, 2015, 2104.22
Canada, 2014, 101801.33
Canada, 2015, 40288.25
Denmark, 2014, 45273.25
Denmark, 2015, 106938.41
Finland, 2014, 107565.55
Finland, 2015, 30583.44
France, 2014, 115644.26
France, 2015, 30696.98
Germany, 2014, 8775.18
Germany, 2015, 77185.68
];
```

Variables

Dans une feuille en mode d'édition, ouvrez la boîte de dialogue Variables depuis le panneau des ressources.

Ouverture de la boîte de dialogue Variables

Ouverture de la boîte de dialogue Variables

Ouverture de la boîte de dialogue Variables ![Indicateurs ICP via des modificateurs d'ensemble.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_open_variable_dialog.png)

Créez les variables suivantes :

Variable à créer

| Nom | Définition |
| --- | --- |
| vSales | Sum(Sales) |
| vSales2014 | Sum({&lt;Year={2014}&gt;}Sales) |
| vSales2015 | Sum({&lt;Year={2015}&gt;} Sales) |
| vSalesAllYears | $(vSales2014) +$(vSales2015) |
| vSalesDifference | $(vSales2015)/$(vSales2014) - 1 |

Variables

Variables

Variables ![Indicateurs ICP via des modificateurs d'ensemble.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_variables_window_new.png)

Créez des graphiques d'indicateurs ICP pour afficher les expansions.

Indicateurs ICP utilisant des expansions de signe dollar

Indicateurs ICP utilisant des expansions de signe dollar

Indicateurs ICP utilisant des expansions de signe dollar ![Indicateurs ICP utilisant des expansions de signe dollar.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_dollar_kpis.png)

## Expansion de variable numérique

La syntaxe suivante est utilisée pour les expansions de variables numériques :

` (#variablename)
             `

Cette expansion produit toujours une représentation en point décimal valide de la valeur numérique de la variable, éventuellement avec une notation exponentielle (pour les nombres très grands ou très petits). Si `variablename` n'existe pas ou ne contient pas de valeur numérique, la valeur est développée sur 0 au lieu de NULL.

## Exemples : Scripts de chargement de variables numériques

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple 1 : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
Set DecimalSep = ',';  // Set decimal comma as separator for this example.
Let X = 7/2;           // Assign the expression 7/2 to variable X.

MyTable:   // Create an inline table labeled “MyTable”
Load 1 as ID, * inline [  
DecimalComma	DecimalPoint
$(X)	$(#X) ] 
(delimiter is '\t'); 
```

Explication

L'expansion `#vVariable` produit toujours une représentation en point décimal valide de la valeur numérique de la variable. Cela s'avère utile lorsqu'une virgule est utilisée au lieu d'un point comme séparateur décimal et qu'il existe un risque de conflit avec des listes séparées par des virgules.

La raison principale de l'expansion de ces variables dans un tableau de chargement inline réside dans le fait qu'aucun guillemet supplémentaire ne doit être ajouté à `$(X)`.

Sortie

Créez le tableau suivant dans Qlik Sense :

Tableau - sortie provenant du script de chargement

| DecimalComma | DecimalPoint |
| --- | --- |
| 3,5 | 3.5 |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple 2 : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
// The three Set statements below are required to mimic and initialize
// Format specifiers that are relevant to this particular example

Set ThousandSep=' '; 		// Set example thousand separator
Set DecimalSep=','; 		// Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss';	 // Set example date format
Let vRaw = today()-1/1440;  		 // Timestamp minus one minute
Let vFormat = timestamp($(#vRaw));	 // Formatted as timestamp

// Create MyTable as an inline table to expand variables as field values
						
MyTable:
Load * inline [
DecimalComma	DecimalPoint	FormattedNumber
$(vRaw)	$(#vRaw)	$(vFormat) ] (delimiter is '\t');
```

Explication

L'expansion #vVariable produit toujours une représentation en point décimal valide de la valeur numérique de la variable. Cela s'avère utile lorsqu'une virgule est utilisée au lieu d'un point comme séparateur décimal et qu'il existe un risque de conflit avec des listes séparées par des virgules. Il est également important de noter que la précision numérique sera affectée, car la partie décimale sera tronquée lors de l'expansion des variables sans séparateur décimal correct.

La raison principale de l'expansion de ces variables dans un tableau de chargement inline réside dans le fait qu'aucun guillemet supplémentaire ne doit être ajouté à $(X).

Sortie

Créez le tableau suivant dans Qlik Sense :

Tableau - sortie provenant du script de chargement

| DecimalComma | DecimalPoint | FormattedNumber |
| --- | --- | --- |
| 44 470,00 | 44469.999305556 | 2021-09-18 23:59:00 |

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansion-using-variable.htm)

#### Exemple 3 : Script de chargement

Script de chargement

Chargez les données suivantes sous forme de chargement inline dans l'éditeur de chargement de données :

```
// The three Set statements below are required to mimic and initialize
// format specifiers that are relevant to this particular example

Set ThousandSep=' '; 		// Set example thousand separator
Set DecimalSep=','; 		// Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss';	// Set example date format

// Assign a numerical value and a valid format specifier to vStart

Let vStart = timestamp#('2021-03-23 12:34:56','$(TimestampFormat)');

// Calculate timestamp (vStart + 3 hours) with valid decimal separator: "."

Let vStop = timestamp($(#vStart)+1/8,'YYYY-MM-DD hh:mm:ss');

// Create MyTable as an inline table to expand variables as field values

MyTable:
Load * inline [
StartTime	StopTime
$(vStart)	$(vStop) ] (delimiter is '\t');

// This is a tab delimited inline table
// Tab delimited tables are useful for avoiding conflicting list separators
```

Explication

L'expansion #vVariable produit toujours une représentation en point décimal valide de la valeur numérique de la variable. Cela s'avère utile lorsqu'une virgule est utilisée au lieu d'un point comme séparateur décimal et qu'il existe un risque de conflit avec des listes séparées par des virgules. Il est également important de noter que la précision numérique sera affectée, car la partie décimale sera tronquée lors de l'expansion des variables sans séparateur décimal correct.

La raison principale de l'expansion de ces variables dans un tableau de chargement inline réside dans le fait qu'aucun guillemet supplémentaire ne doit être ajouté à $(X).

Sortie

Créez le tableau suivant dans Qlik Sense :

Tableau - sortie provenant du script de chargement

| StartTime | StopTime |  |
| --- | --- | --- |
| 2021-03-23 12:34:56 | 2021-03-23 15:34:56 |  |

## Expansion de variables référençant des états alternatifs

La variable comporte une seule valeur, et celle-ci est utilisée dans tous les états alternatifs. Lorsque vous développez une variable, la valeur est également la même, quels que soient l'endroit ou elle est effectuée et l'état de l'objet.

Si la variable est une variable calculée, à savoir, si la définition commence par un signe =, le calcul est effectué dans l'état par défaut, sauf si vous spécifiez un état alternatif dans la définition de la variable.

Par exemple, si vous avez défini un état nommé MyState et une variable nommée vMyVar :

```
vMyvar: =only({MyState}MyField)
```

Le contenu de la définition de la variable, avec une référence explicite au nom de l'état alternatif, détermine l'état dans lequel le contenu de la variable sera évalué.

## Interaction entre les variables et les expressions d'ensemble externes

Lorsque vous référencez une variable dans une expansion $ qui contient également une expression d'ensemble externe, un ordre d'évaluation spécifique s'applique.Pour des informations détaillées, consultez [Recherche de variable](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/outer-set-expression-dollar-sign-expansion.htm#Variable).

## En savoir plus

* [Let](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)

* [Utilisation des variables dans l'éditeur de chargement de données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)