求Excel 2016中C、D列的移动窗口计数公式
Excel 2016 列C、列D计数判断公式
假设表格结构为:
- A列:Name
- B列:YYYYMMDD(日期格式,每月1日;若为文本格式,见下方适配公式)
- C列:目标列(满足条件返回1)
- D列:目标列(满足条件返回1)
列C公式(过去12个月内同名记录≥2条返回1)
对应第2行的数组公式(输入后按Ctrl+Shift+Enter确认,再下拉填充):
=IF(COUNTIFS($A$2:$A$1000,A2,$B$2:$B$1000,">="&EDATE(B2,-11),$B$2:$B$1000,"<="&B2)>=2,1,0)
若B列为文本格式YYYYMMDD(如20231001),使用以下数组公式:
=IF(COUNTIFS($A$2:$A$1000,A2,$B$2:$B$1000,">="&TEXT(EDATE(DATE(LEFT(B2,4),MID(B2,5,2),RIGHT(B2,2)),-11),"YYYYMMDD"),$B$2:$B$1000,"<="&B2)>=2,1,0)
列D公式(过去12个月内同名记录≥3条返回1)
对应第2行的数组公式(输入后按Ctrl+Shift+Enter确认,再下拉填充):
=IF(COUNTIFS($A$2:$A$1000,A2,$B$2:$B$1000,">="&EDATE(B2,-11),$B$2:$B$1000,"<="&B2)>=3,1,0)
若B列为文本格式YYYYMMDD,使用以下数组公式:
=IF(COUNTIFS($A$2:$A$1000,A2,$B$2:$B$1000,">="&TEXT(EDATE(DATE(LEFT(B2,4),MID(B2,5,2),RIGHT(B2,2)),-11),"YYYYMMDD"),$B$2:$B$1000,"<="&B2)>=3,1,0)
公式逻辑说明
EDATE(B2,-11):计算当前行日期往前推11个月的日期,确保统计范围为过去12个完整月份(含当前行所在月份)COUNTIFS:同时匹配「同名」「日期在过去12个月范围内」两个条件,统计符合条件的记录数- 最后判断计数结果是否满足≥2(列C)或≥3(列D),满足返回1,否则返回0
内容的提问来源于stack exchange,提问作者Gary C
相关产品推荐
相关产品推荐

