IF
檢查條件,並在其為 TRUE 時傳回一個值,否則傳回第二個值。
語法
IF(<logical_test>, <value_if_true>[, <value_if_false>])
參數
詞彙 | 定義 |
---|---|
logical_test | 可評估為 TRUE 或 FALSE 的任何值或運算式。 |
value_if_true | 邏輯測試結果為 TRUE 時所傳回的值。 |
value_if_false | (選擇性) 邏輯測試結果為 FALSE 時所傳回的值。 如果省略,則會傳回 BLANK。 |
傳回值
value_if_true、value_if_false 或 BLANK。
備註
若 value_if_true 與 value_if_false 的資料類型不同,IF 函數可以傳回 Variant 資料類型;但若 value_if_true 與 value_if_false 都是數值資料類型,則此函數會嘗試傳回單精確度資料類型。 在後者的情況下,IF 函數將會隱含地轉換資料類型,以容納這兩個值。
例如,公式
IF(<condition>, TRUE(), 0)
會傳回 TRUE 或 0,但即使 value_if_false 是整數資料類型,公式IF(<condition>, 1.0, 0)
還是只會傳回十進位值。 若要深入了解隱含資料類型轉換,請參閱資料類型。若要執行分支運算式,而不論條件運算式為何,請改用 IF.EAGER。
範例
下列產品資料表的計算結果欄定義會以不同方式使用 IF 函式,以根據每個產品的標價來分類。
第一個範例會測試 [標價] 資料行值是否小於 500。 當此條件為 true 時,會傳回 Low 值。 因為沒有 value_if_false 值,所以會傳回 BLANK。
本文中的範例可搭配範例 Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAX 範例模型。
Price Group =
IF(
'Product'[List Price] < 500,
"Low"
)
第二個範例使用相同的測試,但這次包含 value_if_false 值。 因此,此公式會將每個產品分類為 Low 或 High。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
"High"
)
第三個範例會使用相同的測試,但這次會為 IF 函式建立巢狀結構,以執行其他測試。 因此,此公式會將每個產品分類為 Low、Medium 或 High。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
IF(
'Product'[List Price] < 1500,
"Medium",
"High"
)
)
提示
當您需要為多個 IF 函式建立巢狀結構時,SWITCH 函數可能是較佳的選項。 此函式提供更簡潔的方法來撰寫運算式,可傳回兩個以上的可能值。