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

如何对含前导下划线的数字区域求和?(Google Sheets)

带前导下划线的数字求和解决方案

一、修复你的自定义脚本问题

你的脚本只返回第一个项,核心原因是Google Sheets传入单元格区域时会以二维数组形式传递(比如[[_12,34],[99,_42]]),而你直接用map处理的是外层的行数组,而非每个单元格内容。修改后的脚本如下:

function sum_with_underscores(underscored_nums) {
    // 扁平化二维数组,遍历每个单元格
    let flatNums = underscored_nums.flat(Infinity);
    // 替换下划线并转换为数字
    let nums = flatNums.map(x => parseFloat(String(x).replace("_", "")));
    // 过滤无效值(比如空单元格)后求和
    return nums.filter(num => !isNaN(num)).reduce((pv, cv) => pv + cv, 0);
}

使用时在单元格输入=sum_with_underscores(A1:B2)即可。

二、更简便的原生Google Sheets公式方案

无需编写脚本,用原生公式就能快速实现,推荐两种方案:

方案1:SUMPRODUCT + SUBSTITUTE

=SUMPRODUCT(--SUBSTITUTE(A1:B2,"_",""))
  • 逻辑:SUBSTITUTE批量替换区域内所有单元格的下划线,--将处理后的文本转为数字,最后SUMPRODUCT完成区域求和。

方案2:SUM + ARRAYFORMULA

=SUM(ARRAYFORMULA(--SUBSTITUTE(A1:B2,"_","")))
  • 逻辑:ARRAYFORMULA让SUBSTITUTE作用于整个单元格区域,--转换数据类型后,用SUM完成求和。

两种原生公式无需授权运行,比自定义脚本更轻便高效。


内容的提问来源于stack exchange,提问作者Fernando Jesus Garcia Hipola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:01:07