# alt Fonction de script et de graphique

La fonction alt renvoie le premier des paramètres doté d'une représentation numérique valide. Si aucune correspondance n'est trouvée, c'est le dernier paramètre qui est renvoyé. Vous pouvez utiliser autant de paramètres que vous le souhaitez.

alt(expr1[ , expr2 , expr3 , ...] , else)

entier

Arguments

| Argument | Description |
| --- | --- |
| expr1 | Première expression utilisée pour rechercher une représentation numérique valide. |
| expr2 | Deuxième expression utilisée pour rechercher une représentation numérique valide. |
| expr3 | Troisième expression utilisée pour rechercher une représentation numérique valide. |
| else | Valeur à renvoyer si aucun des paramètres précédents ne comporte de représentation numérique valide. |

La fonction alt s'utilise souvent avec les fonctions d'interprétation des nombres et des dates. De cette manière, Qlik Sense peut tester différents formats de date selon un ordre de priorité. Elle peut également servir à gérer les valeurs NULL dans les expressions numériques.

Exemple : Expressions de graphique

| Exemple | Résultat |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | Cette expression recherche dans le champ date une date correspondant à l'un des trois formats de date spécifiés. Si elle en trouve une, elle renvoie une valeur double comportant la chaîne d'origine et une représentation numérique valide d'une date. Si aucune correspondance n'est trouvée, elle renvoie le texte `No valid date` (sans représentation numérique valide). |
| `alt(Sales,0) + alt(Margin,0)` | Cette expression ajoute les champs `Sales` et `Margin`, remplaçant toute valeur manquante (NULL) par un `0`. |

## Exemple - Les bases de alt

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données incomplètes sur les ventes et les projections. Vous souhaitez remplacer les valeurs manquantes par des valeurs alternatives valides pour combler les lacunes.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `ID`

  * `Sales`

  * `Forecast`

Script de chargement

```
Example:
LOAD * INLINE [
ID, Sales, Forecast
1, 500, 450
2, , 300
3, 200, 250
4, , 400
5, 350,
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `ID`

* `Sales`

* `Forecast`

Créez la mesure suivante :

* `=Sum(alt(Sales, Forecast))`, pour renvoyer une représentation numérique valide en remplaçant les valeurs manquantes par des valeurs alternatives valides.

Tableau de résultats

| ID | Sales | Forecast | Sum(alt(Sales, Forecast)) |
| --- | --- | --- | --- |
| Totals |  |  | 1750 |
| 1 | 500 | 450 | 500 |
| 2 |  | 300 | 300 |
| 3 | 200 | 250 | 200 |
| 4 |  | 400 | 400 |
| 5 | 350 |  | 350 |

La fonction `alt` renvoie la valeur `Forecast` dans le calcul de la mesure pour les lignes `ID` auxquelles il manque des valeurs `Sales`. En remplaçant les valeurs manquantes par des valeurs alternatives valides, vous pouvez générer un jeu de données complet.

## Exemple - Utilisation de alt pour remplacer les valeurs manquantes

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Expression de graphique

Vue d'ensemble

Une entreprise collecte des données de température provenant de plusieurs capteurs. Vous souhaitez remplacer les données manquantes d'un capteur par les données de l'autre capteur.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

Script de chargement

```
Example:
LOAD * INLINE [
Time, Temp_Sensor1, Temp_Sensor2
08:00, 23.5, 24.0
09:00, , 23.8
10:00, 24.1,
11:00, , 24.5
12:00, 23.9, 24.1
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

Créez la mesure suivante :

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))`, pour renvoyer une représentation numérique valide.

Tableau de résultats

| Time | Temp\_Sensor1 | Temp\_Sensor2 | Sum(alt(Temp\_Sensor1, Temp\_Sensor2)) |
| --- | --- | --- | --- |
| Totals |  |  | 119.8 |
| 08:00 | 23.5 | 24.0 | 23.5 |
| 09:00 |  | 23.8 | 23.8 |
| 10:00 | 24.1 |  | 24.1 |
| 11:00 |  | 24.5 | 24.5 |
| 12:00 | 23.9 | 24.1 | 23.9 |

En examinant les résultats, on constate que la fonction `alt` a remplacé les données manquantes du capteur par des résultats alternatifs valides provenant de l'autre capteur. Cela permet de compléter le jeu de données en comblant les lacunes.

## Exemple - Scénario alt

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/alt.htm)

#### Expression de graphique

Vue d'ensemble

Ce scénario montre différentes façons d'utiliser la fonction `alt` pour remplacer des valeurs manquantes ou nulles.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

Script de chargement

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, SalesAmount, ReturnAmount, Profit, Discount, Category, Year, Region, CustomerRating
101, "Laptop", 1200, 200, 500, , "Electronics", 2023, "North",
102, "Tablet", 800, , 300, 50, "Electronics", 2023, "South", 4
103, "Smartphone", 1500, , 600, 100, , 2022, "East", 5
104, "Printer", 400, , , 20, "Accessories", 2021, , 3
105, , 1000, 100, , 30, "Electronics", 2023, "West", 4
106, "Monitor", , 150, 250, , "Accessories", 2022, "North", 5
107, "Keyboard", 200, , 80, 5, , 2022, "South", 2
108, "Mouse", , 50, , , "Accessories", , "East",
109, , 600, , , , "Electronics", 2023, , 4
110, "Headphones", 300, 30, 100, , "Accessories", 2021, "West", 3
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `ProductID`

Créez la dimension calculée suivante :

* `=Coalesce( ProductName,  'Unknown Product')`, pour fournir la description `Unknown Product` pour tous les produits qui n'ont pas de valeur pour `ProductName`.

Créez les mesures suivantes :

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`, pour renvoyer un nombre valide si aucune valeur `SalesAmount` n'est trouvée.

