# 循環参照

データ構造に循環参照 (ループ) が存在する場合、テーブルは 2 つの項目間に複数の関連付けパスが存在するように関連付けられます。

次の手順を実行します。

1. Scripting Tutorial アプリケーションで [データ ロード エディター] を開きます。

2. the 新規セクションを作成 icon をクリックして新しいスクリプト セクションを追加します。

3. Region セクションに名前を付けます。

4. 右のメニューの [DataFiles] で、[データを選択] をクリックします。

5. Region.txt をアップロードして選択します。データ プレビュー ウィンドウが開きます。

6. すべての項目を選択し、[ファイル名] の下にある [埋め込まれた項目名] が選択されていることを確認します。このオプションが選択されていると、データをロードする際にテーブルの項目名が含まれます。

7. [追加] をクリックします。

8. [データのロード] をクリックします。

   すると、データのロードに問題が生じたことがわかる結果が出ます。これは、循環参照が発生したためです。[データのロード進行状況] ウィンドウにエラー メッセージが表示され、ロード中に循環参照が見つかったことを通知します。ロードは完了しており、アプリケーションが保存されています。

9. [データ モデル ビューア] を開きます。

   テーブル間の接続がわかりやすくなるように、テーブルをドラッグして並べ替えます。

   データ モデル ビューア 循環参照を示す

   データ モデル ビューア 循環参照を示す

   データ モデル ビューアデータ モデル ビューア 循環参照を示す ![循環参照を示すデータ モデル ビューア。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-circular-reference.png)

   赤の点線は、循環参照を示しています。データ解釈が曖昧になる可能性があるため、循環参照が生じないよう配慮が必要です。

## 循環参照の解決

循環参照が生じる原因を究明するため、[データ モデル ビューア] にあるテーブルを検証してみましょう。

上のスクリーンショットの Table1 と Table2 には、両方とも Date という項目があります。そして、Table1 および Region には、SalesKey という共通の項目があります。さらに、Table2 と Region には、Week という項目があります。これは、循環参照 (ループ) が作成されていることを意味します。このような循環参照は、後のデータ分析で問題を生じさせる可能性があるため、ここで削除しておきます。

最も簡単な解決方法は、項目名を 1 つ変更または削除することです。この例では、アプリケーションに不要なデータがロードされているため、このデータを削除します。

次の手順を実行します。

1. [データ ロード エディタ] を開きます。
2. Region セクションをクリックし、LOAD ステートメントから次の 2 行を削除します。

   `"Week",` `SalesKey`
3. "Region Code" の後のコンマも忘れず削除してください。

   スクリプトは次のようになります。
   ```
   LOAD
       Region,
       "Region Code"
   FROM [lib://DataFiles/Region.txt]
   (txt, codepage is 28591, embedded labels, delimiter is '\t', msq);
   ```
4. [データのロード] をクリックします。
5. [データ モデル ビューア] を開きます。

   Region への不適切な参照が削除されました。

   循環参照が削除されたデータ モデル ビューア

   循環参照が削除されたデータ モデル ビューア

   循環参照が削除されたデータ モデル ビューア![循環参照が削除されたデータ モデル ビューア。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-circular-reference-fixed.png)