# NoConcatenate

NoConcatenate プレフィックスは、同一の項目セットでロードされた 2 つのテーブルを、強制的に別個の内部テーブルとして扱います (そうでない場合、自動的に連結されます)。

構文:

NoConcatenate( loadstatement | selectstatement )

既定では、項目数が同じで一致する項目名を持つテーブルがスクリプトにロード済みのテーブルにロードされた場合、Qlik Sense がこれら 2 つのテーブルを自動連結します。これは、2 つめのテーブルの名前が異なっていても発生します。

ただし、スクリプト プレフィックス `NoConcatenate` が 2 番目のテーブルの Load ステートメントまたは select ステートメントの前に含まれていた場合、これら 2 つのテーブルは別にロードされます。

`NoConcatenate` の典型的なユース ケースは、テーブルの臨時コピーを作成してそのコピーの臨時変換を実行しながらも、元のデータのコピーを保持する必要がある場合などです。`NoConcatenate` により、ソース テーブルに黙示的に追加せずにコピーを確実に作成できます。

## 地域の設定

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

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

関数の例

| 例 | 結果 |
| --- | --- |
| `Source:<br><br>								LOAD A,B from file1.csv;<br><br><br><br>							`` CopyOfSource:<br><br>								NoConcatenate<br><br>							LOAD A,B resident Source;   ` | メジャーとして `A` と `B` を持つテーブルがロードされます。同じ項目を持つ 2 番目のテーブルは、`NoConcatenate` 変数を使って別のロードされます。 |

## 例 1 – 黙示的連結

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

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

概要

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

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

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

* `Transactions` というテーブルに送信される日付と金額を含む初期データセット。

最初のロード スクリプト

```
Transactions: 
LOAD  
*  
Inline [ 
id, date, amount 
1, 08/30/2018, 23.56 
2, 09/07/2018, 556.31 
3, 09/16/2018, 5.75 
4, 09/22/2018, 125.00 
5, 09/22/2018, 484.21 
6, 09/22/2018, 59.18 
7, 09/23/2018, 177.42 
]; 
```

結果

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

* `id`
* `date`
* `amount`

最初の結果テーブル

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 08/30/2018 | 23.56 |
| 2 | 09/07/2018 | 556.31 |
| 3 | 09/16/2018 | 5.75 |
| 4 | 09/22/2018 | 125.00 |
| 5 | 09/22/2018 | 484.21 |
| 6 | 09/22/2018 | 59.18 |
| 7 | 09/23/2018 | 177.42 |

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

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

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

* 同一項目を持つ 2 番目のデータセットが `Sales` というテーブルに送信されます。

```
Sales: 
LOAD 
*  
Inline [ 
id, date, amount 
8, 10/01/2018, 164.27 
9, 10/03/2018, 384.00 
10, 10/06/2018, 25.82 
11, 10/09/2018, 312.00 
12, 10/15/2018, 4.56 
13, 10/16/2018, 90.24 
14, 10/18/2018, 19.32 
]; 
```

結果

データをロードしてテーブルに移動します。

2 番目の結果テーブル

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 08/30/2018 | 23.56 |
| 2 | 09/07/2018 | 556.31 |
| 3 | 09/16/2018 | 5.75 |
| 4 | 09/22/2018 | 125.00 |
| 5 | 09/22/2018 | 484.21 |
| 6 | 09/22/2018 | 59.18 |
| 7 | 09/23/2018 | 177.42 |
| 8 | 10/01/2018 | 164.27 |
| 9 | 10/03/2018 | 384.00 |
| 10 | 10/06/2018 | 25.82 |
| 11 | 10/09/2018 | 312.00 |
| 12 | 10/15/2018 | 4.56 |
| 13 | 10/16/2018 | 90.24 |
| 14 | 10/18/2018 | 19.32 |

