# pick 스크립트 및 차트 함수

pick 함수는 목록 내 n번째 표현식을 반환합니다.

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

구문:

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

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| n | n은 1과 N 사이의 정수입니다. |

예: 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `pick( N, 'A','B',4, 6<br><br>						)` | `N` = `2`인 경우 `B`를 반환합니다.<br><br>`N` = `3`인 경우 `4`를 반환합니다. |

## 예 - pick를 사용하여 제품에 레이블 지정

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

#### 차트 표현식

개요

데이터 집합에는 제품 데이터가 포함되어 있습니다. 범주 코드를 기준으로 제품에 범주 레이블을 지정하려고 합니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `ProductID`

  * `ProductName`

  * `CategoryCode`

로드 스크립트

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

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `ProductID`

* `ProductName`

* `CategoryCode`

다음 측정값을 만듭니다.

* `=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment')`: 목록에서 유효한 표현식을 반환합니다.

결과 테이블

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

`pick` 함수는 `CategoryCode` 숫자 필드의 해당 인덱스와 연관된 값 목록을 반환합니다. 예를 들어, 레이블 `Electronics`는 함수의 첫 번째 매개 변수이며 `CategoryCode`가 `1`인 모든 제품에 대해 반환됩니다.

## 예 - pick를 사용하여 지역 레이블 지정

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

#### 차트 표현식

개요

데이터 집합에는 국가 및 지역 코드가 포함되어 있습니다. 지역 코드를 기준으로 국가에 지역 레이블을 지정하려고 합니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `Country`

  * `RegionCode`

로드 스크립트

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

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `Country`

* `RegionCode`

다음 측정값을 만듭니다.

* `=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia')`: 목록에서 유효한 항목을 반환합니다.

결과 테이블

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

`pick` 함수는 `RegionCode` 숫자 필드의 해당 인덱스와 연관된 값 목록을 반환합니다. 예를 들어, 레이블 `North America`는 함수의 첫 번째 매개 변수이며 `RegionCode`가 `1`인 모든 국가에 대해 반환됩니다.

## 예 - pick와 match를 결합하여 대체 텍스트 일치 목록 번역

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

#### 차트 표현식

개요

이 고급 시나리오에서는 `pick` 및 `match` 함수의 조합을 효과적으로 사용하여 텍스트 일치 항목을 인라인으로 매핑하는 방법을 설명합니다. 프로그래밍 용어에서 이는 `Case` 문과 비슷한 용도로 사용됩니다. 이 시나리오에서는 국가 이름을 지역과 동일한 이름에 매핑하는 동시에 이전에 매핑되지 않은 `Country` 이름에 대한 기본 `Region` 값을 제공하여 이 기능을 살펴봅니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Countries`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

  * 데이터 테이블에는 `Country`라는 필드가 하나 있습니다.

로드 스크립트

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

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `Country`

* `RegionCode`

다음 측정값을 만듭니다.

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

`match` 함수는 제공된 쉼표로 구분된 대체 항목의 인덱스 일치 항목을 `1 = ‘USA’`, `2 = ‘Canada’` 등부터 시작하여 반환합니다. 일치하는 항목이 없으면 0이 반환됩니다. 그런 다음 이 결과는 `1`만큼 증가하여 `pick` 함수에 입력됩니다. 즉, 일치 항목이 없으면 `1 = default value`이 되고, 일치 항목이 없으면 `2 = ‘USA’`, `3 = ‘Canada’` 등이 됩니다.

`Match` 및 `Pick` 함수 호출의 조합은 일치하는 `Country` 이름을 동등한 `Region` 이름으로 디코딩합니다. 매핑되지 않은 `Country` 값은 기본 `Region` 값인 `Unmapped`을 반환합니다.

결과 테이블

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