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

如何用公式将Google Spreadsheet多工作表首列动态合并至新列?

自动合并所有工作表首列数据的Google Sheets公式方案

这个需求我之前帮朋友处理过,用Google Sheets的新一代动态函数就能完美实现自动更新——不管是增删工作表、还是修改某张表首列的数据,汇总列都会自动同步,完全不用手动调整公式!

核心公式(直接复制使用)

把这个公式放到你想要存放汇总数据的单元格(比如新建的"汇总"工作表A1单元格):

=TOCOL(MAP(FILTER(GET_WORKBOOK(1), GET_WORKBOOK(1)<>CELL("sheet")), LAMBDA(sheet, INDIRECT("'"&sheet&"'!A:A"))), 1)

公式各部分拆解(帮你理解原理)

  • GET_WORKBOOK(1):获取当前工作簿里所有工作表的名称,返回一个数组(比如["Sheet1", "Sheet2", "汇总"])
  • FILTER(..., GET_WORKBOOK(1)<>CELL("sheet")):过滤掉当前存放公式的工作表(比如"汇总"),避免出现循环引用的问题
  • MAP(..., LAMBDA(sheet, INDIRECT("'"&sheet&"'!A:A"))):遍历每个工作表名称,用INDIRECT函数引用对应工作表的首列(A列)数据,最终得到一个包含所有工作表A列数据的二维数组
  • TOCOL(..., 1):把二维数组扁平化成为一列,参数1表示自动忽略空单元格,让汇总列只显示有内容的数据

自定义调整技巧

  1. 跳过表头:如果每张表的第一行是表头,不需要合并到汇总里,把公式里的A:A改成A2:A即可:
    =TOCOL(MAP(FILTER(GET_WORKBOOK(1), GET_WORKBOOK(1)<>CELL("sheet")), LAMBDA(sheet, INDIRECT("'"&sheet&"'!A2:A"))), 1)
    
  2. 保留空单元格:如果需要保留空值,把TOCOL的第二个参数去掉或者改成0:
    =TOCOL(MAP(FILTER(GET_WORKBOOK(1), GET_WORKBOOK(1)<>CELL("sheet")), LAMBDA(sheet, INDIRECT("'"&sheet&"'!A:A"))))
    

注意事项

  • 确保你的Google Sheets是新版(支持GET_WORKBOOK、MAP、TOCOL这些函数,目前大部分账号都已经支持)
  • 如果工作表名称包含空格、特殊字符,公式里的'"&sheet&"'已经处理了这种情况,不用额外修改
  • 当你新增/删除工作表、修改任意工作表A列的数据时,汇总列会自动刷新,完全不用手动操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:06:08