You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI DAX实现月度累计余额计算方案咨询

计算滚动累计余额的DAX解决方案

核心逻辑

你需要的是逐月滚动累计计算,DAX中有多种方式实现,下面分两种常见场景给出具体方案:

场景1:模型包含标准日期表(推荐)

如果你的数据模型里有标记为日期表的时间维度表(需包含连续的月份/日期字段),可以用以下度量值:

Balance = 
VAR 当前月份 = MAX('日期表'[月份])
VAR 期初余额 = [beginning balance]
VAR 累计月度净额 = 
    CALCULATE(
        [net month],
        FILTER(
            ALL('日期表'),
            '日期表'[月份] <= 当前月份
        )
    )
RETURN
    期初余额 + 累计月度净额

说明

  • 当前月份提取当前上下文的最大月份,作为累计计算的截止点
  • 累计月度净额计算从最早月份到当前月份的所有月度净额总和
  • 最终结果自动实现滚动累加:1月余额=期初余额+1月净额,2月余额=1月余额+2月净额(本质是期初余额+1-2月累计净额),以此类推

场景2:无独立日期表的情况

如果没有单独的日期表,直接基于业务表的月份字段计算:

Balance = 
VAR 当前月份 = MAX('业务表'[月份])
VAR 期初余额 = [beginning balance]
VAR 累计月度净额 = 
    SUMX(
        FILTER(
            ALL('业务表'),
            '业务表'[月份] <= 当前月份
        ),
        [net month]
    )
RETURN
    期初余额 + 累计月度净额

注意事项

  • 确保月份列是可排序的格式(比如数字1-12,或统一格式的年月值如"2024-01"),否则累计逻辑会出现错误
  • 若涉及跨年度累计,需在筛选条件中加入年份判断,例如:'日期表'[年份] = MAX('日期表'[年份]) && '日期表'[月份] <= 当前月份

验证示例

假设1月期初余额为100,1月月度净额50,2月月度净额30:

  • 1月Balance = 100 + 50 = 150
  • 2月Balance = 100 + 50 + 30 = 180(等同于150 + 30),完全符合你的计算规则

内容的提问来源于stack exchange,提问作者Cami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:03:20