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

if 함수는 함수에 제공된 조건이 True로 평가되는지, False로 평가되는지에 따른 값을 반환합니다.

[If Function](https://play.vidyard.com/qnkaRddq32LnAGUTTDGdLA)

구문:

if(condition , then [, else])

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| condition | 논리적으로 해석되는 표현식입니다. |
| then | 어떤 유형이든 될 수 있는 표현식입니다. condition이 True인 경우 if 함수는 then 표현식의 값을 반환합니다. |
| else | 어떤 유형이든 될 수 있는 표현식입니다. condition이 False인 경우 if 함수는 else 표현식의 값을 반환합니다.<br><br>이 매개 변수는 선택 사항입니다. condition이 False인 경우, else를 지정하지 않으면 NULL이 반환됩니다. |

예: 차트 표현식

| 예 | 결과 |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | 이 표현식은 Amount가 양수(0 이상)인지 테스트하여 양수인 경우 `OK`를 반환합니다. Amount가 0 미만이면 `Alarm`이 반환됩니다. |

이 항목의 일부 예에서는 인라인 로드를 사용합니다. [인라인 로드를 사용하여 데이터 로드](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## 예 - if를 사용한 로드 스크립트

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

#### 로드 스크립트

개요

If는 변수를 포함하여 다른 메서드 및 개체와 함께 로드 스크립트에서 사용할 수 있습니다. 이 예에서는 `threshold` 변수를 사용하고 threshold를 기반으로 하는 데이터 모델에 새 필드를 포함합니다.

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

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

* 두 개의 데이터 테이블에 로드되는 데이터 집합:

  * `Transactions`: 트랜잭션 필드 포함

  * `Transaction_Buckets`: `transaction_id` 필드를 포함하고 `if` 함수를 사용하여 `transaction_amount` 필드를 `threshold` 변수 설정과 비교하는 새 필드 `[Compared to Threshold]`을 만듭니다.

* `threshold` 변수 문이 `100`으로 설정되었습니다.

로드 스크립트

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
set threshold = 100;
					
/* Create new table called Transaction_Buckets 
Compare transaction_amount field from Transaction table to threshold of 100.
Output results into a new field called Compared to Threshold
 */

Transaction_Buckets:
Load
   transaction_id,
   If(transaction_amount > $(threshold),'Greater than $(threshold)','Less than $(threshold)') as [Compared to Threshold]
Resident Transactions;
```

결과

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

* `transaction_id`

* `[Compared to Threshold]`

로드 스크립트에서 ifif 함수를 사용하여 얻은 출력을 보여 주는 결과 테이블.

| transaction\_id | 임계값과 비교 |
| --- | --- |
| 3750 | 100보다 작음 |
| 3751 | 100보다 큼 |
| 3752 | 100보다 작음 |
| 3753 | 100보다 큼 |
| 3754 | 100보다 큼 |
| 3756 | 100보다 작음 |
| 3757 | 100보다 큼 |

## 예 - if를 사용하여 제품 데이터 평가

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

#### 차트 표현식

개요

데이터 집합에는 제품 데이터가 포함되어 있습니다. 소비 가능 여부에 따라 제품을 식별하고 분류하려고 합니다.

로드 스크립트

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

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

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

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

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "Fruits"
3, "Shampoo", "Toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits"
];
```

결과

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

* `ProductID`

* `ProductName`

* `ProductCategory`

다음 측정값을 만듭니다.

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`: 필요한 값을 반환합니다.

결과 테이블

| ProductID | ProductName | ProductCategory | If(ProductCategory = 'Toiletries' or ProductCategory = 'Fruits', 'Consumable', 'Other') |
| --- | --- | --- | --- |
| 1 | Laptop | Electronics | Other |
| 2 | Banana | Fruits | Consumable |
| 3 | Shampoo | Toiletries | Consumable |
| 4 | TV | Electronics | Other |
| 5 | Apple | Fruits | Consumable |

결과에서 `if` 함수가 표현식을 평가하고 필요한 값을 반환하는 것을 볼 수 있습니다. 예를 들어, `Fruits` 또는 `Toiletries` 범주의 제품은 `Consumable`으로 분류됩니다.

## 예 - if를 사용하여 클라이언트 데이터 평가 및 분류

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

#### 차트 표현식

개요

데이터 집합에는 클라이언트 데이터가 포함됩니다. 분류 요구 사항을 충족하는 지역 및 산업 범주를 가진 고객을 식별하고 분류하려고 합니다.

로드 스크립트

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

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

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

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

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "North", "Manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "West", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "Healthcare"
];
```

결과

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

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

다음 측정값을 만듭니다.

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`: 필요한 값을 반환합니다.

결과 테이블

| ClientID | ClientName | Region | Industry | If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | North | Manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | West | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | Sound | Healthcare | Secondary Segment |

결과에서 `if` 함수가 표현식을 평가하고 필요한 값을 반환하는 것을 볼 수 있습니다. 예를 들어, `Acme Corp`는 `North` 또는 `East` 지역과 `Manufacturing` 또는 `Technology` 산업의 일부가 되기 위한 요구 사항을 충족하므로 `Target Segment`로 분류됩니다.

## 예 - if를 사용하여 인시던트 데이터 평가

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

#### 차트 표현식

개요

if 함수를 사용하여 인시던트 보고서 데이터 집합을 분류합니다.

로드 스크립트

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

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

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

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

  * Date

  * Location

  * Incidents

```
Example:
LOAD * inline [
Date, Location, Incidents
1/3/2016, Beijing, 0
1/3/2016, Boston, 12
1/3/2016, Stockholm, 3
1/3/2016, Toronto, 0
1/4/2016, Beijing, 0
1/4/2016, Boston, 8];
```

결과

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

* 날짜

* 위치

* 인시던트

다음과 같이 계산 차원을 만듭니다.

* =if(Incidents&gt;=10, 'Critical', 'Ok' )

* =if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok'))

결과 테이블

| Date | Location | Incidents | if(Incidents&gt;=10, 'Critical', 'Ok' ) | if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok')) |
| --- | --- | --- | --- | --- |
| 1/3/2016 | Beijing | 0 | Ok | Ok |
| 1/3/2016 | Boston | 12 | Critical | Critical |
| 1/3/2016 | Stockholm | 3 | Ok | Warning |
| 1/3/2016 | Toronto | 0 | Ok | Ok |
| 1/4/2016 | Beijing | 0 | Ok | Ok |
| 1/4/2016 | Boston | 8 | Ok | Warning |

## 예 - if를 사용하여 날짜 분류

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

#### 차트 표현식

개요

if 함수를 사용하여 날짜를 분류합니다.

로드 스크립트

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

```
SET FirstWeekDay=0;
Load 
Date(MakeDate(2022)+RecNo()-1) as Date
Autogenerate 14;
```

결과

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

* Date

다음과 같이 계산 차원을 만듭니다.

* WeekDay(Date)

* =If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day')

결과 테이블

| Date | WeekDay(Date) | If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day') |
| --- | --- | --- |
| 1/1/2022 | Sat | WeekEnd |
| 1/2/2022 | Sun | WeekEnd |
| 1/3/2022 | Mon | Normal Day |
| 1/4/2022 | Tue | Normal Day |
| 1/5/2022 | Wed | Normal Day |
| 1/6/2022 | Thu | Normal Day |
| 1/7/2022 | Fri | Normal Day |
| 1/8/2022 | Sat | WeekEnd |
| 1/9/2022 | Sun | WeekEnd |
| 1/10/2022 | Mon | Normal Day |
| 1/11/2022 | Tue | Normal Day |
| 1/12/2022 | Wed | Normal Day |
| 1/13/2022 | Thu | Normal Day |
| 1/14/2022 | Fri | Normal Day |