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

Google Sheet求和遇#REF!错误求助:提取指定命名工作表数据

解决Google Sheet中引用未创建工作表导致#REF!错误的求和问题

方法1:内置函数组合(无需脚本)

使用GET_WORKBOOK_TABS、REGEXMATCH、INDIRECT和IFERROR的组合,自动筛选符合命名规则的工作表并求和,同时忽略未创建的表:

=SUM(IFERROR(INDIRECT(FILTER(GET_WORKBOOK_TABS(), REGEXMATCH(GET_WORKBOOK_TABS(), "^io\d+08$"))&"!E28"), 0))

各部分作用:

  • GET_WORKBOOK_TABS():获取当前文档所有工作表的名称列表
  • REGEXMATCH(..., "^io\d+08$"):筛选名称以io开头、中间包含任意数字、结尾为08的工作表(完全匹配io208、io308这类格式)
  • INDIRECT(...)&"!E28":将筛选后的工作表名称转为对应的E28单元格引用
  • IFERROR(..., 0):把未创建工作表导致的#REF!错误转为0,避免影响求和结果
  • SUM():对所有有效单元格的数值求和

方法2:自定义Apps Script函数(灵活扩展)

如果需要更灵活的规则控制,可编写自定义函数:

  1. 打开Google Sheet,点击「工具」→「脚本编辑器」
  2. 粘贴以下代码:
function SUM_SHEETS_PATTERN(pattern, cellRef) {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  let total = 0;
  const regex = new RegExp(pattern);
  
  sheets.forEach(sheet => {
    const name = sheet.getName();
    if (regex.test(name)) {
      try {
        const value = sheet.getRange(cellRef).getValue();
        total += typeof value === 'number' ? value : 0;
      } catch(e) {
        // 忽略单元格不存在或数据类型错误的情况
      }
    }
  });
  
  return total;
}
  1. 保存脚本(命名为任意名称,比如SheetSum),返回表格
  2. 在单元格中调用函数:
=SUM_SHEETS_PATTERN("^io\d+08$", "E28")

这个函数会遍历所有工作表,匹配指定的正则模式,累加符合条件工作表中目标单元格的数值,自动忽略不存在的表或错误。

方法3:手动维护列表(适合少量工作表)

如果目标工作表数量不多,可直接用IFERROR逐个包裹引用,新增工作表时手动添加:

=SUM(IFERROR(io208!E28,0), IFERROR(io308!E28,0), IFERROR(io408!E28,0))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:24:22