IF
檢查條件,and 在 value時傳回一個 TRUE
,否則會傳回 secondvalue。
語法
IF(<logical_test>, <value_if_true>[, <value_if_false>])
參數
術語 | 定義 |
---|---|
logical_test |
任何可評估為 valueorTRUE 的 orFALSE 表示式。 |
value_if_true |
邏輯測試 value 傳回的 ifTRUE 。 |
value_if_false |
(選擇性)邏輯測試 value 傳回的 ifFALSE 。
If 省略,則會傳回 BLANK。 |
傳回 value
value_if_true
、value_if_false
orBLANK
。
言論
IF 函式可以傳回變數數據類型 if
value_if_true
andvalue_if_false
屬於不同的數據類型,但函式會嘗試傳回單一數據類型,if 兩個value_if_true
andvalue_if_false
都是數值數據類型。 在後者的情況下,IF 函式會隱含 convert 數據類型,以容納這兩個 values。例如,公式
IF(<condition>, TRUE(), 0)
會傳回TRUE
or 0,但公式IF(<condition>, 1.0, 0)
只傳回十進位 valueseven,不過value_if_false
是整數數據類型。 若要深入瞭解隱含資料類型轉換,請參閱 資料類型。若要執行不論條件表達式為何的分支表達式,請改用 IF.EAGER。
例子
下列 Product 數據表匯出數據行定義會以不同的方式使用 IF 函式,根據其清單 product來分類每個 price。
first 範例會測試 清單 Price 數據行 value 是否小於 500。 當此條件 true時,會傳回 valueLow。 因為沒有 value_if_false
value,因此會傳回 BLANK。
本文中的範例可以搭配 sample Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAXsample 模型。
Price Group =
IF(
'Product'[List Price] < 500,
"Low"
)
second 範例使用相同的測試,但此 time 包含 value_if_false
value。 因此,公式會將每個 product 分類為 Low
orHigh
。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
"High"
)
第三個範例使用相同的測試,但此 time 巢狀 IF 函式來執行額外的測試。 因此,公式會將每個 product 分類為 Low
、Medium
、orHigh
。
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
IF(
'Product'[List Price] < 1500,
"Medium",
"High"
)
)
提示
當您需要巢狀多個 IF 函式時,SWITCH 函式可能是較佳的選項。 此函式提供更簡潔的方式,可撰寫傳回兩個以上可能 values的表達式。