合并多个Excel工作表,你会吗?

发布时间:2020-01-06 来源:网络


今天技巧妹跟大家分享如何利用PowerQuery把多个工作表内容合并到同一个工作表中。


PowerQuery是一个非常强大的数据抓取工具,Excel2016自带Power Query功能,可以直接使用,但Excel2010、2013版本需要自行安装。


下载地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=39379


如下图所示,这些需要合并的工作表都是位于独立的不同工作簿中,我们把这些工作簿放置在同一个文件夹中。



接下来我们看下合并内容的具体操作:


1、在工作表所在文件夹外新建一个工作簿,用来放置汇总的数据。打开新建工作簿,在【数据】选项卡下点击“新建查询”,选择“从文件夹”导入,在弹出的对话框中,“文件夹路径”找到需要合并的这几个工作表所在的文件夹,点击确定。或者直接复制该文件夹的路径复制粘贴也可以。



2、点击“确定”后进入了PowerQuery界面,文件夹下的所有文件基本信息被提取出来,包括文件名、后缀名、文件创建时间、文件完整路径等信息。点击“转换数据”,进入PowerQuery编辑器,在“添加列”里点击“自定义列”,输入自定义列公式=Excel.Workbook([Content]),这里要注意首字母的大小写。



3、点击“确定后”,点击新添加的自定义列扩展按钮,取消勾选“使用原始列名作为前缀”,接着在Data列再次点击扩展按钮,确定,点击鼠标右键选择则“删除其他列”。在开始选项卡里,选择“关闭并上载至”,将数据加载至现有工作表。最后对数据稍微处理即可。



PS:如果是要把多个工作表内容合并到同一个工作簿里,同时内容仍然保存在对应的不同工作表里,也就是把不同工作簿里的不同工作表,合并到同一个工作簿里面储存。如果要实现这样的效果,我们可以利用代码来实现。


在新的工作簿中,点击鼠标右键选择“查看代码”,复制以下代码:


Sub 工作薄间工作表合并()

Dim FileOpen

Dim X As Integer

Application.ScreenUpdating = False

FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="合并工作薄")

X = 1

While X <= UBound(FileOpen)

Workbooks.Open Filename:=FileOpen(X)

Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

X = X + 1

Wend

ExitHandler:

Application.ScreenUpdating = True

Exit Sub

errhadler:

MsgBox Err.Description

End Sub


复制完之后按F5键。