# pick - Función de script y de gráfico

La función de selección devuelve la enésima expresión n en la lista.

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

Sintaxis:

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

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| n | n es un entero entre 1 y N. |

Ejemplo: expresión de gráfico

| Ejemplo | Resultado |
| --- | --- |
| `pick( N, 'A','B',4, 6<br><br>						)` | devuelve `B` si `N` = `2`<br><br>devuelve `4` si `N` = `3` |

## Ejemplo: asignar etiquetas a los productos utilizando pick

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

#### Expresión de gráfico

Descripción

Un conjunto de datos contiene datos de productos.Deseamos asignar etiquetas de categoría a los productos en función del código de categoría.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `ProductID`

  * `ProductName`

  * `CategoryCode`

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `ProductID`

* `ProductName`

* `CategoryCode`

Cree la siguiente medida:

* `=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment')` para devolver una expresión válida de la lista.

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

La función `pick` devuelve una lista de valores asociados al índice correspondiente del campo numérico `CategoryCode`. Por ejemplo, la etiqueta `Electronics` es el primer parámetro de la función y se devuelve para todos los productos con el `CategoryCode` de `1`.

## Ejemplo: asignar etiquetas de región utilizando pick

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

#### Expresión de gráfico

Descripción

Un conjunto de datos contiene códigos de países y regiones.Deseamos asignar etiquetas de región a los países en función del código de región.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Los siguientes campos de la tabla de datos:

  * `Country`

  * `RegionCode`

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `Country`

* `RegionCode`

Cree la siguiente medida:

* `=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia')`, para devolver un elemento válido de la lista.

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

La función `pick` devuelve una lista de valores asociados al índice correspondiente del campo numérico `RegionCode`. Por ejemplo, la etiqueta `North America` es el primer parámetro de la función y se devuelve para todos los países que tienen el `RegionCode` de `1`.

## Ejemplo: combinación de pick y match para traducir listas de correspondencias de textos alternativos

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

#### Expresión de gráfico

Descripción

Este escenario avanzado describe cómo utilizar eficazmente una combinación de las funciones `pick` y `match` para asociar correspondencias de texto inline. En términos de programación, esto sirve a un propósito similar al de una sentencia `Case`. El uso explora esta funcionalidad asociando nombres de países a nombres equivalentes de regiones, a la vez que proporciona un valor predeterminado de `Region` para cualquier nombre `Country` sin correspondencia previa.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Countries`.

  * La tabla de datos tiene un campo llamado `Country`.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `Country`

* `RegionCode`

Cree la siguiente medida:

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

La función `match` devolverá la correspondencia de índice de las alternativas separadas por comas suministradas, empezando por `1 = ‘USA’`, `2 = ‘Canada’` y así sucesivamente. Si no se encuentra ninguna correspondencia, devuelve cero. A continuación, este resultado se incrementa en `1` y se introduce en la función `pick`, de forma que `1 = default value` si no se encuentra ninguna coincidencia, `2 = ‘USA’`, `3 = ‘Canada’` y así sucesivamente.

Esta combinación de llamadas a las funciones `Match` y `Pick` decodificará entonces los nombres de `Country` coincidentes en un nombre de `Region` equivalente. Cualquier valor de `Country` que no tenga correspondencias devolverá el valor predeterminado de `Region`: `Unmapped`.

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