# alt 스크립트 및 차트 함수

alt 함수는 유효한 숫자 표현이 있는 첫 번째 파라메타를 반환합니다. 이와 일치하는 항목이 발견되지 않을 경우 마지막 파라메타를 반환합니다. 원하는 만큼의 파라메타를 사용할 수 있습니다.

구문:

alt(expr1[ , expr2 , expr3 , ...] , else)

반환 데이터 유형: 정수

인수

| 인수 | 설명 |
| --- | --- |
| expr1 | 유효한 숫자 표현인지 확인할 첫 번째 표현식입니다. |
| expr2 | 유효한 숫자 표현인지 확인할 두 번째 표현식입니다. |
| expr3 | 유효한 숫자 표현인지 확인할 세 번째 표현식입니다. |
| else | 유효한 숫자 표현을 가진 이전 파라메타가 없는 경우 반환하는 값입니다. |

alt 함수는 숫자 또는 날짜 해석 함수와 함께 사용되는 경우가 많습니다. 이 방법으로 Qlik Sense에서 우선 순위에 따라 서로 다른 날짜 서식을 테스트할 수 있습니다. 또한 이 함수는 숫자 표현식에서 NULL 값을 처리하는 데도 사용할 수 있습니다.

예: 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | 이 표현식은 지정된 세 가지 날짜 형식에 해당하는 날짜가 날짜 필드에 포함되어 있는지 테스트합니다. 포함되어 있다면 원래 문자열과 날짜의 유효한 숫자 표현이 포함된 이중 값이 반환됩니다. 일치 항목이 발견되지 않을 경우 `No valid date`가 반환됩니다(유효한 숫자 표현 없이). |
| `alt(Sales,0) + alt(Margin,0)` | 이 표현식은 `Sales` 및 `Margin` 필드를 추가하고 누락된 값(NULL)을 `0`으로 바꿉니다. |

## 예 - alt 기본 사항

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

#### 차트 표현식

개요

데이터 집합에는 불완전한 판매 및 예측 데이터가 포함되어 있습니다. 누락된 값을 유효한 대체 가능 값으로 바꿔 간격을 채우려고 합니다.

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

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

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

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

  * `ID`

  * `Sales`

  * `Forecast`

로드 스크립트

```
Example:
LOAD * INLINE [
ID, Sales, Forecast
1, 500, 450
2, , 300
3, 200, 250
4, , 400
5, 350,
];
```

결과

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

* `ID`

* `Sales`

* `Forecast`

다음 측정값을 만듭니다.

* `=Sum(alt(Sales, Forecast))` 누락된 값을 유효한 대체 가능 값으로 바꿔 유효한 숫자 표시를 반환합니다.

결과 테이블

| ID | Sales | Forecast | Sum(alt(Sales, Forecast)) |
| --- | --- | --- | --- |
| Totals |  |  | 1750 |
| 1 | 500 | 450 | 500 |
| 2 |  | 300 | 300 |
| 3 | 200 | 250 | 200 |
| 4 |  | 400 | 400 |
| 5 | 350 |  | 350 |

`alt` 함수는 누락된 `Sales` 값이 있는 `ID` 행에 대한 측정값 계산에서 `Forecast` 값을 반환합니다. 누락된 값을 유효한 대체 가능 값으로 바꾸면 완전히 채워진 데이터 집합을 생성할 수 있습니다.

## 예 - alt를 사용하여 누락된 값 바꾸기

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

#### 차트 표현식

개요

회사에서 여러 개의 센서로부터 온도 데이터를 수집합니다. 한 센서에서 누락된 데이터를 다른 센서의 데이터로 바꾸려고 합니다.

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

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

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

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

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

로드 스크립트

```
Example:
LOAD * INLINE [
Time, Temp_Sensor1, Temp_Sensor2
08:00, 23.5, 24.0
09:00, , 23.8
10:00, 24.1,
11:00, , 24.5
12:00, 23.9, 24.1
];
```

결과

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

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