* `=avg(alt(CustomerRating, 3))`, pour renvoyer une évaluation client standardisée valide si aucune n'a été initialement fournie.

* `=Sum(alt(Discount, SalesAmount * 0.05))`, pour renvoyer une réduction valide.

* `=Sum(alt(Profit, SalesAmount * 0.1))`, pour renvoyer une valeur de profit valide.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`, pour renvoyer une valeur de vente valide.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`, pour renvoyer une valeur de réduction valide.

Tableau de résultats

| ProductID | Coalesce( ProductName, 'Unknown Product') | Sum(alt(SalesAmount, ReturnAmount, Profit)) | avg(alt(CustomerRating, 3)) | Sum(alt(Discount, SalesAmount \* 0.05)) | Sum(alt(Profit, SalesAmount \* 0.1)) | Sum(alt(SalesAmount, avg(TOTAL SalesAmount))) | Sum(alt(Discount, avg(TOTAL Discount))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Totaux |  | 6200 | 3.6 | 310 | 2030 | 7500 | 410 |
| 101 | Laptop | 1200 | 3 | 60 | 500 | 1200 | 41 |
| 102 | Tablet | 800 | 4 | 50 | 300 | 500 | 50 |
| 103 | Smartphone | 1500 | 5 | 100 | 600 | 800 | 100 |
| 104 | Printer | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | Unknown Product | 1000 | 4 | 30 | 100 | 1000 | 30 |
| 106 | Monitor | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | Keyboard | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | Mouse | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | Unknown Product | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | Headphones | 300 | 3 | 15 | 100 | 300 | 41 |

La fonction `alt` permet de calculer et de renvoyer des valeurs alternatives en cas de valeurs manquantes. Observez les résultats suivants :

* La colonne 2 utilise la fonction `Coalesce` pour renvoyer la valeur `Unknown Product` pour toutes les valeurs nulles. La fonction `Alt` ne peut pas être utilisée, car elle ne s'applique qu'aux valeurs numériques.

* La colonne 3 renvoie la valeur de `SalesAmount`. Si aucune valeur n'est trouvée, elle renvoie la valeur `ReturnAmount`. Si aucune valeur `ReturnAmount` n'est trouvée, elle renvoie la valeur `Profit`. Cela permet de s'assurer que la colonne contient une valeur si `SalesAmount` n'a pas de valeur.

* La colonne 4 renvoie la valeur `CustomerRating`. Si aucune valeur n'est trouvée, la valeur par défaut est `3`. Par exemple, le produit `Laptop` n'a pas été évalué par les clients et la valeur `3` est donc renvoyée. La mesure calcule ensuite la moyenne de la colonne.

* La colonne 5 indique la valeur de réduction. Si aucune valeur n'est disponible, cette valeur est calculée comme 5% de la valeur `SalesAmount`.

* La colonne 6 renvoie la valeur de `Profit`. Si aucune valeur n'est disponible, la valeur 10% de `SalesAmount` est renvoyée.

* La colonne 7 renvoie la valeur `SalesAmount`. Si aucune valeur n'est fournie, c'est la moyenne de `SalesAmount` sur l'ensemble du jeu de données qui est renvoyée. Par exemple, les produits `Monitor` et `Mouse` n'ont pas de valeur pour `SalesAmount` et renvoient donc tous les deux `750`, qui est la moyenne de toutes les valeurs de `SalesAmount`.

* La colonne 8 renvoie la valeur de `Discount`. Si aucune valeur n'est trouvée, le système calcule et renvoie la réduction moyenne pour l'ensemble du jeu de données.