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_truevalue_if_false 或 BLANK。

備註

  • value_if_truevalue_if_false 的資料類型不同,IF 函數可以傳回 Variant 資料類型;但若 value_if_truevalue_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 值。 因此,此公式會將每個產品分類為 LowHigh

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    "High"
)

第三個範例會使用相同的測試,但這次會為 IF 函式建立巢狀結構,以執行其他測試。 因此,此公式會將每個產品分類為 LowMediumHigh

Price Group =
IF(
    'Product'[List Price] < 500,
    "Low",
    IF(
        'Product'[List Price] < 1500,
        "Medium",
        "High"
    )
)

提示

當您需要為多個 IF 函式建立巢狀結構時,SWITCH 函數可能是較佳的選項。 此函式提供更簡潔的方法來撰寫運算式,可傳回兩個以上的可能值。

IF.EAGER 函式
SWITCH 函式 (DAX)
邏輯函式