Excel如何按月份动态选择区域统计用户ID数量
按月份动态统计用户ID数量的解决方法
方法1:转为Excel表格(最省心的动态方案)
这是最简单的动态区域实现方式,表格会自动识别新增数据:
- 选中包含用户ID列和月份列的所有数据(包括表头),按下
Ctrl+T,勾选「我的表有标题」完成表格创建。 - 在统计列输入公式:
=COUNTIF(表名[月份],[@月份])
(把「表名」换成你创建的表格实际名称,比如默认的「表1」) - 效果:后续新增行数据时,表格会自动扩展范围,统计结果实时更新,每个月份对应的行都会显示该月份的用户ID总数。
方法2:用动态范围公式(非表格方案)
如果不想转表格,可以用动态范围引用替代固定区域:
非易失性版本(推荐,不卡顿)
直接在COUNTIF中使用INDEX组合定义动态区域:
=COUNTIF(INDEX($B:$B,2):INDEX($B:$B,COUNTA($B:$B)),$B2)
- 原理:
INDEX($B:$B,2)定位到月份列的第一行数据,INDEX($B:$B,COUNTA($B:$B))定位到月份列最后一行非空数据,两者组合成动态的连续区域。
易失性版本(适合小数据量)
用OFFSET定义动态范围:
先通过「公式→定义名称」新建一个名称(比如动态月份区),引用位置输入:
=OFFSET($B$2,0,0,COUNTA($B:$B)-1,1)
然后统计公式改为:
=COUNTIF(动态月份区,$B2)
- 注意:OFFSET是易失函数,大数据量下会增加计算负担,优先用INDEX版本。
方法3:整列引用+COUNTIFS(Excel 365/2021适用)
如果你的Excel版本支持,直接用整列引用结合COUNTIFS排除空行:
=COUNTIFS($B:$B,$B2,$A:$A,"<>")
- 假设A列是用户ID列,
$A:$A,"<>"用来排除B列中无对应用户ID的空行,确保统计的是有效数据。
示例效果说明
假设数据结构如下:
| 用户ID | 月份 | 统计数 |
|---|---|---|
| U001 | 1 | 3 |
| U002 | 1 | 3 |
| U003 | 2 | 2 |
| U004 | 2 | 2 |
当新增用户U006、月份1后,1月对应的统计数会自动更新为4,无需手动调整公式范围。
内容的提问来源于stack exchange,提问作者Shishir
相关产品推荐
相关产品推荐

