powerquery是一个非常强大的数据抓取工具,excel2016自带power query功能,可以直接使用,但excel2010、2013版本需要自行安装。
下载地址:
/zh-cn/download/details.aspxid=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键。