スクリプトを実行すると、`Sales` テーブルが既存の `Transactions` テーブルに黙示的に連結されます。これは、2 つのデータセットの項目数と、項目名が同一だからです。これは、2 番目のテーブル名タグが結果セットを `‘Sales’` という名前にしようとしても発生します。

データ ロード進捗状況を確認することにより、Sales データセットが黙示的に連結されたいることがわかります。

トランザクション データが黙示的に連結されていることを示すデータ ロード進捗状況ログ。

トランザクション データが黙示的に連結されていることを示すデータ ロード進捗状況ログ。

トランザクション データが黙示的に連結されていることを示すデータ ロード進捗状況ログ。![トランザクション テーブルが 2 回ロードされたことを示すデータ ロード進捗状況ログ。](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Resources/Images/dle_DataLoadProgressLog_NoConcatenate.png)

## 例 2 – ケース シナリオを使用する

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

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

概要

このユース ケース シナリオには次の要素があります:

* 次のようなトランザクション データセット:

  * ID

  * 日付

  * 金額 (GBP)

* 通貨テーブル:

  * USD から GBP の為替レート

* 次のような 2 番目のトランザクション データセット:

  * ID

  * 日付

  * 金額 (USD)

5 つのスクリプトを順にロードします。

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

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

  * `Transactions_in_USD` というテーブルに送信される日付と金額を含む 2 番目のデータセット。

  * 黙示的連結を回避するために、`Transactions_in_USD` データセットの Load ステートメントの前に配置された `noconcatenate` プレフィックス。

* 3 番目のロード スクリプトには、`Transactions_in_USD` テーブルで GBP と USD の為替レートを作成するのに使用される `join` プレフィックスが含まれます。

* 4 番目のロード スクリプトには、`Transactions_in_USD` を初期の `Transactions` テーブルに追加する `concatenate` プレフィックスが含まれます。

* 5 番目のロード スクリプトには、データが `Transactions` テーブルに連結された `Transactions_in_USD` テーブルを削除する `drop table` ステートメントが含まれます。

最初のロード スクリプト

```
Transactions: 

Load * Inline [
id, date, amount 
1, 12/30/2018, 23.56 
2, 12/07/2018, 556.31 
3, 12/16/2018, 5.75 
4, 12/22/2018, 125.00 
5, 12/22/2018, 484.21 
6, 12/22/2018, 59.18 
7, 12/23/2018, 177.42 
];
```

結果

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

* `id``date``amount`

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

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 12/30/2018 | 23.56 |
| 2 | 12/07/2018 | 556.31 |
| 3 | 12/16/2018 | 5.75 |
| 4 | 12/22/2018 | 125.00 |
| 5 | 12/22/2018 | 484.21 |
| 6 | 12/22/2018 | 59.18 |
| 7 | 12/23/2018 | 177.42 |

テーブルには、金額 (GBP) を持つ初期データセットが表示されています。

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

```
Transactions_in_USD:
NoConcatenate 
Load * Inline [ 
id, date, amount 
8, 01/01/2019, 164.27 
9, 01/03/2019, 384.00 
10, 01/06/2019, 25.82 
11, 01/09/2019, 312.00 
12, 01/15/2019, 4.56 
13, 01/16/2019, 90.24 
14, 01/18/2019, 19.32 
];
```

結果

データをロードしてテーブルに移動します。

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

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 12/30/2018 | 23.56 |
| 2 | 12/07/2018 | 556.31 |
| 3 | 12/16/2018 | 5.75 |
| 4 | 12/22/2018 | 125.00 |
| 5 | 12/22/2018 | 484.21 |
| 6 | 12/22/2018 | 59.18 |
| 7 | 12/23/2018 | 177.42 |
| 8 | 01/01/2019 | 164.27 |
| 9 | 01/03/2019 | 384.00 |
| 10 | 01/06/2019 | 25.82 |
| 11 | 01/09/2019 | 312.00 |
| 12 | 01/15/2019 | 4.56 |
| 13 | 01/16/2019 | 90.24 |
| 14 | 01/18/2019 | 19.32 |

