# Concatenate

`Concatenate` は、データセットを既存のメモリ内テーブルに吹きできるスクリプト ロード プレフィックスです。これは、異なるトランザクション データのセットを単一の中央ファクト テーブルに追加したり、複数のソースから取得される特定タイプの共通参照データセットを構築したりするためによく使われます。SQL UNION 演算子の機能と似ています。

`concatenate` 操作で出力されたテーブルには、そのテーブルの下にデータの新しい行が付記された元のデータセットが含まれます。ソースとターゲット テーブルには、異なる項目が含まれている可能性があります。項目が異なる場合、出力されるテーブルは、ソース テーブルとターゲット テーブルの両方に存在するすべての項目を組み合わせた結果を評価するために幅が広くなります。

構文:

Concatenate[ (tablename ) ] ( loadstatement | selectstatement )

引数

| 引数 | 説明 |
| --- | --- |
| ` tablename  ` | 既存テーブルの名前。命名されたテーブルは `Concatenate` 操作のターゲットであり、ロードされたレコードはそのテーブルに追加されます。`tablename` パラメータが使用されない場合、ターゲット テーブルはこのステートメントの前に最後にロードされたテーブルとなります。 |
| ` loadstatement/selectstatement  ` | `tablename` 引数の後の `loadstatement/selectstatement` 引数は、指定したテーブルに連結されます。 |

## 地域の設定

特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの `SET DateFormat` ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。

App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。

関数の例

| 例 | 結果 |
| --- | --- |
| `Concatenate(Transactions)<br><br>Load …. ;` | `Concatenate` プレフィックスの下にある Load ステートメントにロードされたデータは、`Transactions` という既存のメモリ内テーブルに追加されます (`Transactions` というテーブルが、ロード スクリプトでこの時点までにロードされたという前提)。 |

## 例 1 – 連結ロード プレフィックスを使って、複数のデータ セットをターゲット テーブルに追加する

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

#### ロード スクリプトと結果

概要

この例では、2 つのスクリプトを順にロードします。

* 最初のロード スクリプトには、`Transactions` というテーブルに送信される日付と金額を含む初期データセットが含まれています。

* 2 番目のロード スクリプトには次の内容が含まれます:

  * `Concatenate` プレフィックスを使って初期データセットに追加される 2 番目のデータセット。このデータセットには、初期データセットにはなかった追加項目の `type` があります。
  * `Concatenate` プレフィックス。

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

最初のロード スクリプト

```

Transactions: 
Load * Inline [ 

id, date, amount 
3750, 08/30/2018, 23.56 
3751, 09/07/2018, 556.31 
3752, 09/16/2018, 5.75 
3753, 09/22/2018, 125.00 
3754, 09/22/2018, 484.21 
3756, 09/22/2018, 59.18 
3757, 09/23/2018, 177.42 
]; 
```

結果

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

* `id`

* `date`

* `amount`

最初のロード スクリプト結果テーブル

| ID | 日付 | amount |
| --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 |
| 3751 | 09/07/2018 | 556.31 |
| 3752 | 09/16/2018 | 5.75 |
| 3753 | 09/22/2018 | 125.00 |
| 3754 | 09/22/2018 | 484.21 |
| 3756 | 09/22/2018 | 59.18 |
| 3757 | 09/23/2018 | 177.42 |

テーブルには初期データセットが表示されています。

2 番目のロード スクリプト

データ ロード エディタを開き、以下のロード スクリプトを追加します。

