IF

適用於:導出數據行計算數據表Measure視覺計算

檢查條件,and 在 TRUE時傳回一個 value,否則會傳回 secondvalue。

語法

DAX
IF(<logical_test>, <value_if_true>[, <value_if_false>])

參數

術語 定義
logical_test 任何可評估為 TRUEorFALSE的 valueor 表示式。
value_if_true 邏輯測試 if 傳回的 valueTRUE
value_if_false (選擇性)邏輯測試 if 傳回的 valueFALSE。 If 省略,則會傳回 BLANK。

傳回 value

value_if_truevalue_if_falseorBLANK

言論

  • IF 函式可以傳回變數數據類型 ifvalue_if_trueandvalue_if_false 屬於不同的數據類型,但函式會嘗試傳回單一數據類型,if 兩個 value_if_trueandvalue_if_false 都是數值數據類型。 在後者的情況下,IF 函式會隱含 convert 數據類型,以容納這兩個 values。

    例如,公式 IF(<condition>, TRUE(), 0) 會傳回 TRUEor 0,但公式 IF(<condition>, 1.0, 0) 只傳回十進位 valueseven,不過 value_if_false 是整數數據類型。 若要深入瞭解隱含資料類型轉換,請參閱 資料類型

  • 若要執行不論條件表達式為何的分支表達式,請改用 IF.EAGER

例子

下列 Product 數據表匯出數據行定義會以不同的方式使用 IF 函式,根據其清單 price來分類每個 product。

first 範例會測試 清單 Price 數據行 value 是否小於 500。 當此條件 true時,會傳回 valueLow。 因為沒有 value_if_falsevalue,因此會傳回 BLANK。

本文中的範例可以搭配 sample Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAXsample 模型

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

second 範例使用相同的測試,但此 time 包含 value_if_falsevalue。 因此,公式會將每個 product 分類為 LoworHigh

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

第三個範例使用相同的測試,但此 time 巢狀 IF 函式來執行額外的測試。 因此,公式會將每個 product 分類為 LowMedium、orHigh

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

提示

當您需要巢狀多個 IF 函式時,SWITCH 函式可能是較佳的選項。 此函式提供更簡潔的方式,可撰寫傳回兩個以上可能 values的表達式。

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