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

Google Sheets如何按位置而非名称引用首个工作表进行跨表计算?

Google Sheets按位置固定引用第一个工作表的实现方案

问题根因

直接写Sheet1无法生效的原因:Google Sheets没有内置「按工作表位置顺序引用」的原生语法,Sheet1只是初始第一张表的默认名称,一旦用户修改工作表名称,该标识符就会失效,并非你遗漏了基础配置。

实现方案(用自定义函数+INDIRECT实现)

该方案不需要修改计算逻辑,只要保证第一个标签为数据源表即可正常运行:

步骤1:添加自定义 Apps Script 函数

  • 打开当前表格顶部菜单栏的「扩展程序」>「Apps Script」
  • 删除默认的代码内容,粘贴如下代码:
function GET_SHEET_BY_POSITION(pos) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[pos-1].getName();
}
  • 点击保存按钮,给项目自定义命名(比如「自定义表引用」),按照提示授权脚本访问表格权限即可。

步骤2:替换原有SUMIFS公式

回到第二张计算表,把原有公式替换为如下写法:
=SUMIFS(INDIRECT(GET_SHEET_BY_POSITION(1)&"!B1:B100"), INDIRECT(GET_SHEET_BY_POSITION(1)&"!H1:H100"), B2)

  • 其中GET_SHEET_BY_POSITION(1)会自动获取当前工作簿第1个工作表的名称
  • INDIRECT函数会把拼接出来的文本地址转为有效的单元格引用
  • 第一次使用自定义函数如果出现#ERROR!提示,点击单元格的授权提示完成授权即可,后续使用不会重复提示
  • 后续批量复制表格后,不需要修改任何公式即可正常运行

无脚本替代方案(适合模板分发场景)

如果不想启用自定义脚本,可以在制作模板时先把第一张工作表命名为任意固定名称(比如「数据源」),第二张表的公式直接引用该名称即可。后续用户修改第一张表的名称时,Google Sheets会自动同步更新第二张表公式里的引用名称,不需要手动调整逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:04