Excel:使用powerquery进行多表合并

​注:本文原创为:https://www.cnblogs.com/fanyu2019/p/11175827.html,本文在原创的基础上添加修改了一点内容

目录

  • 一. 单工作簿多工作表合并
  • 二. 多工作簿单工作表合并
  • 三. 多工作簿多工作表合并
  • 注意事项:

工作中常遇到需汇总多张表进行分析的情况,本文以某公司销售数据(数据为虚构数据)为例介绍使用powerquery合并excel表的方法。

本文中所使用数据格式相同,且工作表中第一行为标题行,数据不规范可能使合并汇总数据存在问题或合并不成功,注意事项请移至文末进行查看。同时本文操作工具为office365。

多表合并存在多种情况:
Excel:使用powerquery进行多表合并_第1张图片

一. 单工作簿多工作表合并

原始数据中存在多sheet页,进行单工作簿的多工作表合并,先看原始数据及处理之后的数据:

原始数据▼
Excel:使用powerquery进行多表合并_第2张图片

最终数据▼
Excel:使用powerquery进行多表合并_第3张图片

第一步:新建查询(进入powerquery编辑器)
点击【数据】>【获取数据】>【来自文件】>【从工作簿】,选择原始数据,导入

第二步:追加查询
点击【主页】>【追加查询】>【追加查询】,选择“三个或更多表”,依次添加工作表,得到合并后的数据
Excel:使用powerquery进行多表合并_第4张图片

第三步:关闭并上载

点击【关闭并上载】>【关闭并上载】,可在excel中查看汇总后的数据
Excel:使用powerquery进行多表合并_第5张图片

第四步:excel中对数据进行最后处理

在excel中对数据进行简单处理,得到最终汇总数据
Excel:使用powerquery进行多表合并_第6张图片

二. 多工作簿单工作表合并

原始数据含有多个工作簿,但每个工作簿中只有一个工作表**(注意:这里的单工作表是指每个工作簿中的工作表只有一个,且工作表的名称需要一致!!如果每个工作簿中只有一个工作表,但是表名不一致,需要按照本文稍后提供的第三种方法即多工作簿多工作表的方法进行合并)**,进行多工作簿的单工作表合并,先看原始数据及处理之后的数据:

原始数据▼
Excel:使用powerquery进行多表合并_第7张图片

最终数据▼
Excel:使用powerquery进行多表合并_第8张图片

第一步:新建查询(进入powerquery编辑器),合并
点击【数据】>【获取数据】>【来自文件】>【从文件夹】,选择原始数据,导入,点击【组合】>【合并和编辑】,选择工作表,点击【确定】,在powerquery中可查看到已合并的数据

第二步:关闭并上载
查看合并后的数据,点击【关闭并上载】

注:由于第三个工作表中存在编辑过的空行,合并时空行也进入到合并的数据中,可在合并之前对工作表数据进行处理

第三步:excel中对数据进行最后处理
在excel中对数据进行简单处理,得到最终汇总数据

三. 多工作簿多工作表合并

实际工作中常常存在需要合并文件夹中的excel数据,且每个工作簿中含有多张工作表,进行多工作簿的多工作表合并,先看原始数据及处理之后的数据:

原始数据▼

Excel:使用powerquery进行多表合并_第9张图片

最终数据▼
Excel:使用powerquery进行多表合并_第10张图片

第一步:新建查询(进入powerquery编辑器)

点击【数据】>【获取数据】>【来自文件】>【从文件夹】,选择原始数据,导入,点击【转换数据】

第二步:删除其他信息,保留content及name列

保留content及name列,点击【主页】>【删除列】>【删除其他列】。这些删除的列一般我们都是用不到的,所以我们直接删除提高效率

第三步:自定义列,返回工作表记录

点击【添加列】>【自定义列】,输入新列名及公式:Excel.Workbook([Content],true)

注:
公式Excel.Workbook([Content],true)需区分大小写

Excel:使用powerquery进行多表合并_第11张图片

公式解析:

  • 功能:从Excel工作簿返回工作表的记录
  • 参数:Excel.Workbook( workbook as binary, optional useHeaders as nullable logical, optional delayTypes as nullable logical) as table
    第一个参数是要解析的字段,返回一个table,第二个是可选参数逻辑值,参数使用true,就是指定数据使用第一行做为标题。

第四步:展开数据并删除多余数据

  1. 选中第三步中返回的table列及name列,点击【主页】>【删除列】>【删除其他列】

    注:保留name列为保留数据来源,若不需要可以删除

  2. 点击table列,进行展开

  3. 展开的数据中,选中table列及数据源列,点击【主页】>【删除列】>【删除其他列】

  4. 展开table列

Excel:使用powerquery进行多表合并_第12张图片

注:若需保留数据来源(工作簿名、工作表名),在数据处理中对数据来源列进行保留即可

第五步:关闭并上载

点击【关闭并上载】>【关闭并上载】,可在excel中查看到已合并的数据

第六步:excel中对数据进行最后处理

在excel中对数据进行简单处理,得到最终汇总数据

注:当文件夹中的数据改变中,可右键进行【刷新】即可更新数据

注意事项:

  1. 数据格式:此方法仅适用于数据格式相同的数据表合并

  2. 合并单元格:工作表中应避免出现合并单元格

  3. 空行:若工作表中存在编辑过或有格式的空行,合并时空行也会保留,需在合并之前对工作表数据进行处理:Ctrl+shift+↓选中所有空行,Ctrl±删除所有空行

  4. 筛选很多的下拉值时只会显示前1000个值,如果想要筛选1000后的值可以考虑在原始数据中改变一下值的位置

你可能感兴趣的:(Excel&VBA,excel)