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

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

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

此概念可分解成以下元件組件:「交叉篩選」是指根據相關資料表中的值設定資料表篩選內容的功能,而「雙向」是指將篩選內容傳遞至資料表關聯性另一端的第二個相關資料表。 正如其名,您有兩種方向可以切入關聯性,而不是只有一種方向。 就內部而言,雙向篩選會展開篩選內容來查詢資料的超集。

[編輯關聯性撥號] 方塊的螢幕擷取畫面,其中已標示 [篩選方向] 區段。

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

假設 DimDateDimProductFactOnlineSales有外部索引鍵關聯性,則雙向篩選等同於同時使用 FactOnlineSales-to-DimDate 加上 FactOnlineSales-to-DimProduct

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

建立雙向交叉篩選時,請謹記下列事項:

  • 啟用雙向篩選前請慎重考慮。

    如果您在所有位置啟用雙向篩選,您的資料可能會過度篩選而以您未預期的方式運作。 您可能會因為建立超過一種的可能查詢路徑而造成不定性。 若要避免這兩個問題,請規劃使用單向和雙向篩選的組合。

  • 執行累加測試,以確認每個篩選變更對模型的影響。Visual Studio 中的 [在 Excel 中進行分析] 功能適用于累加測試。 最佳做法是,定期使用其他報表用戶端來追蹤測試,以確保不會有意外狀況。

注意

Visual Studio 中的表格式模型設計工具組含預設值,決定是否自動嘗試雙向交叉篩選。 如果您預設啟用雙向篩選,只有在模型透過資料表關聯性鏈結清楚表達一個查詢路徑時,才會啟用雙向篩選。

設定預設值

預設值為單向篩選。 您可以針對設計工具中建立的新專案變更所有預設值,或專案已存在則針對模型本身來變更。

在專案的層級,建立專案時會評估設定,因此若您將預設值變更為雙向,建立下一個專案時便會看到您選取的設定生效。

  1. 在 Visual Studio 中,選取[工具>選項>Analysis Services 表格式設計工具] [>新增專案設定]。

  2. 將 [預設篩選方向] 設為 [單向] 或 [雙向]

同樣地,您也可以變更模型上的預設值。

  1. 在 [方案總管] 中,選取[Model.bim>屬性]

  2. 將 [預設篩選方向] 設為 [單向] 或 [雙向]

請記住

了解雙向交叉篩選可以當作試誤學習的時機與方法,以明白它在您的案例中會如何運作。 有時候,您會發現內建行為不夠,而且需要回復 DAX 計算,才能完成作業。 在 [ 另請參閱] 區段中,您會在此主題中找到其他資源的數個連結。

實際上來說,交叉篩選能夠啟用通常只有透過多對多建構才能提供的資料瀏覽格式。 話雖如此,請務必瞭解雙向交叉篩選不是多對多建構。 此版本的表格式模型設計仍不支援實際的多對多資料表設定。

另請參閱

在 Power BI Desktop 中建立及管理關聯性 (機器翻譯)
如何在 Power Pivot 和表格式模型中處理簡單多對多關聯性的實用範例
利用 DAX 交叉資料表篩選解決多對多關聯性
多對多關聯性 (SQLBI 部落格)