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

如何制作动态查询?实现Excel多明细工作表数据自动汇总

实现自动合并明细表数据的方案

第一步:维护明细工作表名称列表

在汇总表的某一列(比如A列,从A2开始)逐一录入所有明细工作表的名称,后续新增工作表时,直接在这个列表末尾追加名称就行。

第二步:Excel 365/2021 动态数组解法(推荐)

在汇总表的B1单元格输入以下公式,就能自动合并所有列表中指定工作表的A10:G16区域数据:

=REDUCE("", FILTER(A2:A100, A2:A100<>""), LAMBDA(acc, sheet, VSTACK(acc, INDIRECT("'"&sheet&"'!A10:G16"))))
  • 细节说明:
    • FILTER(A2:A100, A2:A100<>""):自动筛选出A列里非空的工作表名称,不用手动调整范围
    • INDIRECT("'"&sheet&"'!A10:G16"):根据名称引用对应工作表的目标区域,单引号适配带空格/特殊字符的表名
    • REDUCE + VSTACK:把每个工作表的数据逐行堆叠成一个完整的列表
    • 如果想自动剔除空行,给公式套个TOCOL(..., 3):
      =TOCOL(REDUCE("", FILTER(A2:A100, A2:A100<>""), LAMBDA(acc, sheet, VSTACK(acc, INDIRECT("'"&sheet&"'!A10:G16")))), 3)
      

第三步:旧版Excel(无动态数组)兼容方案

如果用的是不支持动态数组的旧版Excel,用以下数组公式(输入时按Ctrl+Shift+Enter确认):

=IFERROR(INDEX(INDIRECT("'"&INDEX($A$2:$A$100, INT((ROW(A1)-1)/7)+1)&"'!A10:G16"), MOD(ROW(A1)-1,7)+1, COLUMN(A1)), "")

操作方式:把公式放在B1,向右拖拽到H1(对应原数据的G列),再向下拖拽足够多的行,超出实际数据的部分会显示空值。

关键提示

  • 新增明细工作表后,只需在A列的名称列表里添加表名,公式会自动同步数据
  • 表名带空格或特殊字符时,公式里的单引号会自动处理,不用额外修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:50:33