You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中非零数字计数问题:Len+Substitute函数无法返回正确结果

逗号分隔字符串中非0数字项的计数公式

针对你需要统计逗号分隔字符串里非0数字项个数(每个项无论位数算1个,排除0、空项)的需求,以下是不同Excel版本适用的公式:

适用于Excel 365/2021(支持动态数组)

直接用TEXTSPLIT拆分字符串后统计非0项:

=SUMPRODUCT(--(TEXTSPLIT(A1, ",")<>"0"))

原理:TEXTSPLIT(A1, ",")将字符串按逗号拆分为数组,TEXTSPLIT(...)<>"0"判断每个元素是否非0,返回逻辑值数组,--将逻辑值转为1/0,最后SUMPRODUCT求和得到总个数。

适用于旧版Excel(无动态数组功能)

用字符串替换+提取的方式实现:

=SUMPRODUCT(--(TRIM(MID(SUBSTITUTE(A1, ",", REPT(" ", LEN(A1))), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*LEN(A1)+1, LEN(A1)))<>"0"))

原理:

  1. SUBSTITUTE(A1, ",", REPT(" ", LEN(A1)))将所有逗号替换为与原字符串长度相同的空格,确保每个原项被单独分隔开;
  2. MID(...)按位置逐个提取每个项的内容,TRIM去除多余空格;
  3. 判断提取的内容是否非0,转数值后求和得到结果。

也可以用简化版(需确保ROW($1:$100)覆盖所有项数,若项数更多可调整数字):

=COUNT(1/(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),ROW($1:$100)*99-98,99))<>"0"))

验证说明

以上公式针对你提供的字符串,均可返回正确结果50。若原字符串包含空格,TRIM会自动去除,不影响计数。

内容的提问来源于stack exchange,提问作者silbia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 12:11:15