Excel COUNTIFS公式返回0问题排查及修正请求
问题分析与解决方案
你的公式返回0的核心原因是日期类型不匹配:
MONTH(TODAY())返回的是纯数字(比如10代表10月),但'IAD'!A:A中的值是完整日期(例如2024/10/15),直接用数字和完整日期对比永远不成立,因此COUNTIFS统计不到符合条件的记录。- 另外你原公式里的
COUNTIF('IAD'!E:E, A:A)存在维度问题,A:A是整列,而COUNTIF需要单个匹配值(应该是A2,和前半段公式保持一致)。
修正后的公式
方案1:用日期范围匹配当前月份(推荐,避免跨年混淆)
=COUNTIF(FILTER('Archived D'!E:E,ISNUMBER(MATCH('Archived D'!H:H,Match!$A$2:$A$12,0))),A2) + COUNTIFS( 'IAD'!E:E, A2, 'IAD'!A:A, ">="&EOMONTH(TODAY(),-1)+1, 'IAD'!A:A, "<="&EOMONTH(TODAY(),0) )
这个公式通过EOMONTH计算当前月份的第一天和最后一天,用日期范围精准匹配'IAD'!A:A中属于当前月的记录,同时统计E列等于A2的次数。
方案2:提取月份数字对比
=COUNTIF(FILTER('Archived D'!E:E,ISNUMBER(MATCH('Archived D'!H:H,Match!$A$2:$A$12,0))),A2) + SUMPRODUCT( --('IAD'!E:E=A2), --(MONTH('IAD'!A:A)=MONTH(TODAY())) )
用SUMPRODUCT结合MONTH函数,分别判断两个条件:E列等于A2、A列的月份等于当前月份,两个条件都满足时计数。
额外注意点
- 如果你的
'IAD'!A:A中存储的是纯月份数字(不是完整日期),那需要检查单元格格式是否为数值型,确保和MONTH(TODAY())的返回值类型一致。 - 确认
A2的值确实存在于'IAD'!E:E中,且'IAD'!A:A有属于当前月份的记录。
内容的提问来源于stack exchange,提问作者Jon Beckner
相关产品推荐
相关产品推荐

