# ループを非ループエレメントにマッピング

ループから非ループエレメントに値を集計します。

## 始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。この例では、[ネスト化されたループをマッピング](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/8.0/mapping-nested-loops)のマッピングと同じマップを使っています。

## このタスクについて

この例では、各Itemsループにある出力PartNumエレメントの数を返すよう出力TotalItemsエレメントを、そして出力Numエレメントの数を返すよう出力TotalNoticesエレメントをそれぞれ設定したいとします。

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

## 手順

1. オプション: 前の例で作成したマップを使用している場合は、入力PartNumberエレメントを出力PartNumにドラッグします。

   マップは次のようになります。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/aggregate_loop_01_map.png)
2. AgCountファンクションをドラッグして出力TotalItemsエレメントにドロップします。
3. 出力PartNumをAgCountにドラッグします。

   集約のコンテキストを提供するためにはループ式が必要です。この場合はLoopCopyファンクションが自動的に追加され、このエレメントがPartNumエレメントと同じルーピングを使用する必要があることが示されます。 ![](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/aggregate_loop_02_loopcopy.png)
4. AgCountファンクションをドラッグして出力TotalNoticesエレメントにドロップします。
5. 出力NumをAgCountにドラッグします。

   LoopCopyファンクションが自動的に追加されます。

## タスクの結果

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

```
<Notices>
  <Notice>
    <Num>1</Num>
    <Name>Francis Upton</Name>
    <Items>
      <PartNum>1A45</PartNum>
    </Items>
    <Items>
      <PartNum>2</PartNum>
    </Items>
    <TotalItems>2</TotalItems>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Francis Upton</Name>
    <Items>
      <PartNum>5TTT9</PartNum>
    </Items>
    <Items>
      <PartNum>123</PartNum>
    </Items>
    <TotalItems>2</TotalItems>
  </Notice>
  <Notice>
    <Num>2</Num>
    <Name>Martha Lyman</Name>
    <Items>
      <PartNum>K4223</PartNum>
    </Items>
    <Items>
      <PartNum>K4552</PartNum>
    </Items>
    <TotalItems>2</TotalItems>
  </Notice>
  <TotalNotices>3</TotalNotices>
</Notices>
```