多个Excel表合并成一个Excel表

一 使用说明

问题描述: 往往在进行数据统计分析前,会遇到数据分在不同的表里的情况,这时候就需要将多个表的数据先放到一个表里面汇总,然后再进行分析。比如班级需要汇总每个人的信息,几十人每个人都发了个人的信息表给一个人进行统计,统计人员可以进行一个一个表打开粘贴到汇总表里,但是这样不仅麻烦,而且还可能出错,这种做法最简单粗暴但却很浪费时间的。当然,如果是大批量的数据使用python或者其他语言汇总到一个表里也是可行的,如果是小批量的几百个数据,敲代码有点大材小用,这时候excel本身就可以解决。
使用条件:对多个同类型的excel数据表通过excel功能合并到一个excel表内。同类型是指每个一个excel表的表头都是一样的,里面的信息都是同类型的,比如表1、表2的内容分别是如下两张表的内容,可以看出两者的录入信息都是一样的。本excel是2016版的,其他版本应该都有该功能,但是具体的菜单栏内容可能会有小差异。
表1
《多个Excel表合并成一个Excel表》
表2
《多个Excel表合并成一个Excel表》

二 使用方法

1.数据处理:将要合并的数据统一放到一个文件夹内

ps:本文的示例数据是从招生信息网站找的,内容和上文表1表2的格式相同,分别在四个excel表内,统一命名为表1,表2,表3,表4,并放在一个文件夹内,如下图所示。

示例数据

《多个Excel表合并成一个Excel表》
2.在文件夹内新建一个汇总表,也可以命名其他的名字,用来汇总各个表格的信息

ps:本文的示例汇总表命名为汇总表,如下图所示

新建汇总表
《多个Excel表合并成一个Excel表》
3.打开汇总表表格,然后右击下方的sheet1按钮,会出现一个菜单,点击“查看代码”一栏,这时会出现VBA窗口
点击查看代码一栏
《多个Excel表合并成一个Excel表》
VBA窗口
《多个Excel表合并成一个Excel表》
4.在弹出的代码框中粘贴如下代码,并点击按钮运行,运行完后会弹出运行结果对话框,点击确定即可

Sub all_contents()

Dim MyPath, MyName, AWbName

Dim Wb As Workbook, WbN As String

Dim G As Long

Dim Num As Long

Dim BOX As String

Application.ScreenUpdating = False

MyPath = ActiveWorkbook.Path

MyName = Dir(MyPath & "\" & "*.xls")

AWbName = ActiveWorkbook.Name

Num = 0

Do While MyName <> ""

If MyName <> AWbName Then

Set Wb = Workbooks.Open(MyPath & "\" & MyName)

Num = Num + 1

With Workbooks(1).ActiveSheet

.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

For G = 1 To Sheets.Count

Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)

Next

WbN = WbN & Chr(13) & Wb.Name

Wb.Close False

End With

End If

MyName = Dir

Loop

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "共合并了" & Num & "个工作薄" 

End Sub

运行代码
《多个Excel表合并成一个Excel表》
运行结果对话框
《多个Excel表合并成一个Excel表》
5.返回原来的工作簿,可以看到数据汇总成果。但是却出现很多重复的表头,除了第一个表头,我们需要将其他多余的表头删除,当然,如果不怕麻烦,也可以选择一行一行的删除。如果想一次性处理,这时需要进行如下几步:
(1)将表数据进行全选,点击“查找和选择”按钮,在查找文本框内输入要查找的内容,内容可以是表头中的任意一个列名进行输入,然后点击”查找全部“按钮(本文使用了“院校名称”进行查找,也可以使用“年份”或者“考生类别”或其他列名)

查找对应的列
《多个Excel表合并成一个Excel表》
(2)查找的结果都会在查找框的下面全部列出来,对结果使用Ctrl+A全选,这时所有的内容都变蓝了。然后按住Ctrl键不放,点击第一个查询结果,这时第一行变白了,也就是没有选中。看一下表内的数据内容,可以看到,除了第一行的院校名称没有变色,其他行的院校名称都变成了灰色,或者说处于一种被同时选中的状态。
选中的行
《多个Excel表合并成一个Excel表》
(3)选择任意一个灰色被选中的单元格,然后右击该单元格,会有菜单弹出,点击删除一栏,在弹出的窗口中按照“整行”的方式删除,然后点击确定即可。这时所有选中的内容对应的行全部删除,这时表头问题就算解决了,数据汇总完成。
选中删除
《多个Excel表合并成一个Excel表》
按照行删除
《多个Excel表合并成一个Excel表》
删除后的结果表
《多个Excel表合并成一个Excel表》

三 另外一种合并方法

这种方法得出来的数据有点像数据透视表的结果,而且需要一个个导入,也推荐使用,,具体好坏,还请自行鉴别使用

1.源数据:不一定放在一个文件夹,一般考虑方便,放在一个文件夹里了,这里还使用原来的数据,可以新建一个汇总表。
2.打开汇总表,首先点击选中A1单元格,然后在“数据“一栏中,选择“现有连接”功能,会弹出的窗口,在窗口左下角点击“浏览更多”
现有连接窗口
《多个Excel表合并成一个Excel表》
3.这时需要选择数据源,对话框主要会按照如下步骤弹出:
(1)数据源对话框:点击浏览更多后会弹出选择数据源对话框,在对话框左边找到源数据文件所在的路径,然后从路径里选择表1,点击右下角的打开按钮。

数据源对话框
《多个Excel表合并成一个Excel表》
(2)选择表格对话框:点击打开后会出现选择表格对话框,在该对话框内的sheet1就是表1的表,如果表1工作簿内有两个sheet表,选择对应的sheet表就行,这里表1工作簿就一个sheet表,所以直接点击确定即可。
选择表格对话框
《多个Excel表合并成一个Excel表》
(3)导入数据对话框:点击确定后出现导入数据对话框,显示方式选“表”就行,不用动,“现有工作表”一栏下面需要填写单元格,这里“$ A $ 1 是选择A1单元格开始粘贴,如果不从A1开始粘贴,可以自行选择其他起始单元格。选好单元格后,点击确定即可。这时表1的数据就录入成功了,如下图所示。

导入数据对话框
《多个Excel表合并成一个Excel表》
录入的表1数据
《多个Excel表合并成一个Excel表》
4.如果需要导入其他表,重复1,2,3步即可,录入的四个表的结果如下图所示
录入四个表的结果
《多个Excel表合并成一个Excel表》
5.这里发现仍然会出现很多重复的表头,按照第一种删除方法是无效的,处理方法为:首先将内容全选;然后将内容复制;新建一个sheet表,然后以文本的方式粘贴到另外一张sheet表里;最后按照上文第一种方法里删除重复表头的方式将重复表头删除,即为所获得的汇总表。

    原文作者:安吉尼尔
    原文地址: https://blog.csdn.net/qq_31385713/article/details/94326805
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