DIVIDE 函式與除法運算子 (/) 的比較

身為資料模型製造者,當您在撰寫 DAX 運算式來將分子除以分母時,可以選擇使用 DIVIDE 函式或除法運算子 (/ - 正斜線)。

使用 DIVIDE 函式時,您必須傳入分子和分母運算式。 您可以選擇是否要傳入代表替代結果的值。

DIVIDE(<numerator>, <denominator> [,<alternateresult>])

DIVIDE 函式的設計目的是要自動處理除數為零的情況。 如果未傳入替代結果,且分母為零或空白,則函式會傳回空白。 若傳入替代的結果,則會傳回此值,而非空白。

DIVIDE 函式很方便,因為它會避免您的運算式必須先測試分母值。 此函式針對測試分母值的最佳化也比 IF 函式更佳。 效能增益很明顯,因為檢查除數為零的代價很昂貴。 進一步使用 DIVIDE 會產生更精簡的運算式。

範例

下列量值運算式會產生安全的除法,但它牽涉到使用四個 DAX 函式。

Profit Margin =
IF(
    OR(
        ISBLANK([Sales]),
        [Sales] == 0
    ),
    BLANK(),
    [Profit] / [Sales]
)

此量值運算式可達到相同的結果,但效率更高且更簡潔。

Profit Margin =
DIVIDE([Profit], [Sales])

建議

建議您在分母為可能傳回零或空白的運算式時,使用 DIVIDE 函式。

在分母為常數值的情況下,建議您使用除法運算子。 在此情況下,除法保證會成功,而且因為它可避免無謂的的測試,所以運算式的執行效率會更好。

請仔細考慮 DIVIDE 函式是否應該傳回替代值。 針對量值,傳回空白通常是較佳的設計。 傳回空白的較佳原因是因為當摘要為空白時,報表視覺效果預設會排除群組。 視覺效果可以專注於存有資料的群組。 如有必要,您可以在 Power BI 中藉由啟用 [顯示沒有資料的項目] 選項,將視覺效果設定為顯示篩選內容中的所有群組 (傳回值或空白)。