다음 측정값을 만듭니다.

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))` 유효한 숫자 표시를 반환합니다.

결과 테이블

| Time | Temp\_Sensor1 | Temp\_Sensor2 | Sum(alt(Temp\_Sensor1, Temp\_Sensor2)) |
| --- | --- | --- | --- |
| Totals |  |  | 119.8 |
| 08:00 | 23.5 | 24.0 | 23.5 |
| 09:00 |  | 23.8 | 23.8 |
| 10:00 | 24.1 |  | 24.1 |
| 11:00 |  | 24.5 | 24.5 |
| 12:00 | 23.9 | 24.1 | 23.9 |

결과를 살펴보면, `alt` 함수는 누락된 센서 데이터를 다른 센서의 유효한 대체 가능 결과로 바꿨습니다. 이것으로 간격을 채우면 데이터 집합이 완료됩니다.

## 예 - alt 시나리오

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

#### 차트 표현식

개요

이 시나리오에서는 `alt` 함수를 사용하여 누락된 값이나 null 값을 바꾸는 다양한 방법을 보여 줍니다.

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

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

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

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

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

로드 스크립트

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, SalesAmount, ReturnAmount, Profit, Discount, Category, Year, Region, CustomerRating
101, "Laptop", 1200, 200, 500, , "Electronics", 2023, "North",
102, "Tablet", 800, , 300, 50, "Electronics", 2023, "South", 4
103, "Smartphone", 1500, , 600, 100, , 2022, "East", 5
104, "Printer", 400, , , 20, "Accessories", 2021, , 3
105, , 1000, 100, , 30, "Electronics", 2023, "West", 4
106, "Monitor", , 150, 250, , "Accessories", 2022, "North", 5
107, "Keyboard", 200, , 80, 5, , 2022, "South", 2
108, "Mouse", , 50, , , "Accessories", , "East",
109, , 600, , , , "Electronics", 2023, , 4
110, "Headphones", 300, 30, 100, , "Accessories", 2021, "West", 3
];
```

결과

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

* `ProductID`

다음 계산된 차원을 만듭니다.

* `=Coalesce( ProductName,  'Unknown Product')`: `ProductName`에 대한 값이 없는 모든 제품에 대한 설명 `Unknown Product`을 제공합니다.

다음 측정값을 만듭니다.

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`: `SalesAmount`가 발견되지 않으면 유효한 숫자를 반환합니다.

* `=avg(alt(CustomerRating, 3))`: 원래 제공된 항목이 없는 경우 유효한 표준화된 고객 평가를 반환합니다.

* `=Sum(alt(Discount, SalesAmount * 0.05))`: 유효한 할인을 반환합니다.

* `=Sum(alt(Profit, SalesAmount * 0.1))`: 유효한 이익 값을 반환합니다.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`: 유효한 판매량 값을 반환합니다.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`: 유효한 할인 값을 반환합니다.

결과 테이블

| ProductID | Coalesce( ProductName, 'Unknown Product') | Sum(alt(SalesAmount, ReturnAmount, Profit)) | avg(alt(CustomerRating, 3)) | Sum(alt(Discount, SalesAmount \* 0.05)) | Sum(alt(Profit, SalesAmount \* 0.1)) | Sum(alt(SalesAmount, avg(TOTAL SalesAmount))) | Sum(alt(Discount, avg(TOTAL Discount))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 합계 |  | 6200 | 3.6 | 310 | 2030 | 7500 | 410 |
| 101 | 랩톱 | 1200 | 3 | 60 | 500 | 1200 | 41 |
| 102 | 태블릿 | 800 | 4 | 50 | 300 | 500 | 50 |
| 103 | 스마트폰 | 1500 | 5 | 100 | 600 | 800 | 100 |
| 104 | 프린터 | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | 알 수 없는 제품 | 1000 | 4 | 30 | 100 | 1000 | 30 |
| 106 | 모니터 | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | 건반 | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | 마우스 | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | 알 수 없는 제품 | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | 헤드폰 | 300 | 3 | 15 | 100 | 300 | 41 |

`alt` 함수는 값이 누락된 경우 대체 가능 값을 계산하여 반환할 수 있도록 합니다. 다음 결과를 관찰합니다.

* 열 2에서는 `Coalesce` 함수를 사용하여 모든 null 값에 대한 값 `Unknown Product`을 반환합니다. `Alt` 함수는 숫자 값에만 적용되므로 사용할 수 없습니다.

* 열 3은 `SalesAmount`의 값을 반환합니다. 값이 발견되지 않으면 `ReturnAmount` 값을 반환합니다. `ReturnAmount` 값이 발견되지 않으면 `Profit` 값을 반환합니다. `SalesAmount`에 값이 없을 경우에도 열에 값이 채워지도록 합니다.

* 열 4는 `CustomerRating`을 반환합니다. 값이 발견되지 않으면 기본값은 `3`입니다. 예를 들어, 제품 `Laptop`에 고객 평가가 없으므로 `3`이 반환됩니다. 그런 다음 측정값은 열의 평균을 계산합니다.

* 열 5는 할인율을 반환합니다. 사용할 수 있는 값이 없으면 `SalesAmount` 값의 5%로 계산됩니다.

* 열 6은 `Profit` 값을 반환합니다. 사용할 수 있는 값이 없으면 `SalesAmount`의 10%를 반환합니다.

* 열 7은 `SalesAmount`를 반환합니다. 값이 제공되지 않으면 전체 데이터 집합의 평균 `SalesAmount`가 반환됩니다. 예를 들어, 제품 `Monitor` 및 `Mouse`에는 `SalesAmount`에 대한 값이 없으므로 둘 다 `750`을 반환합니다. 이는 모든 `SalesAmount` 값의 평균입니다.

* 열 8은 `Discount` 값을 반환합니다. 값이 발견되지 않으면 시스템은 전체 데이터 집합에 대한 평균 할인율을 계산하여 반환합니다.