# coalesce - Fonction de script et de graphique

La fonction coalesce renvoie le premier des paramètres doté d'une représentation non-NULL valide. Vous pouvez utiliser autant de paramètres que vous le souhaitez.

coalesce(expr1[ , expr2 , expr3 , ...])

double

Arguments

| Argument | Description |
| --- | --- |
| expr1 | Première expression utilisée pour rechercher une représentation non NULL valide. |
| expr2 | Deuxième expression utilisée pour rechercher une représentation non NULL valide. |
| expr3 | Troisième expression utilisée pour rechercher une représentation non NULL valide. |

Exemples : Expressions de graphique

| Exemple | Résultat |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Cette expression effectue une sélection entre trois champs de description de produit différents lorsque certains champs n'ont pas de valeurs pour le produit. En suivant l'ordre indiqué dans la fonction, le premier champ dont la valeur n'est pas nulle est renvoyé. Si aucun des champs ne contient de valeur, le résultat est `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Cette expression coupe les guillemets englobants potentiels du champ `FileName`. Si la valeur `FileName` donnée est entre guillemets, ceux-ci sont supprimés et la valeur `FileName` sans guillemets englobée est renvoyée. Si la fonction `TextBetween` ne trouve pas les délimiteurs, elle renvoie une valeur nulle, que Coalesce rejette, renvoyant à la place la valeur `FileName` brute. |

## Exemple - Les bases de Coalesce

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

#### Expression de graphique

Vue d'ensemble

Une table de données contenant des données de produits et de prix est chargée. Vous voulez vous assurer que toutes les valeurs nulles sont remplacées par une valeur alternative.

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`

  * `Price`

* Instruction de variable `NullInterpret` pour s'assurer que toute valeur manquante est traitée comme NULL.

Script de chargement

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

Résultats

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

   * `ProductID`

   * `ProductName`

2. Créez la dimension calculée suivante :

   * `=Coalesce(ProductName, 'Unknown Product')`

3. Créez la mesure suivante :

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

4. Créez un nouveau tableau et ajoutez l'expression suivante sous forme de dimension calculée :

   * `=Coalesce(ProductName, 'Unknown Product')`

5. Créez la mesure suivante :

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

Les résultats des tableaux suivants montrent comment la fonction `Coalesce` peut remplacer les valeurs nulles du jeu de données d'origine par la valeur alternative `Unknown Product`.

Tableau de résultats 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

Tableau de résultats 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## Exemple - Remplacement des valeurs nulles par une valeur alternative priorisée

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

#### Expression de graphique

Vue d'ensemble

Cet exemple utilise la fonction `Coalesce` pour remplacer les données d'emplacement manquantes par une valeur alternative selon la logique de priorité spécifiée.

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 :

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Instruction de variable `NullInterpret` pour s'assurer que toute valeur manquante est traitée comme NULL.

Script de chargement

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

Résultats

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

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Créez la dimension calculée suivante :

   * `=Coalesce(Country, State, City)`, pour compléter les valeurs nulles par des alternatives.

Tableau de résultats

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

Les résultats montrent que bien qu'il manque des valeurs, vous pouvez utiliser la fonction `Coalesce` pour fournir une logique quant à la façon de renseigner ces instances à l'aide d'une valeur alternative pour compléter le jeu de données. Par exemple, il manque une valeur `Country` à `L004`. La fonction `Coalesce` renvoie `New South Wales`, car `State` est le deuxième champ répertorié dans la logique de priorité à utiliser lorsqu'il manque la valeur de `Country`.