Excel忽略公式仅统计实际数值单元格的公式如何修正
解决方案
你当前使用的
COUNTA函数本身的逻辑是统计所有包含内容的单元格,只要单元格内存在公式(哪怕公式返回空文本"")就会被判定为非空,所以会出现计数偏差。
全Excel版本通用方案(兼容性最好)
直接对每个目标单元格单独做非空判断后求和,不需要数组公式,所有版本都可以直接使用:
=--(A1<>"") + --(A4<>"") + --(A6<>"") + --(A8<>"") + --(A10<>"")
- 逻辑说明:
--会把布尔值TRUE/FALSE转换为1/0,公式返回空文本的单元格会被判定为"",对应返回0,不会被计入总数。 - 如果你只需要统计数值类型的内容,把判断条件替换为
ISNUMBER()即可:
=--ISNUMBER(A1) + --ISNUMBER(A4) + --ISNUMBER(A6) + --ISNUMBER(A8) + --ISNUMBER(A10)
- 如果目标单元格可能存在无意义的空格,需要把空格也判定为空,加上
TRIM函数:
=--(TRIM(A1)<>"") + --(TRIM(A4)<>"") + --(TRIM(A6)<>"") + --(TRIM(A8)<>"") + --(TRIM(A10)<>"")
Excel 365/2021及以上版本简化方案
可以用数组处理简化公式写法:
统计所有非空内容(含文本、数值,排除公式返回的空值)
=SUMPRODUCT(--(CHOOSE({1,2,3,4,5},A1,A4,A6,A8,A10)<>""))
仅统计数值内容
=SUMPRODUCT(--ISNUMBER(CHOOSE({1,2,3,4,5},A1,A4,A6,A8,A10)))
更简洁的写法(仅支持365)
利用TOCOL函数直接过滤空值:
=COUNTA(TOCOL((A1,A4,A6,A8,A10),1))
内容的提问来源于stack exchange,提问作者Aabo
相关产品推荐
相关产品推荐