`Transactions_in_USD` テーブルからの 2 番目のデータセットが追加されたことがわかります。

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

このロード スクリプトは、USD から GBP の為替レートを `Transactions_in_USD` テーブルに追加します。

```

Join (Transactions_in_USD)
Load * Inline [ 
rate 
0.7 
];
```

結果

データをロードして、データ モデル ビューアに移動します。`Transactions_in_USD` テーブルを選択すると、各既存レコードの「レート」項目値が 0.7 になっていることがわかります。

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

resident load を使うと、このロード スクリプトは金額を USD に換算後、`Transactions_in_USD` テーブルを `Transactions` テーブルに連結します。

```

Concatenate (Transactions)
LOAD
id,
date, 
amount * rate as amount
Resident Transactions_in_USD;
```

結果

データをロードしてテーブルに移動します。8～14 行目に GBP 建ての金額で新しい入力が表示されます。

4 番目のロード スクリプト結果

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 12/30/2018 | 23.56 |
| 2 | 12/07/2018 | 556.31 |
| 3 | 12/16/2018 | 5.75 |
| 4 | 12/22/2018 | 125.00 |
| 5 | 12/22/2018 | 484.21 |
| 6 | 12/22/2018 | 59.18 |
| 7 | 12/23/2018 | 177.42 |
| 8 | 01/01/2019 | 114.989 |
| 8 | 01/01/2019 | 164.27 |
| 9 | 01/03/2019 | 268.80 |
| 9 | 01/03/2019 | 384.00 |
| 10 | 01/06/2019 | 18.074 |
| 10 | 01/06/2019 | 25.82 |
| 11 | 01/09/2019 | 218.40 |
| 11 | 01/09/2019 | 312.00 |
| 12 | 01/15/2019 | 3.192 |
| 12 | 01/15/2019 | 4.56 |
| 13 | 01/16/2019 | 63.168 |
| 13 | 01/16/2019 | 90.24 |
| 14 | 01/18/2019 | 13.524 |
| 14 | 01/18/2019 | 19.32 |

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

このロード スクリプトは、4 番目のロード スクリプト結果テーブルから重複エントリを削除し、GBP 建ての金額を持つエントリのみを残します。

```

drop tables Transactions_in_USD;
```

結果

データをロードしてテーブルに移動します。

5 番目のロード スクリプト結果

| ID | 日付 | amount |
| --- | --- | --- |
| 1 | 12/30/2018 | 23.56 |
| 2 | 12/07/2018 | 556.31 |
| 3 | 12/16/2018 | 5.75 |
| 4 | 12/22/2018 | 125.00 |
| 5 | 12/22/2018 | 484.21 |
| 6 | 12/22/2018 | 59.18 |
| 7 | 12/23/2018 | 177.42 |
| 8 | 01/01/2019 | 114.989 |
| 9 | 01/03/2019 | 268.80 |
| 10 | 01/06/2019 | 18.074 |
| 11 | 01/09/2019 | 218.40 |
| 12 | 01/15/2019 | 3.192 |
| 13 | 01/16/2019 | 63.168 |
| 14 | 01/18/2019 | 13.524 |

5 番目のロード スクリプトをロードした後、結果テーブルには両方のトランザクション データセットに存在した 14 件のトランザクションすべてが表示されます。ただし、トランザクション 8～14 では金額が GBP に変換されています。

2 番目のロード スクリプトで Transactions\_in\_USD の前に使用された NoConcatenate プレフィックスを削除した場合、スクリプトに「テーブル「Transactions\_in\_USD」が見つかりません」というエラーが発生します。これは、Transactions\_in\_USD テーブルが初期 Transactions テーブルに連結するはずだったからです。

## 詳細を見る

* [テーブルの連結](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/LoadData/concatenate-tables.htm)
* [Load](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)