

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 数式で条件関数を使用する
<a name="expression-conditional-functions"></a>

[変換](transforms.md)と[メトリクス](metrics.md)では、次の関数を使用して条件をチェックし、その条件が true と評価されるか false と評価されるかで異なる結果を返すことができます。


| 関数 | 説明 | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  `condition` を評価し、条件の評価結果が true の場合に `result_if_true`、`false` の場合には `result_if_false` を返します。 `condition`は数字でなければなりません。この関数は、`0` および空の文字列を `false` と見なし、それ以外 (`NaN` を含む) の場合を `true` と見なします。ブール値は、`0` (false) 、`1` (true) に変換されます。 この関数から[[none]](expression-constants.md#none-definition) (無し) 定数を返すことで、特定の条件の出力を破棄することができます。つまり、条件を満たさないデータポイントをフィルタリングすることができるのです。詳細については、「[データポイントをフィルタリングする](expression-tutorials.md#filter-data)」を参照してください。 

**Example 例**  
+ `if(0, x, y)` は変数 `y` を返す。
+ `if(5, x, y)` は変数 `x` を返す。
+ `if(gt(temp, 300), x, y)` は、変数 `x` が `temp` よりも大きい場合、変数 `300` を返す。
+ `if(gt(temp, 300), temp, none)` が `temp` 以上なら変数 `300` を、`none` が `temp` より小さいなら (`300`値なし) を返す。 1つ以上の引数が条件付き関数である入れ子関数には、UFCS を使用することをお勧めします。`if(condition, result_if_true)` で条件を評価し、`elif(condition, result_if_true, result_if_false)` で追加の条件を評価することができます。 例えば、`if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)` の代わりに `if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))` を使用することができます。 また、追加の中間条件関数を連結することもできます。たとえば、`if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))` のように複数の `if` ステートメントをネストするのではなく `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` を使用することができます。  UFCS で `elif(condition, result_if_true, result_if_false)` を使用する必要があります。   | 