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

Google Sheets动态求和需求:跨多表自动汇总无需固定命名与数量

动态汇总Google Sheets多工作表数据的解决方案

我刚好遇到过类似的需求,这里有两个可行的方案,不需要固定工作表数量或严格命名规则,完美适配你的场景:

方案一:用自定义函数+动态求和公式(推荐)

这个方案通过自定义函数获取所有工作表名称,再结合SUMPRODUCT和INDIRECT实现动态求和,步骤如下:

1. 创建获取工作表名称的自定义函数

  • 打开你的Google Sheets,点击顶部菜单的「工具」>「脚本编辑器」
  • 在弹出的编辑器里粘贴以下代码:
function GET_SHEET_NAMES() {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(sheet => sheet.getName());
}
  • 点击编辑器顶部的保存按钮,给脚本起个名字(比如SheetNameHelper),然后关闭编辑器。

2. 编写动态求和公式

回到结果工作表,在需要汇总的单元格(比如C3)中输入以下公式:

=SUMPRODUCT(INDIRECT("'"&FILTER(GET_SHEET_NAMES(), GET_SHEET_NAMES()<>"结果")&"'!"&ADDRESS(ROW(), COLUMN())))

然后你可以把这个公式拖拽填充到整个C3:G22区域(对应你说的每行5单元格、每列20单元格的范围),每个单元格都会自动汇总所有非结果工作表对应位置的数值。

公式原理:

  • GET_SHEET_NAMES():调用自定义函数返回当前工作簿所有工作表的名称数组
  • FILTER(..., GET_SHEET_NAMES()<>"结果"):过滤掉结果工作表,只保留需要汇总的目标表
  • INDIRECT("'"&表名&"'!"&ADDRESS(ROW(), COLUMN())):将每个工作表名称转换成对应单元格的引用(比如'P1'!C3)
  • SUMPRODUCT:对所有目标单元格的数值求和

注意事项:

  • 第一次使用自定义函数时,会弹出授权提示,按照指引完成授权即可
  • 当你添加/删除工作表,或者修改工作表名称时,公式会自动更新(如果没自动刷新,按Ctrl+R手动刷新即可)
  • 如果工作表名称包含特殊字符(比如单引号),需要调整公式处理,但这种情况很少见

方案二:无需脚本的变通方法(适合不想授权脚本的场景)

如果你不想使用自定义函数,可以用CELL函数结合手动维护工作表名称列表的方式,步骤如下:

  1. 在结果工作表的某个空白区域(比如Z1:Z100)手动列出所有需要汇总的工作表名称(比如P1、P2...)
  2. 在目标单元格(比如C3)输入公式:
=SUMPRODUCT(INDIRECT("'"&Z1:Z8&"'!C3"))

这里的Z1:Z8是你维护的工作表名称范围,你可以根据实际数量调整。

这种方法的缺点是需要手动更新工作表名称列表,但好处是不需要授权脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:56:35