
7.2 多个文件的快速合并:Power Query
在工作当中经常会发生同一类数据分到多个工作表,甚至是多个工作簿文件保存的情况(见图7-14)。例如:
(1)有的人在登记数据的时候会做得很细,按照一天一个工作表保存。
(2)有的人可能会按季度或者按年度进行分表格去登记。
(3)有的公司可能会分不同的店面,各自一个工作簿文件进行登记。

图7-14
这种情况下,我们就要把不同工作表、不同工作簿当中的内容快速自动合并在一起,生成一个“完整的数据源表”。
如果手工做的话,需要把每个表里的数据都复制,然后再粘贴到一张汇总表里,如果有100个门店,每个门店按12个月分别登记,就要复制、粘贴1 200次,而且还有可能会出错,费力不讨好。
Excel 2016中的Power Query能轻松完成上述工作。
1. 选择需要合并的文件夹
将需要合并的文件,全部关闭后,新建一个空白工作簿→选择“数据”选项卡→“新建查询”→选择“从文件”→“从文件夹”(见图7-15)。

图7-15
2. 选择需要合并的文件
(1)在弹出的“文件夹”对话框,单击“浏览”(见图7-16)。
(2)在弹出的“浏览文件夹”对话框→单击目标文件夹→如素材文件提供的“07-讲课素材-我要合并的文件”文件夹→单击“确定”(见图7-17)→返回到“选择文件夹”对话框→单击“确定”。确定后,Excel将自动打开Power Query的编辑器界面(见图7-18)。

图7-16

图7-17
3. 删除除Content以外的其他列
编辑器界面当中,出现了我们刚刚准备合并的3个文件:北京分公司.xlsx、广州分公司.xlsx、深圳分公司.xlsx。第1列Content代表着这些表里的内容,后面的列对应的是文件的名称、文件类型的后缀名、日期等。这些列只是为了让我们检查一下这个文件的来源对不对。在数据汇总的时候,它们是没有意义的,所以要把这些列删掉。
选中第1列Content→右击选择“删除其他列”(见图7-19)。

图7-18

图7-19
4. 将Content列中的Binary解析为Excel表格文件
(1)选择“添加列”选项卡→单击“添加自定义列”(见图7-20)。

图7-20
(2)在弹出的“添加自定义列”对话框→添加“新列名”,如“凌祯的query大法”→在“自定义列公式”输入:Excel.Workbook([Content],true)→单击“确定”(见图7-21)。
读书笔记
______________________________________________________
______________________________________________________

图7-21
5. 将展开的Excel Table文件展开为一个个独立的工作表
(1)单击“凌祯的query大法”字段名右侧的展开按钮(见图7-22)。

图7-22
(2)在展开的字段列表中,仅选中Data,单击“确定”(见图7-23)。

图7-23
温馨提示
取消选中“使用原始列名作为前缀”,在生成的汇总表中就不会显示刚刚自定义的列名了。
6. 把Data字段下的Table展开为具体信息
(1)单击Data字段名右侧的展开按钮(见图7-24)。

图7-24
(2)在展开的字段列表中,选中“选择所有列”→单击“确定”完成(见图7-25)。

图7-25
(3)在解析的明细表界面,选择第1列Content列→右击选择“删除”,即仅保留数据源表中的5列数据(见图7-26)。

图7-26
7. 把查询到的内容,同步到Excel中
(1)选择“开始”选项卡→“关闭并上载”→“关闭并上载至”(见图7-27)

图7-27
(2)在弹出的“加载到”对话框→选择要上载的位置,如“新建工作表”→单击“加载”(见图7-28),加载完毕后的效果如图7-29所示。

图7-28

图7-29
温馨提示
使用Power Query查询后的表格,会自动套用表格格式,变身超级表。
使用Power Query查询的表格,当数据改变或新增文件时,可以实现一键自动刷新。如图7-30所示,我们在待合并的文件夹中,新增一个“上海分公司”的Excel文件。

图7-30
此时,在刚刚利用Power Query合并后的(见图7-29)表中,只需要右击选择“刷新”,即可将“上海分公司”的数据一起更新过来(见图7-31)。
这是因为通过Power Query合并表,建立了合并后的“汇总表”和原始“数据源表”之间的动态连接,当数据源发生增减变化的时候,合并以后的“汇总表”都是实时更新变化的。

图7-31
温馨提示
利用Power Query做多表合并的基本要求:数据源的表格结构、标题内容完全一致。
表姐说
在日常工作当中,当遇到数据源表分散存储,需要快速合并多表的问题,就立刻搬出Power Query来解决。
温馨提示
除Excel 2016自带Power Query,其他版本可能需要下载插件,然后才能使用。
(1)Excel 2010、Excel 2013需要到微软官网搜索Power Query后,下载插件并安装,方可使用。
(2)Excel 2003~2007及更早的版本、WPS,无法使用。