Google Sheets统计每月交易数时12月返回错误值是什么原因?
Google Sheets 统计12月交易笔数异常问题解答
问题根因
- 你的公式引用了
F3:F整列范围,包含大量未录入数据的空单元格。Google Sheets的日期运算规则中,空单元格会被默认识别为日期值1899-12-30,使用MONTH()函数提取该值的月份时会返回12。 - 统计1-11月数据时,空单元格返回的12不会被计入对应月份的匹配结果,因此数值正常;统计12月数据时,所有空单元格都会被判定为匹配项,和真实12月的交易数据叠加,最终返回远大于实际值的错误整数,这和12月的数值特性直接相关,并非Google Sheets针对12月有特殊设定。
修复方案
方案1:限制引用范围(最简单)
把整列引用修改为实际有数据的范围,比如确认数据最多到2000行,就把公式中的$F$3:F改为$F$3:F2000,避免包含空单元格即可。
方案2:添加空值过滤(兼容性最好)
在ArrayFormula中增加空值判断,过滤掉空单元格后再统计,以统计12月为例,修改后的公式如下:
=IF(COUNTIF(ArrayFormula(IF(INDIRECT($H$12&"!$F$3:F")="",NA(),MONTH(INDIRECT($H$12&"!$F$3:F")))),12)=0,"",COUNTIF(ArrayFormula(IF(INDIRECT($H$12&"!$F$3:F")="",NA(),MONTH(INDIRECT($H$12&"!$F$3:F")))),12))
方案3:优化写法(效率最高)
使用LET函数减少重复计算,同时过滤空值,公式更简洁运行更快:
=LET( date_range, FILTER(INDIRECT($H$12&"!$F$3:F"), INDIRECT($H$12&"!$F$3:F")<>""), month_count, COUNTIF(ARRAYFORMULA(MONTH(date_range)),12), IF(month_count=0,"",month_count) )
内容的提问来源于stack exchange,提问作者James Raitsev
相关产品推荐
相关产品推荐

