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

如何在Power BI中用DAX实现Excel的COUNTIF累计计数功能?

在Power BI中用DAX实现Excel的COUNTIF($B$2:B2,B2)累计计数效果

要实现Excel里拖动=COUNTIF($B$2:B2,B2)得到的逐行累计ID出现次数效果,在Power BI里可以通过「计算列+DAX」完成,步骤如下:

1. 先给表添加排序依据(关键)

Power BI的表没有固定行顺序,必须先指定一个排序字段来模拟Excel的行顺序:

  • 打开Power Query编辑器,选中目标表
  • 点击「添加列」→「索引列」→「从1开始」,生成一个递增的Index列
  • 如果你的表本身有天然排序字段(比如处理日期、时间戳),可以跳过这一步,直接用该字段代替Index

2. 创建计算列

在数据视图中选中目标表,点击「建模」→「新建列」,粘贴以下DAX公式(替换成你的实际表名和字段名):

Id_Treatment_Count = 
VAR CurrentID = '你的数据表'[ID]
VAR CurrentRowIndex = '你的数据表'[Index]
RETURN
CALCULATE(
    COUNTROWS('你的数据表'),
    '你的数据表'[ID] = CurrentID,
    '你的数据表'[Index] <= CurrentRowIndex
)

公式说明

  • VAR CurrentID:捕获当前行的ID值
  • VAR CurrentRowIndex:捕获当前行的索引(或排序字段值)
  • CALCULATE:筛选出和当前行ID相同且索引小于等于当前行的所有记录,统计行数就是该ID到当前行的累计出现次数,和Excel的公式效果完全匹配

替代方案(用天然排序字段)

如果你的表有日期/时间这类天然排序字段,比如处理日期,可以直接用它代替索引:

Id_Treatment_Count = 
VAR CurrentID = '你的数据表'[ID]
VAR CurrentTreatmentDate = '你的数据表'[处理日期]
RETURN
CALCULATE(
    COUNTROWS('你的数据表'),
    '你的数据表'[ID] = CurrentID,
    '你的数据表'[处理日期] <= CurrentTreatmentDate
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:25:58