中企动力 > 商学院 > excel多文件合并
  • ?

    Excel | 多个表批量合并一起,告别手动复制粘贴

    柳橙

    展开

    如果是跟数据打交道的小伙伴(财务、人事、数据分析类),一天负责十几张表格应该是正常事情,但是这十几张表格大多数结构类似,主要由于上传的部门不一样或者是分公司上传过来,当你一遍遍复制粘贴,老板在聊天软件上不停地消息催促你的汇总表。

    就会有有趣的事情发生了。

    嘤嘤嘤,老板真不是我的问题啊(( ▼-▼ ))

    汇总神器:Power Query

    解决这个问题的神器就是它:Power Query

    首先这个Power Query可不是插件!他是Excel2016版本自带的一个功能,实际上呢也是微软PowerBI(可视化数据工具)的附带功能,微软的数据导入亲儿子。

    Power Query可应用的场景可多了:关系型数据库、Excel、文本和XML文件,OData提要、web页面、Hadoop的HDFS等等。

    【数据】菜单-右侧就是Power Query啦

    而数据整合以后,就建立好数据模型,为用Excel、Power Pivot、Power View、Power Map进行进一步的数据分析做好准备。

    并且这个设置都是自动化的!一次设置以后,后续右键刷新即可。

    什么?你只装2007版本?老哥现在是2018年了为,不过你要使用Power Query也不是不可以,那就要去官网下载了,相关链接:

    Power BI:

    https://powerbi.microsoft/zh-cn/desktop/

    Power Query:

    http://microsoft/zh-cn/download/details.aspx?id=39379

    老哥,为什么我下载了还是不行啊?

    老铁,WPS可没有这个功能........

    场景1:同文件,多sheet的合并

    同文件,多sheet的合并,我们来设置下(文件名:表1)

    表1~表4(表格格式一样,规范)

    每个sheet分别是一个代销商信息,所有列是一一对应的,没有列混乱的。

    那我们就新建一个新的sheet,取名“汇总表”

    【菜单栏】→【数据】 →【新建查询】→【从文件】 →【从工作簿】

    选择文件【表1】、“打开”后,进入【导航器】,可以看到文件中的4个sheet,勾选“选择多项”,然后勾选所需的sheet,点击右下角【加载】。

    稍等片刻,右边弹出“工作簿查询”窗口后会显示刚刚导入的四个表格。

    重点来了!点击【新建查询】→在下拉菜单中找到【合并查询】→选择【追加】→在追加窗中选择【三个或更多表】→选取数据→点击【确定】

    这时【查询编辑器】会自动打开看到几个sheet数据已经追加在一起了。 之后点击【关闭并上载】就可以看到了最后的我们要的【汇总表】了!

    表要修改数据?不要紧,在原sheet进行修改然后再汇总表进行右键刷新就可以。

    要追加新的Sheet?没事,下面就教下如何快速增加心得Sheet数据,不必会去再去导入:

    在汇总表中点击【数据】→【新建查询】→在下拉菜单中找到【合并查询→【编辑器】→点击【高级编辑器】

    在源 = Table.Combine({表1, 表2, 表4, 表3})后面添加正确的表名就可以,比如:源 = Table.Combine({表1, 表2, 表4, 表3,表4})→完成点击左上角的【关闭并上载】

    场景2:多个文件的合并

    假设你的文件还是刚才那几个数据源,但是Sheet变成文件了,但是在同一个文件夹,那么就是另外一个操作方法。

    注意文件夹不要有其他无关的文件,不然会影响计算。

    首先新建一个表格→【数据】→【新建查询】→【从文件夹】→在弹窗中选择目标文件夹路径确定

    然后点击右下角的【编辑】弹出【查询编辑器】

    新建自定义列:键入公式 =Excel.Workbook([Content])

    注意公式一定要一模一样,包括大小写、全半角、符号。

    然后点击最后一列【确认】两次,如图所示(必须点两下确认哦!要扩展两次。)

    然后我们在【转换】→【把第一行作为标题】→【地区】这一列进行筛选,取消地区的勾选,这样就不会有重复的标题出现了

    最后删除无关数据列,选中地区列,按住shift键,单击代销商列,这样正确的数据源都被选中后,在列标题上右键单击【删除其他列】

    完成后点击左上角的【关闭并上载】,数据就完成啦~

    本次教程结束

    谢谢各位观看~

    如有问题可以在后台提问或者私信我

    Excel | HR必备神器,员工生日自动化提醒

    图表说 | 如何六步制作商业级的柱状图

    图表说01-平时用的这些图表,可能会害了你

    技巧 | 日常工作时必备的 Excel 技能有哪些?

  • ?

    Excel | 零基础也会合并多工作表,只需鼠标按序点下去

    Yun

    展开

    今天分享一种不用函数,也不用SQL语句,还不用VBA代码的方法,这种方法只需要鼠标按步骤点一点就可以了!

    关键步骤提示

    第一步:打开查询编辑器

    选择“数据——新建查询——从文件——从工作薄”:

    找到要合并工作表的工作薄,确认导入:

    在导航器中勾选所有工作表,然后编辑:

    打开了导航编辑器:

    第二步:追加查询

    在导航编辑器中,选择“开始——追加查询”:

    将需要合并的9个工作表添加到右侧“要追加的表”,确定:

    9个工作表的数据就追加到了查询编辑器。

    第三步:关闭查询编辑器,并上载数据

    删除生成的多余表格,关闭工作簿查询:

    完成了多个工作表的合并。

    以上多个工作表合并的方法是利用EXCEL2016版本的“PowerQuery”,即数据查询。我的建议:工具还是跟上技术发展步伐的好。

  • ?

    EXCEL多个工作簿快速合并到一个工作表,一键搞定!

    Linda

    展开

    快到年底了,有小伙伴提出了如何快速将12个月的数据合并到一个工作表问题,比如将每个月不同销售员不同产品的销售数据汇总到一个工作表。今天我们就来分享一个快速将多个结构相同的工作簿数据汇总到一个工作表的方法,快速简单,一键搞定,提问的小伙伴速来围观!

    一、如下数据源,我们需要将12个月的产品销售数据工作簿合并到一个工作表中。

    二、效果展示

    三、实现步骤

    1、导入VBA模块:新建一个EXCEL汇总表,将sheet1更名为“汇总表”,删除其余的工作表,按ALT+F11 调出VBA 编辑器 →在工程窗口右击选择【导入文件】→选择VBA 模块文件(快速合并工作表和工作簿.bas)→关闭VBA 编辑器。导入后可以从【开发工具】→【宏】处看到“合并工作簿”和“合并工作表”两个宏。

    2、制作一键"合并工作簿"和一键"合并工作表"按钮。插入矩形,输入文字“合并工作簿”并调整文字颜色大小和对齐方式等,然后复制一个矩形,并将文字改为“合并工作表”。选中文字为“合并工作簿”的矩形,右键→指定宏→选择宏“合并工作簿”,选中文字为“合并工作表”的矩形,右键→指定宏→选择宏“合并工作表”。

    3、合并1至12月的12个工作簿数据到1个工作表。单击“合并工作簿”,首先选择需要合并的所有工作簿,点【打开】,将12个月的销售表合并到EXCEL汇总表。然后复制标题行到汇总表的第一行,再单击“合并工作表”,所有工作表即汇总到汇总表中了。

    我是EXCEL学习微课堂,分享EXCEL学习的小技巧,小经验。如一键合并工作表如果分享的内容对您有用,欢迎点赞、收藏、评论、转发,更多的EXCEL技能,可以关注“EXCEL学习微课堂”。 需要一键快速合并多个工作簿到工作表原文件和VBA代码的,请评论转发后私信联系我或留下您的邮箱!

  • ?

    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

    '*****************************************************************************************

  • ?

    超重量级的Excel多表“合并及汇总”功能,99.99%的人都没用过!

    de

    展开

    前言:最近总有同学提问

    怎么能合并多个工作簿?多个Excel表格汇总到一个表中?怎么把表分发给其他人做调查,收回后能批量合并到一个表中?

    合并多个表的确是一个难题,好象除了VBA也没有什么好办法,即使是新兴的power query也很难完成固定位置合并的问题。其实兰色在06年就发现了个很神奇的工作簿合并的功能,所以今天再把这篇旧文翻出来,希望能帮到大家。

    这个功能是小编昨天无意中发现的,为什么称它为超重量级Excel功能,小编先给你演示个操作。

    【例】在一个文件夹中有N个公司的Excel格式报表,需要把这些报表的数据合并到“报表.xlsx”中。

    只是点了一个按钮,然后选取了要合并的文件,刷刷刷,各公司的数据已全部合并过来了,是不是很神奇!(合并多个文件的多个工作表也适用)

    小编在合并过程中,使用了一个在Excel中隐藏很深的功能:比较和合并工作簿

    我们先把它揪出来:

    文件- 选项 - 快速访问工具栏 - 不在功能区域中的命令 - 找到“比较和合并工作簿”

    然后在快速访问工具栏中就可以看到它了,只是它是灰色的。

    它到底怎么才可以用? 和小编一起开始操作吧!

    1、先设置一个报表模板(可以有多个工作表),把格式设置好,然后设置成共享工作簿。

    2、把设置好的模板发放给各公司填写。

    3、收到各公司上缴的报表,放在一个文件夹里。

    4、合并时,点击“比较与合并工作簿"按钮,选取要合并的文件,然后.....如开始动画演示。多个Excel文件的合并瞬间完成!

    在实际工作中,这个功能可以省去非常大的工作量,毕竟把N多个报表汇总到一起是一件多么枯燥又费力的事情。

    但这个功能只是合并而不能汇总。

    别急,小编再教大家一个神技能,多个表格如何汇总!

    多个Excel表格汇总到一个表中,有一个神秘技巧帮你实现!

    如下图所示工资表中,含有多个月份的数据。要求在汇总表中把所有月份的数据汇总到一起。

    操作步骤:

    1、数据选项卡 - 现有连接 - 浏览更多。

    2、找到当前操作的excel文件。

    3、选取任一个表格名称

    4、【导入数据】窗口中,显示方式选“数据透视表”,放置位置选工资表A1单元格(也可以选新工作表)

    5、选取刚创建的数据透视表,然后点击 数据透视表工具 - 选项 - 更改数据源 - 连接属性。

    6、把下面的代码粘贴到命令文本框里。

    ------------------------------------

    select '3月' as 月份, * from [3月$] union all select '4月' as 月份, * from [4月$]union all select '5月' as 月份, * from [5月$]

    -------------------------------------

    代码说明:

    1) 具体的SQL语句一言两语也说不清楚,同学们只需要按下面的模式套用即可。有多少表,连接多少个。

    Select * from [表1$] union all Select * from [表2$] union all Select * from [表3$]....union all Select * from [表N$]

    2) '3月' as 月份: 是为三个表创建一个共同的字段(月份),其中引号内3月为自定义字符,用来区分工作表,只是不一定要和工作表名称一致。月份是数据透视表要用的字段名,也是自定义的。中间用 as 连接,放在select 之后 *号之前。如果不需要为三个表创建共同字段名,此部分可以省略。

    7、连接完成!下面就是对数据透视表的基本操作,添加行、列标标签和数据标签。

    8、调整格式和修改字段标题。最终效果如下图所示。

  • ?

    如何将多个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用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所示:

    图2

    3、如果合并的工作表中有重复记录,把数据添加到一个表(如“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所示:

    图6

    2、“导航器”中的“选择多项”前的复选框与“查询编辑器”中列字段右边的双箭头图标都不显示,图7是“导航器”中的“选择多项”前的复选框未显示的情况:

    图7

    3、只要勾选了 ie 中的“显示图片”,它们就会显示,因此,遇到窗口显示不正常的情况不要忘了查看 ie 是否为 9 以上版本与是否勾选了显示图片。

  • ?

    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文件或工作表合并成一个

    Rhyl

    展开

    应用场景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多文件合并

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP