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

EmptyIsNull 関数は、空の文字列を NULL に変換します。したがって、パラメータが空の文字列の場合は NULL を返し、そうでない場合はパラメータを返します。

構文:

EmptyIsNull(exp )

戻り値データ型： パラメーターが空の文字列の場合は NULL を、それ以外の場合はパラメーターを返します。

引数

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

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `EmptyIsNull(AdditionalComments)` | この数式は、`AdditionalComments` 項目の空の文字列値に対して、空の文字列ではなく NULL を返します。空でない文字列と数値が返されます。 |
| `EmptyIsNull(PurgeChar(PhoneNumber, ' -()'))` | この数式は、`PhoneNumber` 項目からダッシュ、スペース、括弧を削除します。文字が残っていない場合、`EmptyIsNull` 関数は NULL として空の文字列を返します。空の phone number は、phone number がないことと同じです。 |

## 例 - EmptyIsNull の基本

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

#### チャートの数式

概要

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

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

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

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

  * `CustomerID`

  * `OrderID`

  * `Product`

  * `Status`

  * `PhoneNumber`

ロード スクリプト

```
Example:
LOAD * inline [
CustomerID, OrderID, Product, Status, PhoneNumber
1, 1001, Widget,, (0123) 456 789
2, 1002, Gizmo, Open,-
3, 1003, Gadget, Closed,()
4, 1004, Widget,,678-9888
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `CustomerID`

* `OrderID`

* `Product`

* `Status`

次の計算軸を作成します。

* `=EmptyIsNull(Status)`、`Status` 項目内の空の文字列値を NULL として返します。

* `=EmptyIsNull(PurgeChar(PhoneNumber, ' -()'))`、`PhoneNumber` 項目からダッシュ、スペース、括弧を削除します。文字が残っていない場合、`EmptyIsNull` 関数は空の文字列を NULL として返します。 空の電話番号は、電話番号がないことと同じです。

情報メモ次の表には、`EmptyIsNull` 関数の使用方法を示すための空のセルが含まれています。

Results table

| CustomerID | OrderID | Product | Status | EmptyIsNull(Status) | EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
| --- | --- | --- | --- | --- | --- |
| 1 | 1001 | Widget |  | - | 0123456789 |
| 2 | 1002 | Gizmo | Open | Open | - |
| 3 | 1003 | Gadget | Closed | Closed | - |
| 4 | 1004 | Widget |  | - | 6789888 |

`Status` 列では、空の値を持つレコードは、既定の透明な背景色を持つ空のセルとして表示されることに注意してください。`EmptyIsNull(Status)` メジャーの出力では、セルの背景が灰色でダッシュ (-) 文字で示されるように、空の値に対して NULL が返されます。

2 番目のメジャーは、`EmptyIsNull` 関数を [PurgeChar スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/PurgeChar.htm) とともに使用して、`PhoneNumber` 項目からダッシュ (-)、スペース、括弧 () を削除し、残りの空の文字列を NULL として返します。NULL 値を持つセルは、ダッシュ (-) と灰色の背景書式で表示されるようになりました。

## 例 - NULL 値をテキストに置き換え、条件付き書式を追加する

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

#### チャートの数式

概要

営業マネージャーは、営業データを分析し、欠落値を含むレコードを簡単に識別したいと考えています。

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

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

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

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

  * `ID`

  * `Name`

  * `Age`

  * `Email`

  * `Sales`

  * `Region`

  * `OrderStatus`

ロード スクリプト

```
Example:
LOAD * inline [
ID,Name, Age, Email, Sales, Region, OrderStatus
1, John Smith, 30, john@email.com, 1000, North, Active
2, Jane Doe, '', jane@email.com, 1500, South, Active
3, Bob Johnson, 45, '', 800, East, Inactive
4, Alice Brown, 28, alice@email.com, '', West, Active
5, Charlie Lee, '', charlie@email.com, 1200, '', Active
6, Eva Green, 35, eva@email.com, 950, North, ''
7, David White, 50, '', '', South, Inactive
8, Fiona Black, 42, fiona@email.com, 1100, East, Active
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:

* `ID`

次の計算軸を作成します。

* `=If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age))`、`Age` 項目の空の文字列値を NULL として返し、すべての NULL 値を識別して、ダッシュ (`-`) 文字の代わりに `NULL` 値を入力します。

* `=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email))`、`Email` 項目の空の文字列値を NULL として返し、すべての NULL 値を識別して、ダッシュ (`-`) 文字の代わりに `NULL` 値を入力します。

* `=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales))`、`Sales` 項目の空の文字列値を NULL として返し、すべての NULL 値を識別して、ダッシュ (`-`) 文字の代わりに `NULL` 値を入力します。

* `=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region))`、`Region` 項目の空の文字列値を NULL として返し、すべての NULL 値を識別して、ダッシュ (`-`) 文字の代わりに `NULL` 値を入力します。

* `=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus))`、`OrderStatus` 項目の空の文字列値を NULL として返し、すべての NULL 値を識別して、ダッシュ (`-`) 文字の代わりに `NULL` 値を入力します。

条件付きセル書式を設定し、`NULL` 値の背景色を赤に、その他すべての値の背景色を緑に変更します。各軸とメジャーの [プロパティ] パネルで、 [背景色数式] として次の数式を入力します。

* `ID` (軸): `=RGB(200,255,200)`

* `Age` (メジャー): `=If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))`

* `Email` (メジャー): `=If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))`

* `Sales` (メジャー): `=If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))`

* `Region` (メジャー): `=If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))`

* `OrderStatus` (メジャー): `=If(IsNull(EmptyIsNull(OrderStatus)), RGB(255,200,200), RGB(200,255,200))`

Results table

| ID | If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)) | If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)) | If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)) | If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)) | If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)) |
| --- | --- | --- | --- | --- | --- |
| 1 | 30 | john@email.com | 1000 | North | Active |
| 2 | NULL | jane@email.com | 1500 | South | Active |
| 3 | 45 | NULL | 800 | East | Inactive |
| 4 | 28 | alice@email.com | NULL | West | Active |
| 5 | NULL | charlie@email.com | 1200 | NULL | Active |
| 6 | 35 | eva@email.com | 950 | North | NULL |
| 7 | 50 | NULL | NULL | South | Inactive |
| 8 | 42 | fiona@email.com | 1100 | East | Active |

結果は、`EmptyIsNull` 関数を使用して条件付き書式を追加することで、欠落値を持つレコードを簡単に識別できることを示しています。