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

如何在Google表格单个单元格中查找并汇总指定名称关联的数字

嘿,刚好能帮你解决这个Google Sheets自定义函数的需求!我写了一个简单的脚本,完美匹配你的场景:

解决方案:自定义SUMBYNAME函数

这个函数可以根据你指定的名称,自动统计目标单元格里对应数字的总和,还能自定义无匹配时的返回内容。

步骤1:创建自定义函数

  • 打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」。
  • 把默认的代码清空,粘贴下面的脚本:
function SUMBYNAME(targetName, cellRange, defaultReturn = "无匹配项") {
  // 获取目标单元格的文本内容
  const cellContent = cellRange.getValue().toString().trim();
  if (!cellContent) return defaultReturn;
  
  // 按任意空白字符拆分内容(兼容空格、换行符)
  const items = cellContent.split(/\s+/);
  let total = 0;
  
  // 遍历拆分后的数组,两两配对名称和数字
  for (let i = 0; i < items.length; i += 2) {
    const currentName = items[i];
    const currentNum = parseFloat(items[i+1]);
    
    // 匹配名称且数字有效时累加
    if (currentName === targetName && !isNaN(currentNum)) {
      total += currentNum;
    }
  }
  
  // 无匹配时返回自定义内容,否则返回总和
  return total === 0 ? defaultReturn : total;
}
  • 点击脚本编辑器顶部的「保存」按钮,给你的项目起个名字(比如“NameSumFunction”)。

步骤2:在表格中使用函数

回到你的Google表格,就可以像用内置函数一样调用SUMBYNAME了:

  • 基础用法(无匹配时默认返回「无匹配项」):
    =SUMBYNAME("NameOne", A1)
    
    这个公式会统计A1单元格里所有NameOne对应的数字总和,按你的示例会返回9。
  • 计算其他名称:
    =SUMBYNAME("NameTwo", A1)
    
    会返回3。
  • 自定义无匹配时的返回内容:
    如果想在找不到指定名称时返回0或者其他文本,直接加第三个参数:
    =SUMBYNAME("NameFour", A1, 0)
    

额外说明

  • 兼容换行(Alt+Enter)和空格分隔:脚本用了\s+拆分规则,不管你的条目是换行排列还是空格连在一起,都能正确识别名称和数字的配对。
  • 支持小数:如果你的数字是小数(比如NameOne 3.5),函数也能正确累加。
  • 注意事项:这个函数假设你的名称不含空格,如果名称有空格(比如Mary Ann),需要调整拆分逻辑,不过根据你的示例场景,这个设定完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:48:48