# pick – Skript- och diagramfunktion

Funktionen pick returnerar det n:te uttrycket i listan.

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

Syntax:

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

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| n | n är ett heltal mellan 1 och N. |

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `pick( N, 'A','B',4, 6<br><br>						)` | returnerar `B` om `N` = `2`<br><br>returnerar `4` om `N` = `3` |

## Exempel – Tilldela etiketter till produkter med hjälp av pick

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller produktdata. Du vill tilldela kategorietiketter till produkter baserat på kategorikoden.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ProductID`

  * `ProductName`

  * `CategoryCode`

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `ProductID`

* `ProductName`

* `CategoryCode`

Skapa följande mått:

* `=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment')`, för att returnera ett giltigt uttryck från listan.

Resultattabell

| 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 |

Funktionen `pick` returnerar en lista med värden som är associerade med motsvarande index från det numeriska fältet `CategoryCode`. Till exempel är etiketten `Electronics` den första parametern i funktionen och returneras för alla produkter med `CategoryCode` `1`.

## Exempel – Tilldela etiketter till regioner med hjälp av pick

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller lands- och regionkoder. Du vill tilldela regionetiketter till länder baserat på regionkoden.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `Country`

  * `RegionCode`

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `Country`

* `RegionCode`

Skapa följande mått:

* `=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia')`, för att returnera ett giltigt objekt från listan.

Resultattabell

| 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 |

Funktionen `pick` returnerar en lista med värden som är associerade med motsvarande index från det numeriska fältet `RegionCode`. Till exempel är etiketten `North America` den första parametern i funktionen och returneras för alla länder med `RegionCode` `1`.

## Exempel – Kombination av pick och match för att översätta listor med alternativa textmatchningar

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

#### Diagramuttryck

Översikt

Detta avancerade scenario beskriver hur man effektivt använder en kombination av funktionerna `pick` och `match` för att mappa textmatchningar in-line. I programmeringstermer har detta ett liknande syfte som en `Case`-sats. Scenariot utforskar denna funktionalitet genom att mappa landsnamn till regionekvivalenta namn och samtidigt tillhandahålla ett standardvärde för `Region` för alla tidigare ej mappade `Country`-namn.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Countries`.

  * Datatabellen har ett fält som heter `Country`.

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `Country`

* `RegionCode`

Skapa följande mått:

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

`match`-funktionen returnerar indexmatchningen av de kommaseparerade alternativen som anges, med början från `1 = ‘USA’`, `2 = ‘Canada’` och så vidare. Om ingen motsvarighet påträffas, returneras noll. Detta resultat ökas sedan med `1` och matas in i funktionen `pick`, så att `1 = default value` om ingen matchning hittas, `2 = ‘USA’`, `3 = ‘Canada’` och så vidare.

Denna kombination av funktionsanropen `Match` och `Pick` kommer sedan att avkoda de matchande `Country`-namnen till ett motsvarande `Region`-namn. Alla omappade `Country`-värden kommer att returnera standardvärdet för `Region`, `Unmapped`.

Resultattabell

| 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 |