# IsNull 스크립트 및 차트 함수

IsNull 함수는 표현식의 값이 NULL인지 테스트하여, 그런 경우 -1(True)을 반환하고 그렇지 않으면 0(False)을 반환합니다.

구문:

IsNull(expr )

정보 메모길이가 0인 문자열을 NULL로 처리하지 않으며 IsNull에서는 False를 반환합니다.

반환 데이터 유형: 부울

인수

| 인수 | 설명 |
| --- | --- |
| expr | 측정할 데이터가 포함된 표현식 또는 필드입니다. |

예: 차트 표현식

| 예제 | 결과 |
| --- | --- |
| `IsNull(Productname)` | `ProductName`가 null 값이면 `-1`(True)를 반환하고, 그렇지 않으면 `0`(False)을 반환합니다. |

## 예 - IsNull 기본 사항

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

#### 차트 표현식

개요

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

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

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

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

  * `ID`

  * `Value`

로드 스크립트

```
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
```

결과

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

* `ID`

* `Value`

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

* `=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )`: `Value` 필드에 값이 없거나 대시(-) 문자 또는 값 `NULL`이 있는 경우 `NULL`을 반환하고, 그렇지 않으면 값을 반환합니다.

* `=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F')`: `Value` 필드에 null 값이 포함되어 있는지 여부에 따라 `T`(True) 또는 `F`(False) 값을 반환합니다.

Results table

| ID | Value | If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) | If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F') |
| --- | --- | --- | --- |
| 0 |  | - | T |
| 1 | NULL | - | T |
| 2 | - | - | T |
| 3 | 378 | 378 | F |

`Value` 열은 데이터 집합에 입력된 데이터를 보여 줍니다. 첫 번째 측정값(열 3)은 `IF` 문의 조건을 충족하는 값이 있는 처음 3개 행에 대해 `NULL`을 반환합니다. `len(trim(Value))= 0 or Value='NULL' or Value='-'`. 마지막 행은 입력된 값 `378`을 반환합니다.

두 번째 측정값(열 4)은 열 3의 표현식 값이 `NULL`이면 `T`를 반환하고, `NULL`이 아니면 `F`를 반환합니다. 결과는 처음 3개 행이 null 값임을 보여 줍니다.

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

#### 로드 스크립트

이 예에서는 4개 행으로 구성된 인라인 테이블이 로드되는데, 처음 3개 줄에는 아무것도 없거나 대시 - 또는 `Value` 열에 텍스트 NULL가 포함되어 있습니다. Null 함수를 사용하여 중간 선행 LOAD를 통해 이들 값을 실제 NULL 값으로 변환할 수 있습니다.

첫 번째 선행 LOAD는 IsNull 함수를 사용하여 값이 NULL인지 확인하는 필드를 추가합니다.

```
NullsDetectedAndConverted:
LOAD *,
If(IsNull(ValueNullConv), 'T', 'F') as IsItNull;

LOAD *,
If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) as ValueNullConv;

LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3, 378];
```

아래는 결과 테이블입니다. `ValueNullConv` 열에 `NULL` 값이 `-`으로 표시되어 있습니다.

Results table

| ID | Value | ValueNullConv | IsItNull |
| --- | --- | --- | --- |
| 0 |  | - | T |
| 1 | NULL | - | T |
| 2 | - | - | T |
| 3 | 378 | 378 | F |

## 예 - IsNull 시나리오

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

#### 차트 표현식

개요

판매 데이터 집합을 분석하여 어떤 필드에 null 값이 있는지 확인합니다.

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

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

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

* `NULLINTERPRET` 변수가 `NULL`로 설정되었습니다.

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

  * `SalesID`

  * `Name`

  * `Age`

  * `Email`

  * `Region`

  * `Status`

로드 스크립트

```
Set NULLINTERPRET = NULL;
Example:
LOAD * Inline [
SalesID, Name, Age, Email, Region, Status
1, John Smith, 30, john@email.com, North, Active
2, Jane Doe, NULL, jane@email.com, South, Active
3, Bob Johnson, 45, NULL, East, Inactive
4, Alice Brown, 28, alice@email.com, West, Active
5, Charlie Lee, NULL, charlie@email.com, NULL, Active
6, Eva Green, 35, eva@email.com, North, NULL
7, David White, 50, NULL, South, Inactive
8, Fiona Black, 42, fiona@email.com, East, Active
];
```

결과

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

* `SalesID`

* `Name`

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

* `=If(IsNull(Age), 'Age unavailable', Age)`: `Age` 필드가 `NULL`인 경우 값 `Age unavailable`로 채웁니다.

* `=If(IsNull(Email), 'Email unavailable', Email)`: `Email` 필드가 `NULL`인 경우 값 `Email unavailable`로 채웁니다.

* `=If(IsNull(Region), 'Region unavailable', Region)`: `Region` 필드가 `NULL`인 경우 값 `Region unavailable`로 채웁니다.

Results table

| SalesID | Name | If(IsNull(Age), 'Age unavailable', Age | If(IsNull(Email), 'Email unavailable', Email) | If(IsNull(Region), 'Region unavailable', Region) |
| --- | --- | --- | --- | --- |
| 1 | John Smith | 30 | john@email.com | North |
| 2 | Jane Doe | Age unavailable | jane@email.com | South |
| 3 | Bob Johnson | 45 | Email unavailable | East |
| 4 | Alice Brown | 28 | alice@email.com | West |
| 5 | Charlie Lee | Age unavailable | charlie@email.com | Region unavailable |
| 6 | Eva Green | 35 | eva@email.com | North |
| 7 | David White | 50 | Email unavailable | South |
| 8 | Fiona Black | 42 | fiona@email.com | East |

null 값이 발견되면 true를 확인하여 반환하는 `IsNull` 함수의 결과는 데이터 집합의 여러 필드에 null 값이 포함되어 있음을 나타냅니다. 예를 들어, `Charlie Lee`의 `Age` 열에서 null 값이 식별되었고 출력 `Age unavailable`이 반환되었습니다.