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

如何在多工作表批量应用公式?寻求拖拽式自动识别解决方案

批量对多个工作表指定列求和并自动填充的解决方案

我懂你现在要处理几百个工作表的批量求和,还想实现像单表拖拽那样自动识别目标工作表的效果,这几个实用方法应该能帮你搞定:

方法1:适用于工作表名为连续序号(如Sheet2、Sheet3...)的场景

这个方法最直接,借助INDIRECT函数结合ROW()动态生成工作表名称,完美适配拖拽自动识别需求:

  1. 在Sheet1的A1单元格输入公式:
    =SUM(INDIRECT("Sheet"&(ROW()+1)&"!B:B"))
    
    简单解释:
    • ROW()会返回当前单元格的行号,A1的行号是1,ROW()+1就等于2,刚好对应Sheet2;
    • INDIRECT("Sheet2!B:B")会精准引用Sheet2的B列,再用SUM完成求和;
  2. 选中A1单元格,鼠标移到单元格右下角的填充柄(那个小方块),按住左键往下拖拽,公式会自动递增ROW()+1的数值,依次对应Sheet3、Sheet4...的B列求和,结果会自动填充到A2、A3...单元格。

方法2:适用于工作表名自定义(非连续序号)的场景

如果你的工作表不是统一的「Sheet+序号」命名,先把所有工作表名称提取出来,再用公式批量引用即可:

步骤1:提取所有工作表名称

在Sheet1的B1单元格输入对应版本的公式:

  • 新版Excel(365/2021及以上):
    =TEXTAFTER(GET.WORKBOOK(1),"]")
    
  • 旧版Excel:
    =REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),"")
    

按住填充柄往下拖拽,就能得到所有工作表的名称,之后手动删除Sheet1的条目(我们不需要对Sheet1求和)。

步骤2:批量求和公式

在Sheet1的A1单元格输入公式:

=SUM(INDIRECT(B1&"!B:B"))

按住填充柄往下拖拽,公式会自动引用B列对应的工作表名称,对每个工作表的B列求和,结果同步填充到A列对应行。

注意事项

  • INDIRECT是易失性函数,每次工作表有变动都会重新计算,几百个表的情况下可能会让Excel计算速度变慢,如果觉得卡顿,可以考虑用VBA批量生成静态求和值;
  • 如果工作表名称包含空格或特殊字符,需要给工作表名加上单引号,公式调整为:=SUM(INDIRECT("'"&B1&"'!B:B"));
  • 使用GET.WORKBOOK函数需要启用宏(路径:文件>选项>信任中心>信任中心设置>宏设置>启用所有宏),如果不想启用宏,可以手动列出所有工作表名称,或者用Power Query提取工作表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:23:12