有很多小伙们一直在提问关于如果汇总多个工作表至一个工作表中,小必老师给大家整理了一下,给大家整理了三种通用的方法。这三种方法分别是:Power Query,SQL以及VBA。
如下图所示,一个工作簿中有三个相同的工作表,现将他们汇总至一个工作表中。
结果如下图所示:
方法01
Power Query
具体的操作步骤如下:
Step-01:单击【数据】-【获取数据】-【自文件】-【从工作簿】,找到该工作簿所在的路径并单击【导入】。如下图所示:
Step-02:在弹出的界面中单击文件夹选项,再单击【转换数据】,如下图所示:
Step-03:在弹出的PQ界面中,单击“Data”列的扩展按钮,在对话框中单击【确定】即可,并在弹出的界面中选择最后三列,右键单击【删除列】,如下图所示:
Step-04:然后将第一行作为行标题,同时修改第一列的标题名称为“季度”,筛选掉多余的标题行。如下图所示:
Step-05:最后关闭并上载即可,如图所示:
1
方法02
SQL语句
除了以上的方法,还有一个方法也还可以实现,那就是使用SQL的方法。
Step-01:在一张空白的表中单击【数据】-【现有连接】,在弹出的对话框中选择【浏览更多】,在打开的对话框中选择当前操作的工作簿,单点打开,在弹出的对话框中选择任意一个要合并的工作玥,单击【确定】,如下图所示:
Step-02:在弹出的对话框中选择【现有位置】后单击【属性】,如下图所示:
Step-03:在弹出的对话框中单击【自定义】,然后在【命令文本】中输入以下的SQL语句代码,最后单击【确定】后再次单击【确定】,如下图所示:
select *from [2018Q1$]union allselect *from [2018Q2$]union allselect *from [2018Q3$]
方法03
VBA
除此之外,还有VBA代码也可以解决这个问题。
Step-01:单击【开发工具】-【Visual Basic】,在弹出的对话框中右键单击【插入】-【模块】,如下图所示:
Step-02:在右面的代码区粘贴代码:
具体代码如下:
Sub 多表合并()Dim arr()a = Range("a1").End(xlToRight).ColumnFor Each sh In Sheets If sh.Name <> "汇总" Then arr1 = sh.Range("a2").Resize(sh.UsedRange.Rows.Count - 1, a) act = act + UBound(arr1) ReDim Preserve arr(1 To a, 1 To act) ' For j = 1 To UBound(arr1) n = n + 1 For i = 1 To a arr(i, n) = arr1(j, i) Next i Next j End IfNextSheets("汇总").[a2].Resize(n, a) = Application.Transpose(arr)End Sub
Step-03:插入一个按钮,指定宏代码为“多表合并”,单击按钮即可合并,如下图所示:
注意:在保存带有代码的工作簿的时候,另存为“xlsm”格式,在运行宏之前一定要确保宏启用。
需要练习的小伙伴们将下面的连接复制到浏览器中打开即可:
链接:https://pan.baidu.com/s/1tVafhXvF5PdXD4-UD4djLQ
提取码:7fpz
关注公众号,回复666
赠送职场超实用Excel模板1000例
覆盖日常学习、工作的真实场景
一键套用,省时省力