DAX:Filter函数会受到双向过滤的影响

今天遇到一个问题,下面两个DAX的结果有很大的差异:

CSAT1 = CALCULATE([CPE CSAT],'dimcommonfilter'[Offboarding] = "No")
CSAT2 = CALCULATE([CPE CSAT ],FILTER('dimcommonfilter','dimcommonfilter'[ffboarding] = "No"))

经过排查,发现这是隐藏非常深的bug:FILTER过滤函数生成的结果,会受到双向过滤关系的影响。

如果dimcommonfilter存在多个双向过滤关系,这些过滤关系会对FILTER的结果产生影响,就是CSAT2会受到双向过滤关系的影响,但是CSAT1则不会,CSAT1会受到当前过滤器上下文的影响。

 

除此之外,CSAT1会覆盖 'dimcommonfilter'[Offboarding]的过滤条件,报表页面上设置的 'dimcommonfilter'[Offboarding]过滤器,不会影响CSAT1的值。

但是FILTER会受到'dimcommonfilter'[Offboarding]的上下文过滤器的影响。

 

posted @ 2026-09-01 21:43  悦光阴  阅读(7)  评论(0)    收藏  举报