檢查條件,並在 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。
言論
如果 IF 和
value_if_true屬於不同的數據類型,則value_if_false函式可以傳回 variant 數據類型,但如果value_if_true和value_if_false都是數值數據類型,則函式會嘗試傳回單一數據類型。 在後者的情況下,IF 函式會隱含地轉換數據類型以容納這兩個值。例如,
IF(<condition>, TRUE(), 0)公式會傳回TRUE或 0,但是即使IF(<condition>, 1.0, 0)是整數數據類型,公式value_if_false只傳回十進位值。 若要深入瞭解隱含資料類型轉換,請參閱 資料類型。若要執行不論條件表達式為何的分支表達式,請改用 IF.EAGER。
例子
下列 Product 數據表匯出數據行定義會以不同的方式使用 IF 函式,根據其清單價格來分類每個產品。
第一個範例會測試 List Price 數據行值是否小於 500。 當此條件為 true 時,會傳回低 的值 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 函式可能是較佳的選項。 此函式提供更簡潔的方式,以撰寫傳回兩個以上可能值的表達式。