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

如何在Power BI中创建按月重置的Cumulative Count

Power BI 实现按月重置的累计计数

你需要的是自然月维度内逐天累计记录数、每月初自动从0重启计数的计算逻辑,直接通过DAX即可实现,分两种常用场景给出方案:

场景1:给原始表每行添加固定累计值(计算列方案)

  • 先在数据视图确认DATE列格式为Power BI可识别的「日期类型」,若为文本格式先修改列类型。
  • 选中你的业务数据表,点击建模栏的「新建列」,输入以下DAX代码:
    月累计计数 = 
    VAR CurrentMonthEnd = EOMONTH('业务表'[DATE], 0)
    VAR CurrentDate = '业务表'[DATE]
    RETURN
    CALCULATE(
        COUNTROWS('业务表'),
        FILTER(
            ALL('业务表'),
            // 限定和当前行同属一个自然月,且日期早于/等于当前行日期
            EOMONTH('业务表'[DATE], 0) = CurrentMonthEnd
            && '业务表'[DATE] <= CurrentDate
        )
    )
    
  • 代码中'业务表'替换为你自己的实际表名即可。如果需要按Code等字段分组单独累计(比如不同编码各自算自己的月累计),只需要在FILTER筛选条件内追加对应字段的匹配规则,例如按Code分组就加一行'业务表'[Code] = EARLIER('业务表'[Code])。

场景2:可视化报表动态计算(度量值方案)

如果不需要给原始表加固定列,只是在报表可视化时动态展示月累计值,可以搭配独立的标准日期表写度量值,性能更好:

月累计计数_度量值 = 
CALCULATE(
    COUNTROWS('业务表'),
    DATESMTD('日期表'[日期])
)

使用时将日期表的日期字段放到可视化轴/筛选器上,该度量值会自动按当前筛选的日期范围,返回月初至今的累计记录数,跨月自动重置。

结果校验

用你提供的示例数据测试计算列方案,输出结果和你给出的预期完全一致:

  • 2022/5/30记录:同月份内≤当日的记录共1条,返回1
  • 2022/5/31两条记录:同月份内≤当日的记录共3条,均返回3
  • 2022/6/1两条记录:进入新自然月,同月份内≤当日的记录共2条,均返回2
  • 2022/6/2记录:同月份内≤当日的记录共3条,返回3

内容的提问来源于stack exchange,提问作者Data-7scientist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:54:26