# 2つのループを1つのループにマッピング

集計ファンクションを使って2つの並列ループを1つのループにマージします。

## 始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。この例では、入力としてCustomerAddressを、出力としてCustomerCombinedAddressesを使います。これらのストラクチャーは、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Structures] (ストラクチャー) &gt; [Simple] (シンプル) &gt; [Customer] (顧客)の下にあります。

## このタスクについて

この例では、AddressとAddressDetailという2つのループを持つ入力があり、出力にある1つのAddressループに両ループのエレメントをマッピングしたいとします。

このマップは、[Other Projects] (他のプロジェクト) &gt; [Examples] (例) &gt; [Maps] (マップ) &gt; [Looping] (ルーピング) &gt; [LoopMergeTwoLoops]にあります。

## 手順

1. 入力Addressループを対応する出力ループに配置します。

   エレメントがマッピングされ、SimpleLoopファンクションが出力ルーピングエレメントに追加されます。
2. 入力Detailエレメントを対応する出力に配置します。
3. ダイアログボックスが開いたら、[Yes] (はい)をクリックします。

   ループ式とコンテキストを持つAgConcatが自動的に作成されます。マップをテストすると、Addressエレメントが反復されるたびに、入力エレメントの値がすべて出力Detailエレメントに含まれるようになります。1回だけのDetail反復の値がほしい場合は、フィルターを使う必要があります。 ![AgConcatループ式の作成。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/merge_loops_01_agconcat.png)
4. SingleIndexファンクションを、NestedContextファンクションの下にあるループ式のFilter引数に配置します。
5. LoopIndexファンクションをIndex引数に配置します。
6. 出力AddressエレメントをLooping Output Element引数に配置します。

   これによって、Addressループのインデックスに基づいてDetailエレメントが反復のたびに1つの値のみ返すことが指定されます。たとえばAddressの最初の反復であれば、出力Detailsによって、AddressDetailsの最初の反復で入力Detailsの値が返されます。 ![出力Addressエレメントの配置。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/merge_loops_02_filter.png)

## タスクの結果

エレメントがマッピングされます。サンプル入力ファイルに基づいて出力を確認する場合は、[Test Run] (テスト実行)ボタンを使います。この例では次のような出力になります。

```
<Customer>
  <Address>
    <Detail>Information about 123 Main Street</Detail>
    <Street>123 Main Street</Street>
    <City>Oakland</City>
    <State>CA</State>
  </Address>
  <Address>
    <Detail>Information about 456 Broadway Ave</Detail>
    <Street>456 Broadway Ave</Street>
    <City>Oakland</City>
    <State>CA</State>
  </Address>
  <Address>
    <Detail>Information about 67th Street</Detail>
    <Street>912 67th Street</Street>
    <City>Berkeley</City>
    <State>CA</State>
  </Address>
  <Address>
    <Detail>Information about 415 East Ave</Detail>
    <Street>415 East Ave</Street>
    <City>Oakland</City>
    <State>CA</State>
  </Address>
</Customer>
```