跨表度量值筛选异常求助:如何按Fieldname同步过滤双度量值?
解决跨表度量值筛选异常的问题
你遇到的核心问题是筛选上下文没有在两个表之间正确传递——当筛选Fieldname=2时,Harvest Yields表的度量值正确响应了筛选,但Projected Yields表的度量值没接收到这个筛选条件,所以计算了所有记录的总和。下面是具体的解决方法:
第一步:优先建立表间关联关系
这是最基础也最推荐的方案:
- 打开数据模型(比如Power BI的「数据」视图),找到
Projected Yields和Harvest Yields表,将两个表的Fieldname字段拖拽到一起,建立关联关系。 - 调整关系的筛选方向:如果你的筛选通常从
Fieldname维度触发,可设置为「双向筛选」,或者让筛选从Harvest Yields指向Projected Yields(根据你的数据业务逻辑调整)。
建立关系后,你的Sum of Projected Yields度量值(比如SUM('Projected Yields'[预计产量]))会自动继承Fieldname的筛选,筛选Fieldname=2时就只会计算对应的值了。
第二步:无法建关系时,用DAX手动传递筛选
如果因为数据类型不匹配、表结构特殊等原因没法建立关系,可以修改Sum of Projected Yields的度量值,用TREATAS函数把Harvest Yields的筛选上下文传递过去:
Sum of Projected Yields = CALCULATE( SUM('Projected Yields'[预计产量]), TREATAS(VALUES('Harvest Yields'[Fieldname]), 'Projected Yields'[Fieldname]) )
这个函数的作用是:把当前选中的Harvest Yields表的Fieldname值,映射到Projected Yields表的Fieldname字段上,强制让度量值只计算匹配的记录。
验证差值度量值
最后,你的差值度量值可以直接写:
Yield Difference = [Sum of Harvested Yields] - [Sum of Projected Yields]
现在当你筛选Fieldname=2时,Sum of Projected Yields会显示2.99,差值就是3.43-2.99=0.44,完全符合预期。
内容的提问来源于stack exchange,提问作者Pooja
相关产品推荐
相关产品推荐

