Power BI间接关系筛选问题:通过Manager表筛选Survey平均得分失败求助
解决方法
下面提供几种实用方案,你可以根据自己的场景选择:
方法1:修改DAX度量值(推荐,动态筛选)
如果你的工具是Power BI(或其他支持DAX的BI工具),可以通过调整度量值,让Manager的筛选上下文通过Employee表传递到Survey表。
假设你原来的平均得分度量值是:
平均得分 = AVERAGE(Survey[问题得分])
把它修改为:
平均得分 = CALCULATE( AVERAGE(Survey[问题得分]), TREATAS(VALUES(Manager[经理姓名]), Employee[经理姓名]) )
原理:TREATAS函数会把Manager表中选中的经理姓名,映射到Employee表的经理姓名字段,从而筛选出对应员工的Survey记录,再计算平均分。
或者更直白的写法:
平均得分 = CALCULATE( AVERAGE(Survey[问题得分]), FILTER( Employee, Employee[经理姓名] IN VALUES(Manager[经理姓名]) ) )
方法2:调整表关系的筛选方向
检查Employee和Manager之间的关系设置:
- 找到Employee与Manager的关系连线,打开编辑关系窗口
- 将筛选方向从默认的“单向”(比如仅从Manager到Employee)改为“双向”
这样筛选Manager时,筛选上下文会自动通过Employee传递到Survey表,无需修改度量值。
注意:双向关系可能会增加模型计算负担,如果你的数据量较大,优先考虑方法1。
方法3:在Survey表中添加计算列(静态关联)
如果数据更新频率不高,可以在Survey表中直接添加关联经理姓名的计算列:
经理姓名 = RELATED(Employee[经理姓名])
添加完成后,你就可以直接用Survey表中的这个“经理姓名”字段进行筛选,和其他字段用法一致。
内容的提问来源于stack exchange,提问作者Country girl
相关产品推荐
相关产品推荐

