表格模型中的双向交叉筛选器

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

表格模型中的双向交叉筛选器无需使用手工制作的 DAX 解决方法来跨表关系传播筛选器上下文。

让我们分解这一概念的各个组成部分:“交叉筛选”是指能够基于相关表中的值对表设置筛选器上下文,“双向”是指将筛选器上下文传输到位于表关系另一端的另一个相关表。 顾名思义,你可以朝关系的两个方向而不只是一个方向切片。 在内部,双向筛选可以扩展筛选器上下文以查询数据的超集。

编辑关系拨号”框的屏幕截图,其中已调出“筛选方向”部分。

有两种类型的交叉筛选器:单向筛选和双向筛选。 单向筛选是在该关系中的事实表与维度表之间进行传统的多对一筛选。 双向是一个交叉筛选器,它允许将一个关系的筛选器上下文用作另一个表关系的筛选器上下文,其中一个表对两个关系通用。

在指定 DimDateDimProduct 的情况下,如果外键关系为 FactOnlineSales,则双向交叉筛选器等效于同时使用 FactOnlineSales-to-DimDateFactOnlineSales-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 博客)