

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在公式表達式中使用條件式函數
<a name="expression-conditional-functions"></a>

在[轉換](transforms.md)和[指標](metrics.md)中，您可以使用下列函數來檢查條件並傳回不同的結果，無論條件評估為 true 還是 false。


| 函式 | Description | 
| --- | --- | 
| `if(condition, result_if_true, result_if_false)` | `result_if_true` 如果條件評估為 true 或`result_if_false`條件評估為 ，則評估 `condition`和 傳回 `false`。<br />`condition` 必須是數字。此函數會將 `0`和空字串視為 `false`，並將其他所有項目 （包括 `NaN`) 視為 `true`。布林值轉換為 `0`(false) 和 `1`(true)。<br />您可以從此函數傳回[無常](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`；如果 小於 `temp`，則傳回 `none`（無值）`300`。<br />建議您將 UFCS 用於巢狀條件函數，其中一或多個引數是條件函數。您可以使用 `if(condition, result_if_true)` 來評估條件`elif(condition, result_if_true, result_if_false)`，以及評估其他條件。<br />例如，您可以使用 `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))`。<br />您也可以鏈結額外的中繼條件函數。例如，您可以使用 `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)`，而不是巢狀多個`if`陳述式，例如 `if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))`。 您必須`elif(condition, result_if_true, result_if_false)`搭配 UFCS 使用 。  | 