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。
例子
下列 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 函式可能是較佳的選項。 此函式提供更簡潔的方式,以撰寫傳回兩個以上可能值的表達式。