# pick Fonction de script et de graphique

La fonction pick renvoie la nième expression de la liste.

[Pick function](https://play.vidyard.com/i2VAER2iYbPyuC46aLGxG3)

Syntaxe :

pick(n, expr1[ , expr2,...exprN])

Type de données renvoyé : double

Arguments

| Argument | Description |
| --- | --- |
| n | n est un entier compris entre 1 et N. |

Exemple : Expression de graphique

| Exemple | Résultat |
| --- | --- |
| `pick( N, 'A','B',4, 6<br><br>						)` | renvoie `B` si `N` = `2`<br><br>renvoie `4` si `N` = `3` |

## Exemple - Affectation d'étiquettes à des produits à l'aide de pick

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données de produits. Vous souhaitez affecter des étiquettes de catégorie à des produits en fonction du code de catégorie.

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`

  * `CategoryCode`

Script de chargement

```
Example:
LOAD * INLINE [
ProductID, ProductName, CategoryCode
1, "Laptop", 1
2, "Headphones", 2
3, "Printer", 3
4, "Smartphone", 1
5, "Tablet", 1
];
```

Résultats

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

* `ProductID`

* `ProductName`

* `CategoryCode`

Créez la mesure suivante :

* `=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment')`, pour renvoyer une expression valide de la liste.

Tableau de résultats

| ProductID | ProductName | CategoryCode | Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment') |
| --- | --- | --- | --- |
| 1 | Laptop | 1 | Electronics |
| 2 | Headphone | 2 | Accessories |
| 3 | Printer | 3 | Office Equipment |
| 4 | Smartphone | 1 | Electronics |
| 5 | Tablet | 1 | Electronics |

La fonction `pick` renvoie une liste de valeurs associées à l'index correspondant du champ numérique `CategoryCode`. Par exemple, l'étiquette `Electronics` est le premier paramètre de la fonction et est renvoyée pour tous les produits dont le code de catégorie `CategoryCode` est `1`.

## Exemple - Affectation d'étiquettes de région à l'aide de pick

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des codes de pays et de région. Vous souhaitez affecter des étiquettes de région à des pays en fonction du code de région.

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 :

  * `Country`

  * `RegionCode`

Script de chargement

```
Example:
LOAD * INLINE [
Country, RegionCode
"USA", 1
"Canada", 1
"Germany", 2
"Japan", 3
"Australia", 4
];
```

Résultats

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

* `Country`

* `RegionCode`

Créez la mesure suivante :

* `=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia')`, pour renvoyer un élément valide de la liste.

Tableau de résultats

| Country | RegionCode | Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia') |
| --- | --- | --- |
| Australia | 4 | Australia |
| Canada | 1 | North America |
| Germany | 2 | Europe |
| Japan | 3 | Asia |
| USA | 1 | North America |

La fonction `pick` renvoie une liste de valeurs associées à l'index correspondant du champ numérique `RegionCode`. Par exemple, l'étiquette `North America` est le premier paramètre de la fonction et est renvoyée pour tous les produits dont le code de région `RegionCode` est `1`.

## Exemple - Combinaison de pick et de match pour traduire des listes de correspondances de texte alternatives

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

#### Expression de graphique

Vue d'ensemble

Ce scénario avancé explique comment utiliser efficacement une combinaison des fonctions `pick` et `match` pour mapper des correspondances de texte en ligne. En termes de programmation, cette fonction est similaire à celle d'une instruction `Case`. Le scénario explore cette fonctionnalité en mappant les noms de pays vers des noms de région équivalent, tout en fournissant une valeur `Region` par défaut pour tous les noms `Country` qui n'ont pas été mappés auparavant.

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 portant le nom `Countries`.

  * Une table de données a un champ appelé `Country`.

Script de chargement

```
Countries:
LOAD * INLINE [
Country
"USA"
"Canada"
"Germany"
"Japan"
"Australia"
"South Africa"
];
```

Résultats

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

* `Country`

* `RegionCode`

Créez la mesure suivante :

* `=Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia')`

La fonction `match` renvoie l'index correspondant des alternatives fournies, séparées par des virgules, en commençant par `1 = ‘USA’`, `2 = ‘Canada’` et ainsi de suite. En l'absence de correspondance, la valeur zéro est renvoyée. Ce résultat est ensuite incrémenté de `1` et introduit dans la fonction `pick`, de sorte que `1 = default value` si aucune correspondance n'est trouvée, `2 = ‘USA’`, `3 = ‘Canada’` et ainsi de suite.

Cette combinaison d'appels de fonctions `Match` et `Pick` décodera ensuite les noms `Country` correspondants en un nom `Region` équivalent. Toute valeur non mappée de `Country` renverra la valeur par défaut de `Region`, `Unmapped`.

Tableau de résultats

| Country | Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia') |
| --- | --- |
| Australia | Australia |
| Canada | North America |
| Germany | Europe |
| Japan | Asia |
| South Africa | Unmapped |
| USA | North America |