如何利用PowerQuery合并文件下的文件

如题所述

1、以excel表格为例,如图所示,在excel表中有3组文件。

2、新建一个工作簿,在工具栏选择POWER QUERY,通过 EXCEL文件导入数据。

3、点击导入数据会出现下图的导航器,点击“多项选择”,选上要打开的三组表,最后点击“加载项”中的“加载到…”。

4、在“加载到…”的界面中选择“仅创建连接”,并勾选“将此数据添加到数据模型”,最后点击加载。

5、点击加载后就可得到创建后的链接,要对这三组数据表进行编辑,此时点击任意一组,用鼠标双击。

6、点击左边查询栏的三角符号可以看到加载过来的数据源链接情况,因为要对三组(三张)数据表进行追加到一张表上面,这里点击追加查询。

7、选择“三个或更多表”,依次将“二组”、“三组”添加到“要追加的表”中。

8、此时就完成了文件合并。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15

通过使用Power Query里的追加查询功能,可以让我们快速合并多个excel文件。但是如果文件数量大的话,第一次建立查询时的手工操作步骤会比较多。今天我们给大家分享如何通过Power Query动态合并同一文件夹下的多个Excel文件。

 

假设我们有各省分公司提交上的28份交易数据,且这些数据结构相同。

 

我们用Excel2016进行演示。点击“数据”–“从文件”–从“文件夹”

 


 

选择数据所在的文件夹,并点击“确定”

所有Excel文件的信息被加载进来了。在这里我们只需要保留”Content”列–选择“Content”列,并点击“开始”– ”删除其他列“。

 

 

点击“添加列“–”添加自定义列“,输入Excel.Workbook([Content],true),通过Excel.Workbook把Content 里的内容提取出来。

 

这里大家注意Excel.Workbook()的第二个参数,我们通过指定True,实现了默认情况下将第一行作为标题,省去了后面提升和筛选标题行的操作。

 


看一下Excel.Workbook()的参数要求:

第一个参数是我们要查询的Excel工作薄

第二个参数为可选参数,通过使用true,可以指定数据使用第一行做为标题。

 

继续我们的案例......

点击新建的Custom列右侧的扩展按钮,把所有字段扩展出来。

 

 

选中Custom.Data列,然后“删除其他列“

  

 

点选Custom.Data的扩展按钮,将数据扩展出来。

 


 

点击确定后即可得到最终的汇总结果。我们选择将数据加载到表,查看最终的合并结果。

 

所有省份的数据均已正确合并到一起。

 


 

通过使用此方法,我们可以快速对同一文件夹下的同结构Excel进行合并。而且Power Query已经记录下我们的操作步骤,将来数据更新后我们只需要点击“刷新“即可获得最新数据合并结果,一劳永逸。

 


 

不仅如此,如果此文件夹下新增了其它省份的文件,Power Query也会自动把数据合并进来。我们增加3个省份的数据进来。

  

 

 只需刷新PowerQuery即可得到最新的合并数据,是不是非常简单实用?

 

 

 

PowerPivot工坊原创文章,转载请注明出处。更多Power
BI信息和课程欢迎关注“PowerPivot工坊”的“从Excel到Power BI数据分析可视化”系列课程。

本回答被提问者采纳
第2个回答  2018-07-05
很多时候,我们会有这样的需求:同一个文件夹下有很多文本文件,每个文本文件的内容结构大致相同,而且文件的数量会随时增加。我们需要把该文件夹下
的所有文本文件中的内容合并到一个Excel工作表中,并且,当文件夹中有新的文本文件增加时,只要刷新工作表,即可得到最新数据。
在过去,这个要求可能要用VBA或者其他编程工具来完成,然而,有Power Query,解决这类问题只是分分钟的事儿。
假设某个文件夹下,有这样的3个文本文件(部门1,部门2,部门3,当然,可以是4个,5个,并可能随时增加)。我们需要用Power Query把该文件夹下的所有文本文件中的内容追加到同一个工作表中,以便进行分析。

我们看到,在该文件夹下,不仅仅有文本文件,还有Excel文件,这不要紧,只要我们明确地告诉Power Query只取该文件夹下的文本文件即可。首先,点击"Power Query》获取外部数据》从文件》从文件夹"按钮。

在接下来的“文件夹”对话框中,选择要合并的文本文件所在的文件夹的位置。然后点击"OK"和"确认"按钮。

这时进入Power Query查询编辑器界面,在这个界面中,我们看到了所选文件夹下的所有文件列表。在这里我们只对该文件夹下的文本文件感兴趣。因此,我们下面对该列表中的"Extention"(文件扩展名)列进行筛选。按照图示进行操作,只保留.txt文件。


选结果如下,我们看到,现在的文件列表中只保留了txt文本类型的文件,下面的任务是把文本文件中的内容显示在查询结果中。我们看到,在文件列表的第一列
的标题是Content(文件内容),在Content标题边上有一个"向下的两个小箭头"的图表,点击这个图表可以显示列表中文件的内容,我们点击它。

这时,我们看到了每一个文本文件的内容(从第22行开始,是第2个文本文件中的内容)。美中不足的是,除了第一个文件,后面的每一个文件的标题都被当做了普通记录,这可不行!


过观察发现,数据的第一列是工号,里面是文本型的数字,作为解决方案之一,我们可以通过把该列数据转换成数字,这时,不能转换成数字的内容会显示为错误符
号,然后我们再通过删除错误行,得到我们需要的结果(这里只是为了显示Power
Query的功能,事实上,我们工作中遇到的文本文件内容五花八门,需要各种灵活的方案)。
选中工号列,然后点击"转换》数据类型"按钮,在展开的下拉列表中选择"整数",我们看到,文本文件标题行中的文字"工号"变成了Error标识。我们下一步可以通过"删除错误"来删除这些行。

点击"主页》减少行》删除错误"按钮。

我们看到,错误行没有了(上图的第22行),这正是我们需要的结果。观察Power Query界面的右下角,可以看到,我们的前面所做的操作步骤都记录在这里了。

点击"主页》关闭&加载",把结果加载到Excel工作表。我们看到,指定文件夹下所有文本文件中的内容都已经合并单一的工作表中来了。当文件夹下有新的"同构"的文本文件时,我们只要点击"查询》数据》刷新"即可得到最新数据(或者鼠标右键菜单"刷新")。

更多关于PowerQuery的超凡能力,请百度电子书《Power Query,一学就会!》本回答被网友采纳
相似回答