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用Power Query把文件夹下所有文件合并为一个与合并多个表格的更多相关文章

  1. C#遍历文件夹下所有文件

    FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...

  2. python 替换 文件夹下的 文件名称 及 文件内容

    示例效果: 1.替换某文件夹下的 文件夹及子文件夹 的名称 由OldStrDir 变为 NewStrDir: 2.替换某文件夹下的 文件夹及子文件夹 下 所有的文件的名称 由OldStrFile 变为 ...

  3. java笔试题: ——将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

    将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面 import java.io.*; import java.util.zip.ZipEntry; import java.uti ...

  4. 【转发】du命令 实现Linux 某个文件夹下的文件按大小排序

    1. df -lh 2. du -s /usr/* | sort -rn这是按字节排序 3. du -sh /usr/* | sort -rn这是按兆(M)来排序 4.选出排在前面的10个du -s ...

  5. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  6. python (9)统计文件夹下的所有文件夹数目、统计文件夹下所有文件数目、遍历文件夹下的文件

    命令:os 用到的:os.walk   os.listdir 写的爬虫爬的数据,但是又不知道进行到哪了,于是就写了个脚本来统计文件的个数 #统计 /home/dir/ 下的文件夹个数 import o ...

  7. PHP遍历文件夹下的文件和获取到input name的值

    <?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admi ...

  8. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...

  9. 【转】【Linux】Linux下统计当前文件夹下的文件个数、目录个数

    [转][Linux]Linux下统计当前文件夹下的文件个数.目录个数 统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的 ...

随机推荐

  1. C语言非阻塞式键盘监听

    监听键盘可以使用C语言的字符输入函数,例如 getchar.getch.getche 等,使用getche函数监听键盘的例子: #include <stdio.h> #include &l ...

  2. ImageMagick转换图片格式

    /usr/bin/convert data/manager/tongji/Html/WebData/images/code0/xingfumima0_1000_0.jpg -colorspace cm ...

  3. CSS多种方式实现元素水平垂直居中

    html结构: <div class="center">确定宽高水平垂直居中</div> <div class="center2" ...

  4. mocha_JavaScript单元测试框架

    mocha mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行. 使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自 ...

  5. Spring 初始化流程

    开始 在SpringIOC中,前面讲述了如何配置BeanDefinition和如何注册BeanDefinition,但是这些知识容器初始化的一部分,在AbstractApplicationContex ...

  6. 技术管理进阶——谁能成为Leader,大Leader该做什么

    原创不易,求分享.求一键三连 两个故事 谁能成为Leader 之前接手了一块产品业务线,于是与原Leader说了下分工,大概意思是: 我是过来学习的,也能给团队带来更多的资源,团队内的工作你继续管理, ...

  7. MySQL架构原理之运行机制

    所谓运行机制即MySQL内部就如生产车间如何进行生产的.如下图: 1.建立连接,通过客户端/服务器通信协议与MySQL建立连接.MySQL客户端与服务端的通信方式是"半双工".对于 ...

  8. 私有化轻量级持续集成部署方案--06-私有镜像仓库-Harbor

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 针对私有镜像仓库的问题,Docker 官方提供了搭建仓库服务的镜像服务:registry,使用此镜像就可以部署私有仓 ...

  9. nginx加大缓存

    http { server { listen 0.0.0.0:81; server_name localhost; -- proxy_buffer_size 128k; proxy_buffers 3 ...

  10. java宝典笔记(一)

    第四章java基础知识 4.1基本概念 一.java优点 1.面向对象(封装.继承.多态) 2.可移植性.平台无关,一次编译,到处运行.Windows,Linux,macos等.java为解释性语言, ...