Σ表格公式学堂EXCEL FORMULA & SCENARIO
组合数据拆分合并 · 4 个 Sheet

多个 Sheet 合并成一张表

12 个月的报表合成一张全年明细。

1

场景背景

每个月一张销售表,结构完全一样。年底要做全年分析,需要把 12 张表纵向拼成一张。三种做法:手动复制粘贴(最笨但最稳)、VSTACK(365 一行搞定)、Power Query(最专业,可刷新)。

2

数据结构

共 2 个 Sheet
Sheet:1月 … 12月
字段含义示例值
姓名 / 销售额每张表结构一致张三 / 1200
Sheet:全年汇总
字段含义示例值
整表纵向堆叠后的明细=VSTACK(1月!A2:B5,2月!A2:B5)
3

解决步骤

1
第 1 步:确认所有表结构完全一致
列的顺序、表头文字必须一样,否则拼起来会错列。
2
第 2 步:VSTACK 纵向堆叠
365 里 VSTACK 可以把多张表垂直拼起来,一个公式搞定全年。
=VSTACK(1月!A2:B5,2月!A2:B5,3月!A2:B5)
3
第 3 步:加上来源标记
拼完后加一列「来源月份」,方便后续按月份透视。HSTACK 可以横向加列。
=HSTACK(VSTACK(1月!A2:B5,2月!A2:B5),{"1月";"1月";"1月";"1月";"2月";"2月";"2月";"2月"})
4
第 4 步:合并后汇总
拼成一张大表后,就能用 SUMIF / 数据透视表随意分析了。
=SUMIF(A:A,"张三",B:B)
4

完整公式与逐段拆解

=VSTACK(1月!A2:B5,2月!A2:B5,3月!A2:B5)
VSTACK(纵向堆叠函数,按顺序往下接
1月!A2:B5第一张表的数据区域(不含表头)
,2月!A2:B5,...继续追加其他月份
5

多 Sheet 示例

在编辑器中打开 ↗
ABCDE
1姓名1月2月3月季度合计
2张三1200150013004000
3李四1400170015004600
4王五1700200018005500
5赵六1100140012003700
6合计54006600580017800
当前表:季度汇总 · 公式单元格 E2 · 绿色底为公式,蓝色底为动态数组溢出结果

季度汇总的季度合计就是先按月对齐再相加的结果

6

数据流向

数据流向演示1 / 4
来源1月!A2:B5
➜
去向VSTACK
1 月表数据
来源2月!A2:B5
→
去向VSTACK
2 月表数据
来源3月!A2:B5
→
去向VSTACK
3 月表数据
来源VSTACK
→
去向汇总表 A2
纵向拼成一张
跟着高亮一步步看数据怎么流动
7

注意事项与坑

!各表行数不同时,VSTACK 会自动按实际区域拼接,但区域要写准。
!表头只保留一份,不要把每张表的表头都拼进去。
!VSTACK 在 2019 及更早不支持,用 Power Query 追加查询更稳。
8

相关场景