根据相关文档的介绍, PowerBI中中双向筛选的出现使得在PowerBI使用者在解决某些问题时变得简单, 比如可以不用书写复杂的度量值来实现维度到维度的筛选, 当然了在带来方便的同时也有一些不好的地方, 比如性能问题或者路径歧义问题等. 对于双向筛选器官方的建议是尽量不使用, 尤其当双向筛选的个数增多时 , 但是在某些情况下你还得必须要使用. 所以,对于双向筛选呢,我们不能一味的拒绝使用,而是充分的了解它,然后驾驭它 。
当连接日期表时,一般情况下使用单向关系连接,不推荐双向关系。如果采用双向关系,事实表中的日期也会筛选日期表中的日期,可能会导致某些与时间相关的度量值无法全部展示,我们通过一个简单的示例了解一下当使用双向关系连接日期表时会发生什么事情。

在下面的表格中,我们可以看到苹果每个月的售卖的数量及上个月售卖的数量

上个月的销量是通过时间智能函数DATEADD函数进行计算的:
qty_pm = CALCULATE([qty_sales],DATEADD('dm_td_dates'[Date], -1, MONTH))
到目前为止,我们得到了我们想要的结果,如果日期表与销售表之间的关系变为双向后,我们会得到什么结果?

其他的公式都不变,仅仅打开了日期表与销售之间的双向关系,我们得到的结果如下:

打开双向关系之后的表格少了8月份的数据,这是为什么呢?
当打开双向关系后,应用在销售表上的的任何筛选器都会传递到日期表中,苹果在8月份并没有销量产生,所以销量表中并没有8月份,那么通过双向关系筛选日期表后并不包含8月份,那么时间智能函数也不会返回8月份,最后导致缺少了8月份的数据,这显然不是我们想要看到的结果。
所以,不推荐日期表与事实表之间使用双向关系连接,如果必须使用一个双向关系,那么推荐使用CROSSFILTER在度量值中打开双向关系。
文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




