# SubField - 스크립트 및 차트 함수

SubField()는 부모 문자열 필드에서 부분 문자열 성분을 추출하는 데 사용됩니다. 여기서 원래 레코드 필드는 구분 기호로 분리된 둘 이상의 부분으로 구성됩니다.

Subfield() 함수는 전체 이름으로 구성된 레코드 목록에서 이름과 성을 추출하거나 경로 이름의 구성 요소 부분 또는 쉼표로 구분된 테이블에서 데이터를 추출하는 등의 작업에 사용할 수 있습니다.

LOAD 문에서 옵션 field\_no 파라메타를 생략하고 Subfield() 함수를 사용하면 각 부분 문자열에 대해 전체 레코드 하나가 생성됩니다. Subfield()를 사용하여 여러 필드를 로드하는 경우는 모든 조합의 카티션 곱이 생성됩니다.

구문:

SubField(text, delimiter[, field\_no ])

반환 데이터 유형: 문자열

인수:

인수

| 인수 | 설명 |
| --- | --- |
| text | 원래 문자열입니다. 이 값은 하드 코딩된 텍스트, 변수, 달러 기호 확장 또는 다른 표현식이 될 수 있습니다. |
| delimiter | 문자열을 구성 성분으로 나누는 입력 text 내의 문자열입니다. |
| field\_no | 세 번째 옵션 인수는 부모 문자열인 text의 부분 문자열이 반환되도록 지정하는 정수입니다. 첫 번째 부분 문자열을 반환하려면 값 1, 두 번째 부분 문자열을 반환하려면 2를 사용합니다.<br><br><ul> <li><span>field_no</span>가 양수 값이면 부분 문자열이 왼쪽에서 오른쪽으로 추출됩니다.</li> <li><span>field_no</span>가 음수 값이면 부분 문자열이 오른쪽에서 왼쪽으로 추출됩니다.</li> </ul> |

팁 메모 SubField()는 Len(), Right(), Left(), Mid() 및 기타 문자열 함수를 복잡하게 조합한 함수를 대신하여 사용할 수 있습니다.

예: 차트 표현식

| 예 | 결과 |
| --- | --- |
| `SubField(S,   ';' ,2)` | S가 'abc;cde;efg'인 경우 'cde'를 반환합니다. |
| `SubField(S,   ';' ,1)` | S가 빈 문자열인 경우 빈 문자열을 반환합니다. |
| `SubField(S,   ';' ,1)` | S가 ';'인 경우 빈 문자열을 반환합니다. |
| 경로 이름 vMyPath가 포함된 변수가 있다고 가정해 보겠습니다.<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`에서 관리합니다. | 텍스트 및 이미지 차트에서 다음과 같은 측정값을 추가할 수 있습니다.<br>`SubField(vMyPath, '\',-3``)`, 결과 값은 'Qlik'으로, 이 값이 변수 vMyPath 오른쪽 끝에서 세 번째의 하위 문자열이기 때문입니다. |

## 예: SubField를 사용한 스크립트 및 차트 표현식

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

#### 예 - 스크립트 및 차트 표현식

### 기본 예

| 예 | 결과 |
| --- | --- |
| `SubField(S,   ';' ,2)` | S가 'abc;cde;efg'인 경우 'cde'를 반환합니다. |
| `SubField(S,   ';' ,1)` | S가 빈 문자열인 경우 빈 문자열을 반환합니다. |
| `SubField(S,   ';' ,1)` | S가 ';'인 경우 빈 문자열을 반환합니다. |
| 경로 이름 vMyPath가 포함된 변수가 있다고 가정해 보겠습니다.<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`에서 관리합니다. | 텍스트 및 이미지 차트에서 다음과 같은 측정값을 추가할 수 있습니다.<br>`SubField(vMyPath, '\',-3``)`, 결과 값은 'Qlik'으로, 이 값이 변수 vMyPath 오른쪽 끝에서 세 번째의 하위 문자열이기 때문입니다. |

### 스크립트 예 1

#### 로드 스크립트

데이터 로드 편집기에서 다음 스크립트 표현식과 데이터를 로드합니다.

```
FullName:
					
LOAD * inline [
Name
'Dave Owen'
'Joe Tem'
];

SepNames:

Load Name,
SubField(Name, ' ',1) as FirstName,
SubField(Name, ' ',-1) as Surname
Resident FullName;
Drop Table FullName;
```

#### 시각화 만들기

Name, FirstName 및 SurName을 차원으로 사용하여 Qlik Sense 시트에 테이블 시각화를 만듭니다.

#### 결과

| Name | FirstName | SurName |
| --- | --- | --- |
| Dave Owen | Dave | Owen |
| Joe Tem | Joe | Tem |

#### 설명

SubField() 함수는 field\_no 인수를 1로 설정하여 Name의 첫 번째 부분 문자열을 추출합니다. field\_no의 값이 양수이므로 하위 열을 추출하기 위해 왼쪽에서 오른쪽 순서를 따릅니다. 두 번째 함수 호출은 field\_no 인수를 -1로 설정하여 두 번째 하위 문자열을 추출합니다. 그러면 오른쪽에서 왼쪽 순서로 하위 문자열이 추출됩니다.

### 스크립트 예 2

#### 로드 스크립트

데이터 로드 편집기에서 다음 스크립트 표현식과 데이터를 로드합니다.

```
LOAD DISTINCT
Instrument,
SubField(Player,',') as Player,
SubField(Project,',') as Project;

Load * inline [
Instrument|Player|Project
Guitar|Neil,Mike|Music,Video
Guitar|Neil|Music,OST
Synth|Neil,Jen|Music,Video,OST
Synth|Jo|Music
Guitar|Neil,Mike|Music,OST
] (delimiter is '|');
```

#### 시각화 만들기

Instrument, Player 및 Project를 차원으로 사용하여 Qlik Sense 시트에 테이블 시각화를 만듭니다.

#### 결과

| Instrument | Player | Project |
| --- | --- | --- |
| Guitar | Mike | Music |
| Guitar | Mike | Video |
| Guitar | Mike | OST |
| Guitar | Neil | Music |
| Guitar | Neil | Video |
| Guitar | Neil | OST |
| Synth | Jen | Music |
| Synth | Jen | Video |
| Synth | Jen | OST |
| Synth | Jo | Music |
| Synth | Neil | Music |
| Synth | Neil | Video |
| Synth | Neil | OST |

#### 설명

이 예는 Subfield() 함수의 여러 인스턴스를 사용하는 방법을 보여줍니다. 각각은 field\_no 파라메타가 생략되어 있으며 동일한 LOAD 문 내에서 모든 조합의 카티션 곱을 생성합니다. DISTINCT 옵션은 중복 레코드 생성을 피하기 위해 사용됩니다.