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

合体関数は、有効な non-NULL 表現を持つ最初のパラメータを返します。任意の数のパラメータを使用できます。

構文:

coalesce(expr1[ , expr2 , expr3 , ...])

戻り値データ型： デュアル

引数

| 引数 | 説明 |
| --- | --- |
| expr1 | 有効な NULL 以外の表現を確認する最初の数式。 |
| expr2 | 有効な NULL 以外表現を確認する 2 番目の数式。 |
| expr3 | 有効な NULL 以外表現を確認する 3 番目の数式。 |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | この数式は、一部の項目に製品の値がない場合に備えて、3 つの異なる製品説明項目から選択します。関数にリストされている順序に従って、NULL 以外の値を持つ最初の項目が返されます。いずれの項目にも値が含まれていない場合、結果は `no description available` になります。 |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | この数式は、項目 `FileName` から潜在的な囲み引用符を削除します。指定された `FileName` が引用符で囲まれている場合、これらは削除され、囲まれた引用符で囲まれていない `FileName` が返されます。`TextBetween` 関数が区切り文字を見つけられない場合、NULL を返します。これは、Coalesce が拒否し、代わりに生の `FileName` を返します。 |

## 例 - Coalesce の基本

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

#### チャートの数式

概要

製品と価格のデータを含むデータ テーブルがロードされます。すべての NULL 値が代替値に置き換えられるようにします。

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

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

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

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

  * `ProductID`

  * `ProductName`

  * `Price`

* 欠損値が NULL として扱われるようにする `NullInterpret` 変数ステートメント。

ロード スクリプト

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

結果

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

   * `ProductID`

   * `ProductName`

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

   * `=Coalesce(ProductName, 'Unknown Product')`

3. 次のメジャーを作成します:

   * `=Sum(Price)`、有効な数値表現を返します。

4. 新しいテーブルを作成し、計算軸として次の数式を追加します。

   * `=Coalesce(ProductName, 'Unknown Product')`

5. 次のメジャーを作成します:

   * `=Sum(Price)`、有効な数値表現を返します。

次のテーブルの結果は、`Coalesce` 関数が元のデータセット内の null 値を代替値 `Unknown Product` に置き換える方法を示しています。

結果テーブル 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

結果テーブル 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## 例 - 優先される代替値で NULL 値を置き換える

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

#### チャートの数式

概要

この例では、`Coalesce` 関数を使用して、指定された優先ロジックに従って、欠落している位置データを代替値に置き換えます。

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

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

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

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

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* 欠損値が NULL として扱われるようにする `NullInterpret` 変数ステートメント。

ロード スクリプト

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

結果

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

   * `LocationID`

   * `Country`

   * `State`

   * `City`

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

   * `=Coalesce(Country, State, City)`、NULL 値を代替値で入力します。

結果テーブル

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

結果は、欠損値があるにもかかわらず、`Coalesce` 関数を使用して、これらのインスタンスに代替値を入力してデータセットを完成させる方法に関するロジックを提供できることを示しています。たとえば、`L004` には `Country` 値がありません。`Country` の値が欠落している場合に使用する優先ロジックにリストされている 2 番目の項目が `State` であるため、`Coalesce` 関数は `New South Wales` を返します。