共用方式為


避免將 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使用比必要更多的記憶體。

此外,太多群組通常會造成報表使用者負擔過重。

讓我們看看當 利潤率 量值新增到表格視覺化時,以客戶分組會發生什麼情況。

Power B I Desktop 的螢幕快照,顯示每個客戶對應一列的數據表視覺效果。銷售值為 BLANK,利潤率為零百分比。

資料表視覺效果會顯示大量的資料列。 (實際上模型中有18,484個客戶,因此數據表會嘗試顯示所有客戶。請注意,檢視中的客戶尚未達成任何銷售。 然而,由於 利潤率 量度一律會傳回值,因此它們會顯示。

注意

當視覺效果中顯示太多數據點時,Power BI 可能會使用數據縮減策略來移除或摘要大型查詢結果。 如需詳細資訊,請參閱 依視覺效果類型的數據點限制和策略。

讓我們看看當改進 利潤率 量值定義時會發生什麼事。 只有當 銷售 的量值不是 BLANK 或零時,它才會傳回值。

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

數據表視覺效果現在只會顯示目前篩選內容中已銷售的客戶。 改進的量值可為您的報表使用者提供更有效率且實用的體驗。

Power BI Desktop 的螢幕快照,其中顯示已篩選內容之數據的數據表視覺效果。

提示

必要時,您可以設定視覺效果,藉由啟用 [顯示沒有數據的項目] 選項,在篩選條件中顯示所有分組(傳回值或 BLANK)。

建議

當無法返回有意義的值時,建議返回 BLANK。

此設計方法很有效率,可讓Power BI更快速地轉譯報表。 此外,傳回 BLANK 比較好,因為報表視覺效果預設會在摘要 BLANK時排除群組。