Google Sheets动态汇总多Base表数据公式问题求助
解决Google Sheets动态汇总多工作表数据的问题
可行公式方案
在汇总表的B2单元格中使用以下公式,即可实现基于Bases表中列表自动求和对应位置的所有Base表数据:
=SUMPRODUCT(ARRAYFORMULA(IF(Bases!$A:$A<>"", INDIRECT(Bases!$A:$A&"!"&ADDRESS(ROW(), COLUMN())), 0)))
简化版(若无空白行可直接用)
如果Bases表的A列没有空白行(仅包含有效工作表名称),可以简化为:
=SUMPRODUCT(ARRAYFORMULA(INDIRECT(Bases!$A:$A&"!"&ADDRESS(ROW(), COLUMN()))))
原公式失效原因
你之前的公式在Google Sheets中仅返回第一个结果,是因为:
- Google Sheets的
INDIRECT函数默认不支持数组遍历,仅处理单个引用; - 必须用
ARRAYFORMULA强制它遍历Bases!$A:$A中的所有表名,生成对应的单元格引用数组; SUMPRODUCT会自动对数组中的所有数值求和(替代SUM是因为部分场景下SUM配合数组需要额外处理)。
使用说明
- 将公式粘贴到汇总表的B2单元格后,可直接下拉/右拉填充到其他需要汇总的单元格——公式中的
ROW()和COLUMN()会自动匹配当前单元格的位置,实现对应位置的跨表求和; - 当在
Bases表的A列新增或删除工作表名称时,汇总数据会自动更新,无需修改公式; - 确保
Bases表A列的表名与实际工作表名称完全一致(Google Sheets区分大小写)。
内容的提问来源于stack exchange,提问作者Pierre
相关产品推荐
相关产品推荐

