# 複数の条件に基づいて値を定義

ネスト化されたIfThenElseファンクションをAnd、Equal、Greater、Lesserというファンクションと共に使い、いくつかの条件に基づいてエレメントの値を定義します。

## 始める前に

入力ストラクチャーと出力ストラクチャーを持つマップを作成済みであること。次のサンプルを使用できます。

## このタスクについて

この例では、アイテムIDと在庫アイテム数のリストが含まれているJSONファイルがあります。アイテムIDと在庫アイテム数に関連するステータス(0であればout of stock、1～99であればlow stock、100以上であればin stock)をCSVに出力したいとします。入力には次のJSONを使います:

```
{
    "items": [
        {
            "id" : 654981,
            "stock": 43
        },
        {
            "id" : 698624,
            "stock": 295
        },
        {
            "id" : 149875,
            "stock": 0
        },
        {
            "id" : 698763,
            "stock": 100
        },
        {
            "id" : 856231,
            "stock": 15
        },
        {
            "id" : 789354,
            "stock": 457
        }
    ]
}
```

次のCSVサンプルを使えば、出力ストラクチャーを作成できます:

```
itemId,stockStatus
```

## 手順

1. 入力idエレメントを出力itemIdに配置します。
2. stockStatusエレメントをクリックし、IfThenElseファンクションを[Value] (値)タブに配置します。
3. EqualファンクションをCondition引数に配置し、入力stockエレメントをFirst Value引数に配置します。
4. ConstantファンクションをSecond Value引数に配置した後にダブルクリックし、[Value] (値)フィールドに0と入力し、 [Data Type] (データ型)フィールドでInteger (32)を選択してOKをクリックします。
5. ConstantファンクションをThen引数に追加し、その[Value] (値)フィールドにout of stockと入力します。

   ![Constantファンクションの値。](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/define_value_multiple_conditions_01_first_ifthenelse.png)
6. 別のIfThenElseファンクションをElse引数に追加します。

   これにより、さまざまな値を持つ別の条件を定義できます。
7. AndファンクションをCondition引数に追加した後、GreaterファンクションとLesserファンクションをAndファンクションに追加します。
8. 入力stockエレメントを、GreaterファンクションとLesserファンクションのFirst Value引数に配置します。
9. Constantファンクションを、GreaterファンクションとLesserファンクションのSecond Value引数に追加します。
   1. Greaterの下にあるConstantファンクションの場合は、[Value] (値)フィールドに0と入力します。
   2. Lesserの下にあるConstantファンクションの場合は、[Value] (値)フィールドに100と入力します。
10. ConstantファンクションをThen引数に追加し、その[Value] (値)フィールドにlow stockと入力します。
11. ConstantファンクションをElse引数に追加し、その[Value] (値)フィールドにin stockと入力します。

## タスクの結果

マップが設定され、次のようになります: ![マップ結果。](https://help.qlik.com/talend/ja-JP/data-mapper-functions-reference-guide/Resources/images/define_value_multiple_conditions_02_second_ifthenelse.png)

[Test Run] (テスト実行)機能を使えば結果を表示できます。この例では次のような出力が返されます。

```
itemId,stockStatus
654981,low stock
698624,in stock
149875,out of stock
698763,in stock
856231,low stock
789354,in stock
```