避免將 BLANK 轉換成值
身為數據建模師,當您撰寫量值表達式時,可能會遇到無法傳回有意義值的情況。 在這些情況下,您可能會想要改為傳回一個值,例如,零。 建議您仔細判斷此設計是否有效且實用。
請考慮下列明確將 BLANK 結果轉換成零的量值定義。
Sales (No Blank) =
IF(
ISBLANK([Sales]),
0,
[Sales]
)
請考慮另一個也將 BLANK 結果轉換為零的度量定義。
Profit Margin =
DIVIDE([Profit], [Sales], 0)
DIVIDE 函式會將 Profit 量值除以 Sales 量值。 如果結果為零或 BLANK,則會傳回第三個自變數—替代結果(這是選擇性的)。 在此範例中,因為零會當做替代結果傳遞,所以保證量值一律會傳回值。
這些量值設計效率不佳,並導致報表設計不佳。
當報表視覺效果被新增時,Power BI 會嘗試擷取篩選的內容中的所有群組。 大型查詢結果的評估和擷取通常會導致報表轉譯變慢。 每個範例量值都會有效地將疏鬆計算轉換成密集計算,迫使Power BI使用比必要更多的記憶體。
此外,太多群組通常會造成報表使用者負擔過重。
讓我們看看當 利潤率 量值新增到表格視覺化時,以客戶分組會發生什麼情況。
資料表視覺效果會顯示大量的資料列。 (實際上模型中有18,484個客戶,因此數據表會嘗試顯示所有客戶。請注意,檢視中的客戶尚未達成任何銷售。 然而,由於 利潤率 量度一律會傳回值,因此它們會顯示。
注意
當視覺效果中顯示太多數據點時,Power BI 可能會使用數據縮減策略來移除或摘要大型查詢結果。 如需詳細資訊,請參閱 依視覺效果類型的數據點限制和策略。
讓我們看看當改進 利潤率 量值定義時會發生什麼事。 只有當 銷售 的量值不是 BLANK 或零時,它才會傳回值。
Profit Margin =
DIVIDE([Profit], [Sales])
數據表視覺效果現在只會顯示目前篩選內容中已銷售的客戶。 改進的量值可為您的報表使用者提供更有效率且實用的體驗。
提示
必要時,您可以設定視覺效果,藉由啟用 [顯示沒有數據的項目] 選項,在篩選條件中顯示所有分組(傳回值或 BLANK)。
建議
當無法返回有意義的值時,建議返回 BLANK。
此設計方法很有效率,可讓Power BI更快速地轉譯報表。 此外,傳回 BLANK 比較好,因為報表視覺效果預設會在摘要 BLANK時排除群組。
相關內容
- 學習路徑:在Power BI Desktop 中使用 DAX
- 有疑問? 嘗試詢問 Power BI 社群
- 有任何建議嗎? 貢獻想法以改善 Power BI