- ?
怎样把多个excel表格合并到一个表格里
祭奠
展开
1.需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel。如图所示:
2.用microsoft excel打开新建的excel表,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。如图所示:
3.然后把下面这些宏计算的代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示:
Sub 合并当前目录下所有工作簿的全部工作表()
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 & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
4.运行之后,等待10秒针左右,等运行完毕,就是合并完成之后,会有提示,点确定就可以了。查看合并后的数据,有5000多行,就是同一个文件夹里面17个excel表数据合并后的结果。效果如图所示。
(本文内容由百度知道网友茗童贡献)
- ?
Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格
任寄文
展开
在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 VBA 实现,比较麻烦。有了 Power Query 后,不用再写代码,直接用它就可以合并一个文件夹(可包含子文件夹)下所有的 Excel 文件与一个 Excel 文档中所有 Sheet。用 Power Query 合并文件,主要是通过查询导入的办法实现,以下就是它们的具体操作方法,实例中操作所用版本均为 Excel 2016。
一、Excel用Power Query把多个工作表Sheet合并到一个工作表
1、选择“数据”选项卡,单击“新建查询”,在弹出的菜单中依次选择“从文件”→ 从工作簿,打开“导入数据”窗口,定位到要合并的Excel文件所在的文件夹,双击要合并的文件(如 Power Query合并多个工作表),则弹出提示正在连接文件小窗口,连接完成后,打开“导航器”窗口,勾选“选择多项”,依次勾选“1月至6月”6个工作表,单击右下角的“加载”,打开“查询编辑器”窗口,选中左边的“1月”,单击“表格图标”,在弹出的菜单中选择“追加查询”,打开“追加”窗口,单击下拉列表框,在弹出的选项中选择“2月”,则把工作表“2月的数据”添加到“1月的数据”后面;同样方法添加“3月至6月的数据”,添加完成后,单击“查询编辑器”左上角的“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则“1月至6月的数据”添加到 Excel 文档中;操作过程步骤,如图1所示:
提示:当从 Excel 文件导入数据时,在最后一步把数据添加到 Excel 文档时,可能会弹出“初始化数据源失败”的提示,单击“确定”即可。
2、在“查询编辑器”窗口,追加合并数据时,除可以从“表格图标”选择“追加查询”外,还可以直接选择窗口右上角的“追加查询”,如图2所示:
图23、如果合并的工作表中有重复记录,把数据添加到一个表(如“1月”)后,可以单击“表格图标”,在弹出的菜单中选择“删除重复项”,如图3所示:
图3二、Excel用Power Query把多个文件合并成一个文件,仅把 Sheet 添加到工作薄并未合并数据
1、单击“数据”选项卡下的“新建查询”,依次选择“从文件”→ 从工作薄,打开“导入数据”窗口,定位到要合并的Excel文件所在的文件夹,双击要合并的文件(如 Power Query 合并查询),则所选文件导入到“导航器”窗口,勾选“选择多项”,依次勾选“Sheet1 和 Sheet2”,单击“编辑”,打开“查询编辑器”窗口,单击窗口右上角的“新建源”,在弹出的菜单中依次选择“文件””→ Excel,再次打开“导入数据”窗口,同样定位要合并文件所在文件夹,双击要导入文件(如 Power Query合并多个工作表),打开“导航器”窗口,再次勾选“选择多项”,并依次选择“1月至6月”六个工作表,单击“确定”,返回“查询编辑器”窗口,单击“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则两个 Excel 文件的8个工作表合并到一个 Excel 文件中;操作过程步骤,如图4所示:
2、以上演示了把两个 Excel 文件合并为一个文件,如果要把更多的 Excel 文件合并为一个文件,只需在“查询编辑器”窗口重复选择“新建源”,选择 Excel 文件即可。
三、Excel用Power Query把同一文件夹下所有文件合并成一个文件,文件夹下可包含子文件夹
1、选择“数据”选项卡,单击“新建查询”,依次选择“从文件”→ 从文件夹,打开“文件夹”窗口,单击“浏览”,打开“浏览文件夹”窗口,定位到要合并的 Excel 文件所在的父文件夹,选择要合并的 Excel 文件所在文件夹,单击“确定”,打开“查询编辑器”窗口;选中第三列,按住 Shift,再选中第八列,右键选中的列,在弹出的菜单中选择“删除列”,把它们删除;选择“添加列”选项卡,单击“添加自定义列”,打开“添加自定义列”窗口,在“自定义列公式”下输入 =Excel.Workbook([Content]),单击“确定”;返回“查询编辑器”窗口,选中 Custom 列,单击 Custom 右边的双箭头图标,在打开的小窗口中,不勾选“使用原始列名作为前缀”,单击“确定”;单击 Custom.Data 列选中它,再单击 Custom.Data 右边的双箭头图标,在打开的窗口中,勾选“使用原始列名作为前缀”,单击“确定”;把第一至第四列和后三列删除;选择“开始”选项卡,单击“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则所选文件夹下的全部 Excel 文件合并到一个文件;操作过程步骤,如图5所示:
2、提示:在“自定义列公式”下输入的公式 =Excel.Workbook([Content]),是区分大小写,注意不要输错。
四、Excel Power Query 不显示“多项选择”的原因及解决方法
1、Power Query 要求浏览器版本在 ie9 以上;另外,如果浏览设置了不显示图片,即没有勾选“显示图片”,如图6所示:
图62、“导航器”中的“选择多项”前的复选框与“查询编辑器”中列字段右边的双箭头图标都不显示,图7是“导航器”中的“选择多项”前的复选框未显示的情况:
图73、只要勾选了 ie 中的“显示图片”,它们就会显示,因此,遇到窗口显示不正常的情况不要忘了查看 ie 是否为 9 以上版本与是否勾选了显示图片。
- ?
Excel如何用VBA自动合并同目录下的多个excel工作簿文件
甄新波
展开
在excel的使用过程中,有时候我们需要将同目录下有着相同标题的多个excel工作簿合并到一个excel工作簿中,比如下面这种情况,5个年级的学生名单合并到一个表里面去。
常用的做法是手工打开每个文件,复制粘贴到学生名单汇总一个表里去。
这里介绍一个偷懒的方法,用VBA代码自动合并。代码分4段,第1段是主代码,后面3段是自定义函数。建议把代码复制粘贴到个人工作簿的模块里,方便调用。打开学生名单汇总.xlsx ALT+F8运行该代码。
以下是具体代码,复制粘贴
Sub 同目录下合并多个excel工作簿()
'On Error Resume Next '// 发生错误,自动执行下一句,就是忽略错误
Application.ScreenUpdating = False '//关闭屏幕刷新
Application.DisplayAlerts = False '//关闭系统提示
t = Timer '//开始时间
Set SH0 = ActiveWorkbook.Worksheets(1)
SH0.Cells.Clear '//清空保存区域,全部数据第一行是标题行,且只占一行,无合并单元格
ARR = FileAllArr(ActiveWorkbook.Path, "*.xlsx", ActiveWorkbook.Name, False) '//详见函数说明
SHName = "sheet1" '//要求所有工作簿内需要统计的工作表名称相同,
For i = 0 To UBound(ARR)
Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ARR(i) '//Excel2007
' Str_coon = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=yes';data source=" & & ARR(I) '//OFFICE2003,根据情况选择
StrSQL = "SELECT *,'" & GetPathFromFileName(ARR(i), False) & "' AS 来自工作簿 FROM [" & SHName & "$]" '//SQL语句自己发挥吧,这里是精髓。
IROW = SH0.Range("A1048576").End(3).Row + 1
If IROW <= 2 Then
IROW = 1
Crr = GET_SQLCoon(StrSQL, Str_coon, True) '//第一次,带上标题
Else
Crr = GET_SQLCoon(StrSQL, Str_coon, False)
End If
SH0.Range("A" & IROW).Resize(UBound(Crr, 1) + 1, UBound(Crr, 2) + 1) = Crr '//粘贴查询结果
Next
Application.ScreenUpdating = True '//恢复屏幕刷新
Application.DisplayAlerts = True '//恢复系统提示
MsgBox "汇总用时:" & Format(Timer - t, "#0.0000") & " 秒", , "北极狐提示!!" '//提示所用时间
End Sub
Rem 下面是为方便整理的自定义函数,上面的代码执行必不可少哟!!
'*******************************************************************************************************
'功能: 查找指定文件夹含子文件夹内所有文件名或文件夹名(含路径)
'函数名: FileAllArr
'参数1: Filename 需查找的文件夹名 不含最后的"\"
'参数2: FileFilter 需要过滤的文件名,可省略,默认为:[*.*]
'参数3: Liwai 剔除例外的文件名,可省略,默认为:空,一般为:ThisWorkbook.Name
'参数4: Files 是否只要文件夹名,可省略,默认为:FALSE
'返回值: 一个字符型的数组
'使用方法:arr = FileAllArr(ThisWorkbook.Path, "*.xls", ThisWorkbook.Name,false)
'*******************************************************************************************************
Public Function FileAllArr(ByVal Filename As String, Optional ByVal FileFilter As String = "*.*", Optional ByVal Liwai As String = "", Optional ByVal Files As Boolean = False) As String()
Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象
Set Did = CreateObject("Scripting.Dictionary")
Dic.Add (Filename & "\"), ""
i = 0
Do While i < Dic.Count
Ke = Dic.keys '开始遍历字典
MyName = Dir(Ke(i), vbDirectory) '查找目录
Do While MyName <>""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then '如果是次级目录
Dic.Add (Ke(i) & MyName & "\"), "" '就往字典中添加这个次级目录名作为一个条目
End If
End If
MyName = Dir '继续遍历寻找
Loop
i = i + 1
Loop
Dim arrx() As String
i = 0
If Files = True Then '//是否只输出文件夹名
For Each Ke In Dic.keys '以查找总表所在文件夹下所有excel文件为例
ReDim Preserve arrx(i)
If Ke <> Filename & "\" Then '//自身文件夹除外
arrx(i) = Ke
i = i + 1
End If
Next
FileAllArr = arrx
Else
For Each Ke In Dic.keys '以查找总表所在文件夹下所有excel文件为例
MyFileName = Dir(Ke & FileFilter) '过滤器:EXCEL2003为:*.xls,excel2007为:*.xlsx
Do While MyFileName <>""
If MyFileName <> Liwai Then '排除例外文件
ReDim Preserve arrx(i)
arrx(i) = Ke & MyFileName
i = i + 1
End If
MyFileName = Dir
Loop
Next
FileAllArr = arrx
End If
End Function
'****************************************************************
'*'****************************************************************************************************
'函数: GetPathFromFileName 根据全路径获得文件名
'参数1:strFullPath 完整路径
'参数2:kzm true 返回字符串含扩展名
'参数3:strSplitor 各级文件夹分隔符
'作用: 从完整路径获取返回: 文件名(true带扩展名)
'使用方法: msgbox GetPathFromFileName("C:\windows\text.txt",true)
'*'****************************************************************************************************
Public Function GetPathFromFileName(ByVal strFullPath As String, Optional ByVal kzm As Boolean = True, Optional ByVal strSplitor As String = "\") As String
Dim FileName1 As String
Dim FNAME As String
FileName1 = Left$(strFullPath, InStrRev(strFullPath, strSplitor, , vbTextCompare))
FileName1 = Replace(strFullPath, FileName1, "")
If kzm = False Then
GetPathFromFileName = Left(FileName1, InStr(FileName1, ".") - 1)
Else
GetPathFromFileName = FileName1
End If
End Function
'*'****************************************************************************************************
'*****************************************************************************************
'函数名: GET_SQLCoon
'函数功能: 获得指定SQL的查询结果,自定义连接字符串,可以连接各种数据库
'返回值: 返回一个二维数组
'参数1: StrSQL 字符类型 SQL查询语句
'参数2: Str_coon 字符类型 数据库连接语句
'参数3: Biaoti 可参数选 是否输出标题,默认带有标题
'使用方法: Arr = GET_SQLCoon(StrSQL,Str_coon,true)
' Arr(0,1) '//数组第一行为标题行,从i=1 开始是数据
' Sh2.Range("A2").Resize(UBound(ARR, 1) + 1, UBound(ARR, 2) + 1) = ARR
'*****************************************************************************************
Public Function GET_SQLCoon(ByVal StrSQL As String, ByVal Str_coon As String, Optional Biaoti As Boolean = True) As Variant()
On Error Resume Next ' 改变错误处理的方式。
Dim Cn, RS
Err.Clear
Set Cn = CreateObject("Adodb.Connection") '//新建一个ADO连接
Set RS = CreateObject("adodb.recordset")
Cn.Open Str_coon
RS.Open StrSQL, Cn, 1, 3
If RS.RecordCount > 0 Then '//如果找到数据
If Biaoti = True Then
ReDim ARR(0 To RS.RecordCount, 0 To RS.Fields.Count - 1)
For a = 0 To RS.Fields.Count - 1 '//导入标题
ARR(0, a) = RS.Fields(a).Name
Next
For i = 0 To RS.RecordCount - 1 '//导入数据
For a = 0 To RS.Fields.Count - 1
ARR(i + 1, a) = RS.Fields(a).Value
Next a
RS.MoveNext
Next
Else
ReDim ARR(0 To RS.RecordCount - 1, 0 To RS.Fields.Count - 1)
For i = 0 To RS.RecordCount - 1 '//导入数据
For a = 0 To RS.Fields.Count - 1
ARR(i, a) = RS.Fields(a).Value
Next a
RS.MoveNext
Next
End If
Else '//如果没有找到数据
ReDim ARR(1, 1)
ARR(0, 0) = ""
End If
GET_SQLCoon = ARR
Cn.Close '//关闭ADO连接
Set RS = Nothing
Set Cn = Nothing '//释放内存
End Function
'*****************************************************************************************
- ?
100个Excel表格文件要合并?教你一招轻松搞定,一劳永逸!
城太深
展开
之前写过一篇文章,介绍如何合并一个 Excel 文件中的多个工作表。
以后如果碰到要合并12个月的
每一年的
全部学院的
还有来自五湖四海的
各种五花八门成千上万行的数据,都可以在几秒内轻松搞定。
不用函数公式,不用编写VBA代码,还能自动更新。
体验了这一个功能,我就对 Excel 2016 的查询功能爱不释手了!还能不能更牛C一点呢?
很多时候,我们要汇总合并的表格不在一个文件里头。
比如,做好报名人员信息登记表模板,群发给了100个训练班的班主任。他们登记好表格表格发回给我,肯定是分开一个个文件的呀。有没有办法把他们自动合并到一个汇总表里头呢?
再比如,我每周都要汇总一次公司所有产品的销售明细,拿到手的却只有单周数据。难道我还要每周复制粘贴,每周重做一遍统计工作吗?
这不科学
……
幸好幸好,查询这个功能还可以合并多个文件中的多个表格。操作起来和汇总单个文件中的多个表差不多,只是多了几步而已。
以每个业务员发出的赠品明细表为例。每人提交的表格文件,统一放入一个文件夹中。
接下来我们就看如何,用5个步骤,将这个文件夹里的所有表格数据全部提取出来合并到一个新的汇总表中。
第一步:导入文件夹
在数据选项卡下,【新建查询】-选择【从文件】-【文件夹选项】。
导入文件夹后,跟随提示进入查询编辑器。
上一篇文章,在导入单个Excel文件中的多个工作表后,直接就开始对数据进行整理操作了。
但是这一次导入的是文件夹中的多个Excel文件,目前为止获取到的数据,都是Excel工作簿的名称、格式、创建日期等文件基本信息,还没有文件夹、工作簿的“外壳”包裹着。
所以需要额外做的是穿透文件夹、工作簿,提取到每个工作簿中的表格和数据。
第二步:提取工作簿
要穿透工作簿提取出工作表,需要在查询编辑器中创建一个辅助列。所以,先选择【添加列】-【添加自定义列】。
然后添加自定义对话窗中,写入一条公式。
(别担心,很短,只要一模一样复制过去就可以了)
=Excel.Workbook([Content])
注意,一定要一模一样,包括字母大小写。
一定要用英文符号!一定要用英文符号!一定要用英文符号!
重要的事情说三遍
点击确定以后,就将文件夹中的全部 Excel 工作簿放入编辑器中。
第三步:提取工作表
点击自定义列旁边的扩展按钮,展开按钮工作表列表。
再继续提取工作表中的详细数据。
第四步:提取数据
点击Custom.Data列旁的扩展按钮,就能展开明细数据。
第五步:清洗数据
后面的操作就和上一篇操作步骤一样了。再简单复习一遍。选中需要保留的数据列,然后删除其他列。
将第一行设为标题行。
去除标题同名数据行、Null空行,筛选出最终需要的汇总数据。
第六步:完成合并
将加工完成的数据加载至工作表中。以后再添加新工作表,直接丢进文件夹,然后打开合并中刷新查询就行。
Tips:如果从管理系统中导出的文件是 CSV、TXT 等文本格式的文件就更加简单。从文件夹导入数据到查询编辑器之后,不需要写公式提取工作表,直接将 Content 列扩展即可。
扩展得到数据列表后,继续扩展得到详细数据,再按照上述步骤清洗数据,就能达到同样的查询效果。
看,就是简单的点击操作,最复杂的也就是一行固定不变的简短代码,=Excel.Workbook([Content])
意思是来源于 Excel 软件的工作簿内容。
有了这一招,只要搭建好统计报表的框架,数据引用自合并以后的汇总表。以后有新的数据表,就丢进文件夹里 100 多份表格汇总、统计分析、别人几天的工作量,每月来一次。
就这样轻轻松松点击一下刷新,搞定!可以喝咖啡去咯~
- ?
如何将多个Excel文件合并成一个且保留原有数据?
蔺思烟
展开
如何将多个Excel文件合并成一个且保留原有数据?事实上,我们可以借用Excel宏命令来处理该操作,并且保留原有数据,建立多个Sheet页,具体操作请看下文多个Excel文件合并成一个的方法。
如何将多个Excel文件合并成一个且保留原有数据?
1、将需合并的Excel文件放在同一个文件夹中,并这个文件中新建一个Excel文件。
2、打开新建的Excel文件,按 Alt + F11 键,打开宏,选择视图→代码窗口。
3、将下面的代码拷贝进去:
Sub sheets2one() '定义对话框变量 Dim cc As FileDialog Set cc = Application.FileDialog(msoFileDialogFilePicker) Dim newwork As Workbook Set newwork = Workbooks.Add With cc If .Show = -1 Then Dim vrtSelectedItem As Variant Dim i As Integer i = 1 For Each vrtSelectedItem In .SelectedItems Dim tempwb As Workbook Set tempwb = Workbooks.Open(vrtSelectedItem) tempwb.Worksheets(1).Copy Before:=newwork.Worksheets(i) newwork.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "") tempwb.Close SaveChanges:=False i = i + 1 Next vrtSelectedItem End If End With Set cc = Nothing End Sub
4、点击运行选项运行宏命令。
5、之后弹出选择对话框,选择要批量合并的Excel名,确定即可。
6、程序运行完毕后,会自动生成一个工作簿,工作簿内包含所有需合并的Excel文件,将工作簿另存为即可。
以上步骤便是,合并后的Excel文档会献出多个Sheet页,我们可以很方便的切换了解。
- ?
如何把几个excel表格的内容合并到同一个表格里面?
傲晴
展开
把几个excel表格的内容,合并到同一张表格里面,如何操作?看小编给你演示。
第一步:把需要合并的表格放在同一个文件夹里面,然后再新建一个excel,如图:
第二步:打开“新建Excel2007”,鼠标右键单击Sheet1,选择“查看代码”并打开进去。
第三步:将下列代码粘贴进代码栏:
Sub 合并当前目录下所有工作簿的全部工作表()
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 & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
第四步:点击菜单栏的“运行”、“运行子子过程/用户窗体”,等待几秒后提示合并完成,点击确定。如图:
完成,这样就把3个表格的内容合并到同一张表格里面。
好了,如果觉得小编文章不错,欢迎关注、点赞、收藏。
- ?
合并多个Excel文件,不管什么版本的Excel或WPS都适用
宋幻桃
展开
昨日,分享了使用Power Query插件快速合并多个Excel的方法,可惜很多朋友表示还没用上Excel2016。所以,今天分享一个新方法,不管什么版本的Excel,或者WPS表格,都适用。
实例
将一个部门所有人半年的销售数据合并到一份Excel文件中。
思路
我们想获取单元格A1的内容,就会输入公式“=A1”;如果要获取Sheet1下的A1内容,就会输入“=Sheet1!A1”;如果要获取的在“解晴.xlsx”文件下,就会输入“='D:\数据\[解晴.xlsx]Sheet1'!A1”。基于此,我们可以不用打开Excel文件,便轻松合并多个Excel。
步骤1:提取Excel文件名称
在命令提示符中输入“dir /b Excel文件所在路径”获取所有Excel文件的名称,复制名称到一个空白Excel工作表中。然后复制A列所有的名称,选中“B1:H8”区域,按“Ctrl + V”粘贴,这样“A-H”列都粘贴上了Excel文件名。
为什么是“A-H”列呢,因为原数据就是这样的。
步骤2:Excel名称转换成一列
复制“A-H”列数据粘贴到Word文档中,选择“只保留文本”,然后使用“文本转表格”工具转换成一列数据的表格。
步骤3:创建辅助表,获取源数据单元格地址
将一列的Excel名称粘贴到汇总表的A列,在“B-I”列输入“A1-H8”,即要合并的Excel文件中数据的单元格地址。
复制“B1-I8”数据,然后在输入栏左侧的名称中输入“B9:I40”,按Enter键选中这块区域,最后按“Ctrl + V”粘贴,效果同步骤1。
步骤4:输入公式,连接Excel文件名和数据地址
J1公式:="t='D:\数据\["&$A1&"]Sheet1'!"&B1
公式中的“D:\数据\”是Excel文件路径,“Sheet1”是要合并的Excel文件中的工作表名称。
公式输入后,向右填充,直到结果显示“H1”为止。然后选中这些公式,双击填充所有的公式。
步骤5:粘贴为数值,然后将文本公式转换成真正的公式
复制步骤4的结果,选择性粘贴为数值。然后将“t=”替换为“=”。
所有Excel文件的内容就都合并到一起啦。
看起来似乎有点复杂,但其实很容易,只要稍微理解一下整个的思路就好了。
方法优点:
不限Excel版本和 wps版本,比Power Query灵活。可用于合并多个工作表。想提取几行或几列都可以,取决于你在创建辅助表时,输入了多少单元格地址。本例中的“A1-H1”是标题行,创建辅助表时,删除“A1-H1”,就不会多次提取到标题了。
谢谢阅读,每天学一点,省下时间充实自己。欢迎点赞、评论、关注和点击头像。
- ?
Excel技巧:多个相同excel表格如何合并到一起!
温寄柔
展开
从事互联网行业的小编们,经常会遇到一个问题,就是导出多个Excel表格数据,经常是多个数据合并到一个excel表格里来做数据分析,那么如何快速的合并excel表格呢?
1、把所有excel文件放在同一个文件夹里。如下图:
2、打开汇总excel,并右键单击sheet1,找到“查看代码”,单击进去。进去之后就看到了宏计算界面。如图所示:
3、然后我们把下面代码复制进去,然后找到工具栏上面的“运行”下的“运行子过程/用户窗体”,代码如下,如图所示:
Sub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, AWbNameDim Wb As Workbook, WbN As StringDim G As LongDim Num As LongDim BOX As StringApplication.ScreenUpdating = FalseMyPath = ActiveWorkbook.PathMyName = Dir(MyPath & "\" & "*.xls")AWbName = ActiveWorkbook.NameNum = 0Do While MyName <> ""If MyName <> AWbName ThenSet Wb = Workbooks.Open(MyPath & "\" & MyName)Num = Num + 1With Workbooks(1).ActiveSheet.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)For G = 1 To Sheets.CountWb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)NextWbN = WbN & Chr(13) & Wb.NameWb.Close FalseEnd WithEnd IfMyName = DirLoopRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"End Sub
运行几十秒钟就OK啦!如果表格数据过多的话,时间会久一点。
- ?
WPS Excel: 如何合并多个Excel文件
董白筠
展开
合并多个表格文件,Excel中可以使用power query,WPS中可以使用数据透视表来完成,两者各有优缺点。
例如,有下面3个表格,表格的标题行中有部分内容相同。怎样合并这样的3个文件呢?
步骤1:将这3个文件存放到同一个文件夹下(很重要),随意打开一个文件(例如01.xlsx),再新建一个空白表格文件。
步骤2:在空白表格文件中,插入数据透视表,选择“使用多重合并计算区域”——“选定区域”——“创建单页字段”——“下一步”。
步骤3:用鼠标选取01.xlsx文件中所有的数据,点击“添加”,就会在“所有区域”看到该数据区域;接着一一选取其他文件区域。
文件很多的话,这一步也是很麻烦的。可以使用BAT命令先将文件重命名成类似的名字,这样选取了第一个表格数据之后,后面的数据就不需要打开表格选取,而是直接修改文件名字。每个表格中的数据不同,在添加区域时,可以将区域设置的大一些,例如使用“$1:$4”(表示表格前4行)。
步骤4:数据选取完毕,就可以点击“确认”键创建一个新的数据透视表,会看到如下的汇总结果。界面中部的数据就是各个文件中的原始数据。
步骤5:还可以将筛选器下的“页1”拖到行字段下,这样我们就会看到界面左侧有“项1”、“项2”和“项3”,分别对应步骤3所添加的文件啦。
步骤6:如果某个原始表格中的数据变更了,可以在汇总表格上右键一下,点击“刷新”,汇总表数据也会随之更新。
和Excel的Power Query相比:
1. Excel中操作更简单一些,不过也只有Excel2016以上的版本才支持。
2. Excel的power query合并表格文件时,要求每个表格中的工作表名称相同,列数也必须相同,否则合并后数据会有遗漏或差错;使用数据透视表则没有这个限制。
3. 如果表格中列标题相同、行标题不相同,使用Excel的power query则不能合并;使用数据透视表则可以合并。
4. 原始数据更新时,两者都可以同步更新。
5. 数据透视表合并原始数据的同时还能汇总数据。
谢谢阅读,欢迎点赞、评论、关注和点击头像。
- ?
如何将多个Excel文件或工作表合并成一个
雪晴
展开
应用场景1
老板:小王啊,调查一下大家对我们人事部的服务有什么意见或建议没。小王:好的。
小王做好一份Excel调查表模板,分发下去。然后收到了100份结果文件。
应用场景2
老板:小王啊,还有5分钟我就要开会了,我们12家门店的销售情况表汇总到一起了吧。
小王应该怎么合并这些Excel文件?一个一个复制到手软吗?
合并多个Excel文件
第一步:将所有的Excel调查表文件存放在同一个文件夹下。打开一个空白Excel文件,点击“新建查询”,选择“从文件夹”中导入,然后粘贴所有Excel调查表所在路径。
第二步:在“组合”下拉菜单中选择“合并和编辑”。
第三步:选中要合并的工作表。
第四步:点击Power Query编辑器中的“关闭并上载”。
稍等片刻,所有的文件就都合并到同一个工作表啦。
可以看到表头的两行重复显示了很多遍。使用定位或筛选功能,删除多余的行即可。
当然,也可以在上述步骤4“关闭并上载”之前删除一些行。
更新数据
小王好开心,100份Excel调查表就这么轻松地合并到一起了。小丽:小王,我的调查表修改了一下,发一份新的给你吧。小王……
小王,莫急,直接在原来的文件夹下替换小丽的调查表,然后在合并后的汇总表上,右键一下,点击“刷新”即可。
合并多个Excel工作表
和合并excel文件类似,用Power Query同样可以快速完成。
第一步:打开一个空白Excel文件,点击“新建查询”,选择“从工作簿”中导入,然后打开需要汇总的Excel文件。
第二步:选中所有要合并的工作表名称,然后点击“编辑”。
第三步:按照图示的步骤,点击“追加查询”,然后将所有的工作表添加进来。
最后点击“关闭并上载”,所有工作表内容就合并到一个工作表下啦。同样的,如果原始的表格数据更新,在汇总表上刷新一下即可同步更新数据。
注意:以上步骤都基于Power Query插件,Excel2016才支持。使用低版本的Excel或WPS的朋友请查考明日的文章。
相关阅读:《多个word文档怎么合并》。
谢谢阅读,每天学一点,省下时间充实自己。欢迎点赞、评论、关注和点击头像。
怎么合并excel文件
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并