日常工作中我们经常会遇到多表合并的情况,手动粘贴复制过于麻烦,而且容易出错,今天分享三种汇总小技巧。

方法一 Windows批处理命令

如果需要汇总的表格是CSV格式(如下图所示,表格后缀为csv),那么一句windows批处理命令即可搞定。

打开网易新闻 查看更多图片

首先在需要合并表格的文件夹内新建一个TXT文件,在文本文档中输入语句:

copy *.csv all.csv

其中“all”为汇总成的表格名称,可随意修改。

之后保存文件,将文件后缀名修改为bat文件,如果修改之后还是文本文件的话,用第二种方法,将刚才的文件另存为,另存为界面需要注意两点:

打开网易新闻 查看更多图片

第一点:文件名记得带.bat的后缀;

第二点:保存类型选择【所有文件】

点击确定,就会出现一个可执行文件,类型为【windows批处理文件】。

双击此文件,当前文件夹内所有的csv表格就会被汇总成一个表格,如下图所示。

需要注意的是,此种方法只适用于CSV文本,不适用于Excel表格(xls/xlsx后缀的电子表格)!

方法二 VBA批量汇总

万能的VBA专治各种疑难杂症,当然可以用来汇总多个工作簿,话不多说,代码如下所示:

Sub 合并当前目录下所有表格()
Dim Wb As Workbook
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xlsx")
AWbName = ActiveWorkbook.Name
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
c = ThisWorkbook.Sheets("sheet1").UsedRange.SpecialCells(xlCellTypeLastCell).Row
If c = 1 Then c = 0
End If
ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets("sheet1").Cells(c + 1, 1)
Wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "已完成"
End Sub

首先在需要合并的文件夹内新建一个工作簿,打开并插入一个模块,粘贴入代码,并执行,程序运行数秒完成表格合并(这里运行时间视表格大小与多少而定),动图展示如下所示:

打开网易新闻 查看更多图片

此方法适用于CSV、xls、xlsx等表格文件,只需要对代码做相应的修改即可。

方法三 Excel power query

Excel 2016版本及其以上可以利用此方法进行数据汇总,不需要编写任何代码,只是操作步骤略长。

首先新建一个空白Excel表格(桌面或其它位置,别在需要合并的文件夹内新建),依次点击【数据】—【从文件】—【从文件夹】。

在查询编辑器中新建一个自定义列,依次选择【添加列】—【添加自定义列】,在公式内输入【=Excel.Workbook([Content])】,点击确定按钮。

之后可以发现出现一个新增的列Custom,接着点击Custom右侧的双向箭头,在弹出框内取消勾选【使用原始列名作为前缀】。

打开网易新闻 查看更多图片

取消勾选之后列又增加很多,找到Data列,点击其双向箭头,在弹出框内勾选【使用原始列名作为前缀】。

这时候我们可以发现,表格已经完成合并,列Data.column1至Data.column3使我们需要的数据,将其它多余的列一一删除。

按住Ctrl键,依次点选这三列,右键,选择|“删除其它列”,接着点击最上部【开始】——【关闭并上载】,合并之后的数据就会被加载到Excel工作表中。

再次声明,此种方法至适用于2016及其以上版本的Excel,其它低版本的Excel需要下载power query安装包,并进行安装才能使用。

小结

windows批处理命令汇总表格数据,VBA汇总表格数据,power query汇总表格数据,三种数据汇总小技巧,推荐给大家。