共用方式為


IF

適用於:匯出數據行計算數據表量值視覺計算

檢查條件,並在 TRUE時傳回一個值,否則會傳回第二個值。

語法

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

參數

術語 定義
logical_test 任何可評估為 TRUEFALSE的值或表達式。
value_if_true 如果邏輯測試 TRUE,則傳回的值。
value_if_false (選擇性)如果邏輯測試 FALSE,則傳回的值。 如果省略,則會傳回 BLANK。

傳回值

value_if_truevalue_if_falseBLANK

言論

  • 如果 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

例子

下列 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 值。 因此,公式會將每個產品分類為 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邏輯函式