Excel统计每年用户过往注册年份数(已尝试@Dude_Scott建议,附更新截图)
用Excel COUNTIF统计用户过往注册年份数的解决方案
嘿,针对你这个要统计1989-2016年间,每一年用户此前注册过的年份数量,并按0yr、1yr、2yr维度汇总的需求,我整理了一套可行的方法:
核心逻辑梳理
我们要完成的核心任务是:对每个用户、每一年,算出该年份**之前(不含当年)**用户已经注册过的年份次数,然后按年份把不同次数的用户数量汇总出来,最终得到你蓝色表格里的期望输出。
数据结构前提说明
假设你的Excel数据是这么组织的:
- 首行是连续年份:1989、1990……一直到2016
- 每一行对应一个唯一的用户ID
- 单元格用
1标记用户在该年份注册,空值或0表示未注册(所有用户至少有一个1)
具体公式实现
第一步:计算单个用户单一年份的过往注册次数
比如要计算用户在1995年的过往注册次数(也就是1989-1994年里注册过的年份数),可以用这个数组公式(Excel 2019及以下需按Ctrl+Shift+Enter确认,365/2021直接回车即可):
=SUM(COUNTIF(OFFSET($A$2,ROW()-2,0,1,1995-1988),1))
拆解公式逻辑:
OFFSET($A$2,ROW()-2,0,1,1995-1988):定位到当前用户行,从1989年开始到1994年的所有列(1995-1988=7,对应前7列:1989-1994)COUNTIF(...,1):统计这段列里标记为注册(值为1)的单元格数量SUM:因为是数组操作,SUM帮助将结果转换成单个数值
如果要批量计算所有用户所有年份的过往次数,把公式里的1995换成对应的年份单元格引用(比如$C$1,假设1990年在C1单元格),下拉右拉就能批量生成所有结果。
第二步:按年份汇总不同次数的用户数
有了每个用户每一年的过往注册次数后,就能用COUNTIF来汇总了。比如要统计1990年里过往注册次数为0yr的用户数(也就是1989年没注册、1990年是首次注册的用户),公式可以写:
=COUNTIF($B$2:$B$1000,0)
这里$B$2:$B$1000是所有用户在1990年的过往注册次数计算结果列。同理,统计1yr的话就把0改成1即可。
要是想快速生成你蓝色表格里的二维汇总结果,可以结合INDEX和MATCH来匹配年份和次数对应的统计值,或者直接用数据透视表对过往次数列按年份分组统计,效率会更高。
关键注意事项
- 务必确保统计的是此前的年份,别把当前年份算进去,公式里的年份偏移量要对应准确
- 如果你的注册标记不是
1,记得把COUNTIF里的1换成你实际用的标记值(比如"注册")
内容的提问来源于stack exchange,提问作者fidget66
相关产品推荐
相关产品推荐