```

Concatenate(Transactions) 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

結果

データをロードしてシートに移動します。この項目を軸として作成します。

* `type`

2 番目のロード スクリプト結果テーブル

| ID | 日付 | amount | タイプ |
| --- | --- | --- | --- |
| 3750 | 08/30/2018 | 23.56 | - |
| 3751 | 09/07/2018 | 556.31 | - |
| 3752 | 09/16/2018 | 5.75 | - |
| 3753 | 09/22/2018 | 125.00 | - |
| 3754 | 09/22/2018 | 484.21 | - |
| 3756 | 09/22/2018 | 59.18 | - |
| 3757 | 09/23/2018 | 177.42 | - |
| 3758 | 10/01/2018 | 164.27 | 内部 |
| 3759 | 10/03/2018 | 384.00 | 外部 |
| 3760 | 10/06/2018 | 25.82 | 内部 |
| 3761 | 10/09/2018 | 312.00 | 内部 |
| 3762 | 10/15/2018 | 4.56 | 内部 |
| 3763 | 10/16/2018 | 90.24 | 内部 |
| 3764 | 10/18/2018 | 19.32 | 外部 |

最初の 7 つのレコードの [`type`] 項目の null 値がロードされ、`type` が定義されていないことに注意してください。

## 例 2 – 黙示的連結を使って、複数のデータ セットをターゲット テーブルに追加する

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

#### ロード スクリプトと結果

概要

黙示的にデータを追加する典型的使用例は、同じ構造のデータを持つ複数のファイルをロードし、それらをすべてターゲット テーブルに追加する方法です。

例えば、次のような構文を使ってファイル名に `wildcards` を使用します:

```
	 myTable: 
	  Load * from [myFile_*.qvd] (qvd); 
						
```

または次のような構造を使ってループに使用します:

```

	for each file in filelist('myFile_*.qvd') 

	myTable: 
	Load * from [$(file)] (qvd); 

	next file 
```

情報メモ黙示的連結は、たとえスクリプト内で互いに後に定義されていなくても、同名の項目がロードされた 2 つのテーブル間で行われます。これにより、データが予定外にテーブルに追加される可能性があります。同一項目を持つセカンダリ テーブルをこのように追加したくない場合は、`NoConcatenate` ロード プレフィックスを使います。別のテーブル名タグでテーブルの名称を変更しても、黙示的連結を防止するのに不十分です。詳細については、「[NoConcatenate](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)」を参照してください。

この例では、2 つのスクリプトを順にロードします。

* 最初のロード スクリプトには、`Transactions` というテーブルに送信される 4 つの項目を含む初期データセットが含まれています。

* 2 番目のロード スクリプトには、最初のデータセットとして同一項目を持つデータセットが含まれます。

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

最初のロード スクリプト

```

Transactions: 
Load * Inline [ 
id, date, amount, type 
3758, 10/01/2018, 164.27, Internal 
3759, 10/03/2018, 384.00, External 
3760, 10/06/2018, 25.82, Internal 
3761, 10/09/2018, 312.00, Internal 
3762, 10/15/2018, 4.56, Internal 
3763, 10/16/2018, 90.24, Internal 
3764, 10/18/2018, 19.32, External 
]; 
```

結果

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

* `id`

* `date`

* `amount`

* `type`

最初のロード スクリプト結果テーブル

| ID | 日付 | タイプ | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 内部 | 164.27 |
| 3759 | 10/03/2018 | 外部 | 384.00 |
| 3760 | 10/06/2018 | 内部 | 25.82 |
| 3761 | 10/09/2018 | 内部 | 312.00 |
| 3762 | 10/15/2018 | 内部 | 4.56 |
| 3763 | 10/16/2018 | 内部 | 90.24 |
| 3764 | 10/18/2018 | 外部 | 19.32 |

テーブルには初期データセットが表示されています。

2 番目のロード スクリプト

データ ロード エディタを開き、以下のロード スクリプトを追加します。

```

Load * Inline [ 
id, date, amount, type 
3765, 11/03/2018, 129.40, Internal 
3766, 11/05/2018, 638.50, External 
]; 
```

結果

データをロードしてシートに移動します。

2 番目のロード スクリプト結果テーブル

| ID | 日付 | タイプ | amount |
| --- | --- | --- | --- |
| 3758 | 10/01/2018 | 内部 | 164.27 |
| 3759 | 10/03/2018 | 外部 | 384.00 |
| 3760 | 10/06/2018 | 内部 | 25.82 |
| 3761 | 10/09/2018 | 内部 | 312.00 |
| 3762 | 10/15/2018 | 内部 | 4.56 |
| 3763 | 10/16/2018 | 内部 | 90.24 |
| 3764 | 10/18/2018 | 外部 | 19.32 |
| 3765 | 11/03/2018 | 内部 | 129.40 |
| 3766 | 11/05/2018 | 外部 | 638.50 |

2 番目のデータセットは、同一項目があったため、初期データセットに黙示的に連結されました。