Power BI度量值求和异常:收入为空取预算值时总合计计算错误求助
Power BI 度量值求和错误解决方案
错误原因
你当前的度量值在合计行(无单个财年筛选的上下文下)直接对预算表求和,没有按「逐时间段判断、空值用预算填充」的规则迭代计算,导致只统计了预算部分的2,漏掉了实际收入的6,总合计显示为6而非预期的8。
正确度量值代码
Adjusted Revenue = VAR TotalRevenue = SUM(Paysuite[NET_REVENUE]) VAR TotalBudget = SUM(Budget[Bgt Revenue]) -- 明细行逻辑:单月份上下文直接返回结果 VAR DetailResult = IF(ISBLANK(TotalRevenue), TotalBudget, TotalRevenue) -- 合计行逻辑:迭代所有月份逐行计算后汇总 VAR TotalResult = SUMX( VALUES('Date'[Fiscal Month]), VAR Month_Revenue = CALCULATE(SUM(Paysuite[NET_REVENUE])) VAR Month_Budget = CALCULATE(SUM(Budget[Bgt Revenue])) RETURN IF(ISBLANK(Month_Revenue), Month_Budget, Month_Revenue) ) RETURN IF( HASONEVALUE('Date'[Fiscal Month]), DetailResult, TotalResult )
逻辑说明
- 首先通过
HASONEVALUE判断当前筛选上下文是否为单月份,明细行直接按规则返回,保证行级展示和原有逻辑一致 - 合计行通过
SUMX迭代所有在筛选范围内的月份,每个月单独判断实际收入是否为空,空则取对应预算,再将所有月份的结果累加,最终得到的总结果为1+2+3+1+1=8,符合预期
注意事项
- 需提前确认日期表
Date和收入表Paysuite、预算表Budget都已建立激活的一对多关系 - 如果你的统计粒度是日期、季度等其他维度,将代码中
'Date'[Fiscal Month]替换为对应粒度的日期字段即可 - 优先用
HASONEVALUE替代原代码中的HASONEFILTER,判断单值的逻辑更稳定,不会受其他无关筛选器的干扰
内容的提问来源于stack exchange,提问作者Fazza
相关产品推荐
相关产品推荐

