IsNull - スクリプトおよびチャート関数
IsNull 関数は、数式の値が NULL かどうかを検定します。NULL の場合は -1 (True)、NULL でない場合は 0 (False) を返します。
構文:
IsNull(expr )
戻り値データ型: ブール値
引数 | 説明 |
---|---|
expr | メジャーの対象となるデータが含まれている数式または項目。 |
例 | 結果 |
---|---|
IsNull(Productname) |
ProductName が NULL 値の場合は -1 (True) を、それ以外の場合は 0 (False) を返します。 |
例 - IsNull の基本
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
-
「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) を返します。
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 値であることを示しています。
この例では、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 値が - で表されています。
ID | Value | ValueNullConv |
IsItNull |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
例 - IsNull のシナリオ
概要
売上データのデータセットを分析して、どの項目に 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 という値を入力します。
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 が返されました。