通过矩阵中的多个维度表过滤事实表(Power BI / Power Pivot)

时间:2020-11-06 19:00:35

标签: filter powerbi relationship dax powerpivot

关于Power BI(DAX)中的过滤器上下文,我有一个非常基本的问题。

数据模型由3个表组成:

  • Dimension1“住户租户”(其字段为:1.- ID租户[主键] ; 2.-租户名称; 3.-学年)

  • Dimension2“住所位置”(其字段为:1.- ID住所[主键] ; 2.-住所名称; 3.-住所床)

  • 事实1“数据租赁合同”(其字段为:1.- ID租户[Foreign Key] ; 2.- ID居住地[Foreign Key] ; 3.-租赁租金(以€为单位)

设置3个表(事实表中的外键与维表中的主键)之间的关系(一对多)后,我构建了一个矩阵,该矩阵由以下字段组成,混合了来自2维表的过滤器:

作为行(过滤器上下文):

  • 住所名称(Dim2)

  • 租户名称(Dim1)

作为数据衡量指标:租赁租金总和

我的问题:

  1. 当我使用2个不同的Dim表中的字段(彼此之间不相关)时,过滤器是否可以正常工作?两者与事实表的关系是正确的(都是“一对多”和“下游”关系),但是我不确定在混合这两个维度字段时矩阵中的过滤器流是否正确。

  2. 如果无法正常运行,也许解决方案是使用CrossFilter函数,以便过滤器流从事实表向另一维度表的上游流动?在那种情况下,这三个表可以正确连接?

预先感谢

1 个答案:

答案 0 :(得分:0)

第一个问题的答案是肯定的,过滤器将正常工作。过滤器上下文由dim1和dim2中的过滤器组成。它会根据您的情况自动传播。

过滤器上下文会自动从关系的一侧传播到多面,而不会从多面传播到一侧。

对于第二个问题,在关系的一侧(在维表中)定义测量时,将使用交叉过滤器或双向过滤器,在这种情况下,过滤器不会自动传播,因此因为您需要使用交叉滤波器或双向滤波器。

访问:https://www.sqlbi.com/articles/row-context-and-filter-context-in-dax/