Power BI计算两行累计费用差值的DAX公式错误排查
Power BI 相邻行累计费用差值计算DAX公式修正方案
原公式问题核心原因
- 匹配逻辑错误:FILTER条件中使用
'Source data'[index]=EARLIER('Source data'[Numerator])匹配目标行,不符合「取上一行累计费用」的逻辑,导致取到的对比值完全错误。 - 判断逻辑冗余:原IF判断条件逻辑不严谨,未处理首行无上行数据的空值场景,反而引入了不必要的判断分支。
修正后DAX计算列公式
Net expenditure for the month = // 取当前行的索引值 VAR current_index = 'Source data'[index] // 取上一行的累计费用值 VAR prev_cumulative_expense = CALCULATE( SUM('Source data'[Cummulative expense for the month]), FILTER( 'Source data', 'Source data'[index] = current_index - 1 -- 如果数据存在项目、部门等分组维度,需新增同组匹配条件,示例: -- && 'Source data'[项目ID] = EARLIER('Source data'[项目ID]) ) ) // 首行无上行数据时返回0,否则返回当前累计与上行累计的差值即为当月净支出 RETURN IF(ISBLANK(prev_cumulative_expense), 0, 'Source data'[Cummulative expense for the month] - prev_cumulative_expense)
注意事项
- 需确保
'Source data'[index]列是连续整数,且按时间升序排列,时间越早的行index值越小。 - 如果数据存在多个独立的累计维度(如不同项目、不同门店分别统计累计费用),必须在FILTER中新增对应维度的匹配条件,避免跨维度取值错误。
内容的提问来源于stack exchange,提问作者user17295743
相关产品推荐
相关产品推荐

