如何按30/60/90天周期统计无活动人员数量?
按30/60/90天周期统计无活动人员数量
前提假设
- 总人员去重名单放在
Sheet2的A列(示例范围A2:A100,表头在A1) - 90天内活动数据在
Sheet1,包含两列:A列是人员ID/姓名,B列是活动日期(表头为人员、活动日期) - 当前日期用
TODAY()函数自动获取,也可替换为固定日期(如DATE(2024,5,20))
统计方案
无活动人员数的核心逻辑:总人员数 - 对应周期内有活动的人员数,或直接统计「最后活动日期超出对应周期/从未活动」的人员数。
方法1:用辅助列分步统计
1. 获取每个人员的最后活动日期
在Sheet2的B2单元格输入公式,下拉填充至所有人员行:
=IFERROR(MAXIFS(Sheet1!$B:$B, Sheet1!$A:$A, $A2), 0)
- 说明:
MAXIFS提取该人员在活动表中的最晚活动日期;无活动记录时,IFERROR返回0(标记为从未活动)
2. 计算距当前的天数差
在Sheet2的C2单元格输入公式,下拉填充:
=TODAY()-B2
- 说明:从未活动的人员天数差会远大于90,自动归入90天无活动范畴
3. 按周期统计无活动人数
- 30天内无活动(最后活动>30天/从未活动):
=COUNTIF(Sheet2!$C:$C, ">30")
- 60天内无活动(最后活动>60天/从未活动):
=COUNTIF(Sheet2!$C:$C, ">60")
- 90天内无活动(最后活动>90天/从未活动):
=COUNTIF(Sheet2!$C:$C, ">90")
方法2:无辅助列直接统计(适合Excel 365/2021及以上)
用动态数组公式一步计算,无需额外列:
- 30天无活动人数:
=COUNTA(Sheet2!A2:A100)-SUMPRODUCT(--(MAXIFS(Sheet1!B:B,Sheet1!A:A,Sheet2!A2:A100)>TODAY()-30))
- 60天无活动人数:
=COUNTA(Sheet2!A2:A100)-SUMPRODUCT(--(MAXIFS(Sheet1!B:B,Sheet1!A:A,Sheet2!A2:A100)>TODAY()-60))
- 90天无活动人数:
=COUNTA(Sheet2!A2:A100)-SUMPRODUCT(--(MAXIFS(Sheet1!B:B,Sheet1!A:A,Sheet2!A2:A100)>TODAY()-90))
- 说明:
COUNTA统计总人员数;SUMPRODUCT统计对应周期内有活动的人员数(MAXIFS取最后活动日期,判断是否在周期内,--将布尔值转为1/0后求和)
注意事项
- 确保两个表中的人员ID/姓名完全匹配(无空格、大小写一致),否则匹配会失败
- 旧版Excel无
MAXIFS函数时,可用LOOKUP替代:=IFERROR(LOOKUP(1,0/(Sheet1!$A:$A=$A2),Sheet1!$B:$B),0) - 若需统计「30-60天无活动」「60-90天无活动」的细分人群,可通过两个周期的统计值相减得到,比如:
=COUNTIF(Sheet2!C:C, ">30")-COUNTIF(Sheet2!C:C, ">60")
内容的提问来源于stack exchange,提问作者Chrysophylax Bergonio Garbo
相关产品推荐
相关产品推荐

