# IsNull スクリプトおよびチャート関数

IsNull 関数は、数式の値が NULL かどうかを検定します。NULL の場合は -1 (True)、NULL でない場合は 0 (False) を返します。

構文:

IsNull(expr )

情報メモ長さ 0 の文字列は NULL とみなされず、IsNull は False を返します。

戻り値データ型： Boolean

引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。 |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `IsNull(Productname)` | `ProductName` が NULL 値の場合は `-1` (True) を、それ以外の場合は `0` (False) を返します。 |

## 例 - IsNull の基本

[](https://help.qlik.com/en-US/cloud-services/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` ステートメントの条件 `len(trim(Value))= 0 or Value='NULL' or Value='-'` を満たす最初の 3 行に対して `NULL` を返します。最後の行は、入力された値の `378` を返します。

2 番目のメジャー (列 4) は、列 3 の式の値を取得し、`NULL` の場合は `T`、`NULL` でない場合は `F` を返します。結果は、最初の 3 行が NULL 値であることを示しています。

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

#### ロード スクリプト

この例では、4 行のインライン テーブルがロードされます。最初の 3 行の `Value` 列には何も含まれていないか、ダッシュ - または NULL というテキストが含まれています。真ん中の先行する LOAD で Null 関数を使って、これらの値を実際の NULL 値表現に変換します。

1 つ目の先行する LOAD では、値が NULL かどうかをチェックする項目を IsNull 関数を使って追加しています。

```
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/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NULLFunctions/IsNull.htm)

#### チャートの数式

概要

売上データのデータセットを分析して、どの項目に NULL 値があるかを確認します。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* `NULL` に設定された `NULLINTERPRET` 変数。

* データ テーブル内の次の項目:

  * `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)`、`NULL` の場合は `Age` 項目に `Age unavailable` という値を入力します。

* `=If(IsNull(Email), 'Email unavailable', Email)`、`NULL` の場合は `Email` 項目に `Email unavailable` という値を入力します。

* `=If(IsNull(Region), 'Region unavailable', Region)`、`NULL` の場合は `Region` 項目に `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 |

`IsNull` 関数の結果は、NULL 値があるかどうかをチェックし、見つかった場合は true を返し、データセットのいくつかの項目に NULL 値が含まれていることを示しています。たとえば、`Charlie Lee` の `Age` 列で NULL 値が識別され、出力 `Age unavailable` が返されました。