# pick Função de script e de gráfico

A função de escolha retorna a enésima expressão na lista.

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

Sintaxe:

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

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| n | né um inteiro entre 1 e N. |

Exemplo: expressão de gráfico

| Exemplo | Resultado |
| --- | --- |
| `pick( N, 'A','B',4, 6<br><br>						)` | Retorna `B` se `N` =. `2`<br><br>Retorna `4` se `N` =. `3` |

## Exemplo – Atribuir rótulos a produtos usando pick

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de produtos.Você deseja atribuir rótulos de categoria a produtos com base no código de categoria.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `ProductID`

  * `ProductName`

  * `CategoryCode`

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `ProductID`

* `ProductName`

* `CategoryCode`

Crie a seguinte medida:

* `=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment')`, para retornar uma expressão válida da lista.

Tabela de resultados

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

A função `pick` retorna uma lista de valores associados ao índice correspondente do campo numérico `CategoryCode`. Por exemplo, o rótulo `Electronics` é o primeiro parâmetro da função e é retornado para todos os produtos com o `CategoryCode` de `1`.

## Exemplo – Atribuir rótulos de região usando pick

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém códigos de país e região.Você deseja atribuir rótulos de região a países com base no código de região.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `Country`

  * `RegionCode`

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `Country`

* `RegionCode`

Crie a seguinte medida:

* `=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia')`, para retornar um item válido da lista.

Tabela de resultados

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

A função `pick` retorna uma lista de valores associados ao índice correspondente do campo numérico `RegionCode`. Por exemplo, o rótulo `North America` é o primeiro parâmetro da função e é retornado para todos os países com o `RegionCode` de `1`.

## Exemplo – Combinando pick e match para traduzir listas de correspondências de texto alternativo

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

#### Expressão de gráfico

Visão geral

Este cenário avançado descreve como usar efetivamente uma combinação das funções `pick` e `match` para mapear correspondências de texto em linha. Em termos de agendamento, isso tem uma finalidade semelhante a um comando `Case`. O cenário explora essa funcionalidade mapeando nomes de países para nomes equivalentes a regiões e, ao mesmo tempo, fornece um valor padrão `Region` para qualquer nome `Country` não mapeado anteriormente.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Countries`.

  * A tabela de dados tem um campo chamado `Country`.

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `Country`

* `RegionCode`

Crie a seguinte medida:

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

A função `match` retornará a correspondência de índice das alternativas fornecidas, separadas por vírgulas, começando por `1 = ‘USA’`, `2 = ‘Canada’` e assim por diante. Se não for encontrada correspondência, será retornado zero. Esse resultado é então incrementado por `1` e alimentado na função `pick`, de modo que `1 = default value` se nenhuma correspondência for encontrada, `2 = ‘USA’`, `3 = ‘Canada’` e assim por diante.

Essa combinação de chamadas de função `Match` e `Pick` decodificará os nomes `Country` correspondentes em um nome `Region` equivalente. Todos os valores não mapeados de `Country` retornarão o valor padrão de `Region`: `Unmapped`.

Tabela de resultados

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