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

Google Sheets文本提取数字求和函数遇相邻小数点失效如何修复

解决方案

问题原因

原来的函数通过替换非数字和小数点的字符拆分内容,但是会生成类似30.、.30这类无法被SUM函数自动识别为有效数字的文本,因此会被忽略导致求和错误。

适配需求的修改后函数

如果你需要将30.识别为30、.30也识别为30,两个异常场景都返回50,可以直接使用下方函数:

=SUM(SPLIT(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(A2, "(^|\D)\.(\d)", "$1$2"), "\.(\D|$)", "$1"), "[^\d]+", "|"), "|"))

逻辑说明

  • 第一步先清理数字前缀的多余小数点:把所有出现在开头、或者非数字字符后面,且后面紧跟数字的小数点删除,比如.30会被处理为30
  • 第二步清理数字后缀的多余小数点:把所有出现在数字末尾、或者后面紧跟非数字字符的小数点删除,比如30.会被处理为30
  • 最后沿用原有逻辑,把所有非数字字符替换为分隔符|,拆分后求和

可选:需要正常识别小数的版本

如果你需要把.30识别为0.3、30.5识别为30.5这类正常小数计算,可使用更简洁的REGEXEXTRACTALL方案:

=SUM(IFERROR(REGEXEXTRACTALL(A2, "\d*\.\d+|\d+\.?\d*")*1, 0))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:03