Power BI:不受筛选影响实现两列相乘的需求及问题
解决Power BI中两列对应行直接相乘的问题
方案1:创建计算列(固定行级计算)
如果你的表中每行都是独立记录(比如对应单个日期组),直接新建计算列即可,公式如下:
Expected Claims = 'Expected Claims'[ExpectedClaimsPerDay] * 'Expected Claims'[Number of Working Days]
这个计算列是逐行执行计算的,无论后续添加什么筛选器,每行结果都是对应行的两个值直接相乘,不会出现聚合错误。
方案2:创建度量值(适配动态筛选)
如果需要配合切片器、筛选器的动态变化使用,就用SUMX迭代函数——它会在当前筛选上下文里逐行计算乘积,再根据可视化维度输出结果:
Expected Claims = SUMX( 'Expected Claims', 'Expected Claims'[ExpectedClaimsPerDay] * 'Expected Claims'[Number of Working Days] )
比如用表格可视化时,每行对应原表一条记录,SUMX会自动显示每行的乘积;如果按维度分组(比如按月份),它会把分组内所有行的乘积加总,完全匹配筛选后的逻辑。
为什么之前的方法失效?
- 使用
SUM(Number of Working Days)时,DAX会先对筛选后的所有天数求和,再和被隐式聚合的ExpectedClaimsPerDay(比如取第一行值或求和)相乘,结果必然错误。 - 用
DISTINCT的话,当筛选多个日期组时,它只能返回唯一的天数,直接破坏多行数据的展示结构,导致可视化异常。
内容的提问来源于stack exchange,提问作者Jeevan
相关产品推荐
相关产品推荐

