表格式模型中的雙向交叉篩選

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

表格式模型中的雙向交叉篩選不需要手動製作 DAX 因應措施,以跨數據表關聯性傳播篩選內容。

將概念拆解為組成部分: 交叉過濾 是指根據相關資料表中的值在資料表上設定篩選上下文,雙 過濾則是將篩選條件轉移到資料表關係另一端的第二個相關資料表。 顧名思義,您可以雙向配量關聯性,而不只是單向配量。 在內部,雙向篩選會展開篩選內容,以查詢數據的超集。

編輯關係對話框的截圖,裡面的篩選方向區段被標出。

交叉篩選有兩種類型:單向和雙向篩選。 單向是該關聯性中事實和維度數據表之間的傳統多對一篩選方向。 雙向是一種交叉篩選,可讓一個關聯性的篩選內容做為另一個數據表關聯性的篩選內容,而兩個關聯性通用的一個數據表。

鑑於 DimDateDimProduct 具有外部金鑰關聯到 FactOnlineSales,雙向交叉篩選相當於同時使用 FactOnlineSales-to-DimDate 加上 FactOnlineSales-to-DimProduct

雙向交叉篩選條件可輕易修正過去對表格式和 Power Pivot 開發人員所遇到的多對多查詢設計問題。 如果您已針對表格式或 Power Pivot 模型中的多對多關聯性使用 DAX 因應措施,您可以嘗試套用雙向篩選,以查看其是否會產生預期的結果。

建立雙向交叉篩選時,請記住下列幾點:

  • 在啟用雙向篩選之前,請先思考。

    如果您在任何地方啟用雙向篩選,您的數據可能會以您不預期的方式過度篩選。 您也可以藉由建立多個潛在的查詢路徑,不小心引入模棱兩可。 若要避免這兩個問題,請規劃使用單向和雙向篩選的組合。

  • 進行累加測試,以確認每個篩選變更對您的模型的影響。Visual Studio 中的 [在 Excel 中進行分析] 功能適用於累加測試。 最佳做法是定期追蹤使用其他報告客戶端的測試,以便稍後不會有任何意外。

注意

Visual Studio 中的表格式模型設計工具包含預設,可判斷是否自動嘗試雙向交叉篩選。 如果您默認啟用雙向篩選,只有當模型透過數據表關聯性鏈結清楚表達一個查詢路徑時,才會啟用雙向篩選。

設定預設值

單向篩選是預設值。 您可以變更設計工具中建立之所有新項目的預設值,或在專案已經存在時變更模型本身的預設值。

在專案層級,當您建立專案時會評估設定,因此,如果您將預設值變更為雙向,當您建立下一個專案時,就會看到選取範圍的效果。

  1. 在 Visual Studio 中,選擇 工具>選項>分析服務 表格設計器>新增專案設定

  2. 預設濾波器方向 設為 單向雙向

或者,您可以變更模型上的預設值。

  1. 在解決方案探索器中,選擇 Model.bim>屬性

  2. 預設濾波器方向 設為 單向雙向

請記住

瞭解雙向交叉篩選的時機和方式,是試用和錯誤的問題,以瞭解它在案例中的運作方式。 有時候,您會發現內建行為不足,而且需要回復 DAX 計算,才能完成工作。 在 「參見」 部分,你會找到多個相關資源連結。

實際上,交叉篩選可以啟用通常只透過多對多建構傳遞的數據探索形式。 話雖如此,請務必認識到雙向交叉篩選不是多對多建構。 此版本中表格式模型的設計工具不支援實際的多對多數據表組態。

另請參閱

在 Power BI Desktop 中建立和管理關係
一個實際範例,說明如何在 Power Pivot 和表格模型中處理簡單的多對多關係
利用 DAX 交叉表過濾解決多對多關係
多對多革命(SQLBI 部落格)