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 中藉由啟用 [顯示沒有資料的項目] 選項,將視覺效果設定為顯示篩選內容中的所有群組 (傳回值或空白)。
相關內容
- 學習路徑:在 Power BI Desktop 中使用 DAX
- 有任何問題嗎? 嘗試在 Power BI 社群提問
- 有任何建議嗎? 貢獻想法來改善 Power BI