Excel公式需求:计算2024年各月累加唯一ID数量
统计2024年累计唯一ID的Excel公式方案
问题背景
现有如下数据表格:
| ID | Month num | Year |
|---|---|---|
| 1 | 1 | 2024 |
| 1 | 1 | 2024 |
| 2 | 2 | 2024 |
| 1 | 2 | 2024 |
| 2 | 2 | 2024 |
| 2 | 2 | 2024 |
| 3 | 3 | 2024 |
| 1 | 1 | 2023 |
需要统计2024年每个月份及之前所有月份的唯一ID累计数量,预期结果如下:
January 2024: 1 distinct ID February 2024: 2 distinct IDs(统计1月+2月的唯一ID) March 2024: 3 distinct IDs(统计1月+2月+3月的唯一ID)
公式方案
适合Excel 365/2021及以上版本(支持动态数组)
如果单个计算某月份(比如目标月份放在单元格F2,输入1代表1月),用这个公式:
=COUNTA(UNIQUE(FILTER(A:A,(C:C=2024)*(B:B<=F2))))
- 步骤拆解:
FILTER(A:A,(C:C=2024)*(B:B<=F2))筛选出2024年里月份≤目标月份的所有IDUNIQUE(...)对筛选出的ID去重COUNTA(...)统计去重后的ID总数
要是想一次性生成1-12月的所有结果,直接用这个公式,会自动输出12行符合格式的结果:
=MAP(SEQUENCE(12),LAMBDA(m,TEXT(DATE(2024,m,1),"mmmm yyyy")&": "&COUNTA(UNIQUE(FILTER(A:A,(C:C=2024)*(B:B<=m))))&" distinct ID"&IF(COUNTA(UNIQUE(FILTER(A:A,(C:C=2024)*(B:B<=m))))<>1,"s","")))
适合旧版Excel(不支持动态数组)
目标月份放在F2,输入公式后要按 Ctrl+Shift+Enter 作为数组公式确认:
=SUM(IF(FREQUENCY(IF((C:C=2024)*(B:B<=F2),A:A),A:A)>0,1))
- 步骤拆解:
IF((C:C=2024)*(B:B<=F2),A:A)生成符合条件的ID数组,不符合条件的返回FALSEFREQUENCY(...,A:A)计算每个ID在原数据中的出现频率IF(...,>0,1)把频率大于0的ID标记为1(代表唯一存在)SUM(...)求和得到唯一ID的总数
内容的提问来源于stack exchange,提问作者Digital Aquarium
相关产品推荐
相关产品推荐

