PowerBI CrossFilter解决关联关系过滤传播问题
假设我们有ABC三张表:
它们的关联关系:表A ←(a_id)→ 表B ←(c_id)→ 表C
我们在PBI上放入一个表格
分别拖入A[dec]和C[bill]
得到结果如下:
我们会发现,所有项目的bill合计全是580。
这显然是不正确的,这是很常见的关系过滤方向问题,PBI默认关系是单向过滤(从"一"端到"多"端,表A的筛选上下文无法正确传递到表C。
方法一:
打开关系管理,把ABC的关系,从Cross-filter direction的single改成Both。(这里用英文,更能理解第二种方法)
问题解决:
方法二,度量值里使用CROSSFILTER进行动态设置
Sum_bill = CALCULATE(SUM(C[bill]),CROSSFILTER(B[a_id], A[a_id], Both),CROSSFILTER(B[c_id], C[c_id], Both)
)
这里和方法一里设置方向是一样的效果