如何在Google Sheets中获取工作表索引(对应Excel的SHEET()函数)
Google Sheets 中 Excel SHEET() 函数的等效方案
Google Sheets 没有原生的 SHEET() 函数,但可以通过字符串处理和单元格匹配实现相同效果——获取当前工作表的数字索引,进而动态引用指定工作表的对应列。
实现需求的公式
要达到 Excel 中 =ADDRESS(1,SHEET(),,,"Foo") 的效果(返回类似 Foo!$A$1 的文本引用),可以使用以下公式:
="Foo!"&ADDRESS(1, MATCH(CELL("address"), CELL("address", INDIRECT("Sheet1:Sheet"&SHEETS())), 0))
如果需要直接引用该单元格的值(而非返回地址文本),改用 INDIRECT 实现:
=INDIRECT("Foo!"&CHAR(64 + MATCH(CELL("address"), CELL("address", INDIRECT("Sheet1:Sheet"&SHEETS())), 0))&1)
公式细节解释
CELL("address"):返回当前单元格的完整地址(格式如Sheet1!A1)。CELL("address", INDIRECT("Sheet1:Sheet"&SHEETS())):生成包含所有工作表A1单元格地址的数组(例如Sheet1!A1,Sheet2!A1等)。MATCH(...):将当前单元格地址与上述数组匹配,得到当前工作表的数字索引。ADDRESS(1, 索引):生成对应列第1行的单元格地址,拼接工作表名Foo!后,结果与 Excel 公式完全一致。
注意事项
- 若你的工作表名称不是默认的
Sheet1/Sheet2格式,需修改INDIRECT("Sheet1:Sheet"&SHEETS())部分,确保覆盖所有工作表。比如工作表名为Report1/Report2,则改为INDIRECT("Report1:Report"&SHEETS())。 - 公式依赖当前单元格地址,即使移动公式到其他单元格,结果也不会受影响,因为
CELL("address")始终指向公式所在单元格的地址。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

