2025-11-20 05:21:08
count函数比counta快,因为count只算非空单元格里的数值,而counta算的是所有非空单元格,包括空格、文字、错误值。比如A列有1000个单元格,其中500是数字,300是空格,200是错误,count返回500,counta返回700,这就是数据不对的原因。
爱好者的话来说,counta把空格、文字、错误都当有效数据算,而count会自动跳过这些。比如你用counta统计A列数据,实际想算的是数值,但A列有300个空格占用了计算资源,还把200个错误值也算进去,导致结果比真实数值多了300+200=500个。而count直接过滤掉这些无效内容,只算500个数值,所以运行更快。根据微软官方文档,counta的复杂度是O(n),而count的复杂度是O(n-1),n是单元格总数。当n很大时,counta多算500个无效数据,计算时间就会明显变长。
本题链接: