打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
刚刚,我搞定了困扰多年的难题


图/文:安伟星



多表合并历来是困扰多数职场人士的难题,因为用到它的场景实在太多了:不同部门的数据、不同月份的数据、甚至不同公司的数据报表……分散在不同的工作表或者不同的工作簿中,他们具有相同的表头,如何快速将他们合并在同一个工作表中?难道只能一个一个复制么?


如图2-70所示,不同地区的销售数据,分布在不同的工作表中,它们的特点是工作表的数据结构是相同的,如何能够快速将其合并在同一个工作表中?

图2- 70:分布在不同工作表中的销量数据


Excel2016版本之前,解决这样的问题,基本上只能通过VBA来完成,但是VBA相对来说门槛比较高,不适合大多数职场人士。


庆幸的是,Excel2016自带的Power Query查询工具允许用户链接、合并多个数据源中的数据,我们可以灵活使用Power Query来实现Excel多表合并。


当然,由于Power Query功能异常强大,仅用它实现多表合并显然有些“杀鸡用牛刀”的感觉,但是对于不会VBA的同学,面对困扰已久的“多表合并”难题,这不失为一个好方法。


注:Excel2010~Excel2013版本,默认是没有Power Query工具的。如果您使用的是Excel 2010~Excel2013版本,可以到微软官网下载Power Query,这是一个免费插件,但是更早版本的Excel(如2003等)不支持这个插件。


— 01 

同一个工作簿中的多表合并


案例1:如图2-70所示,多个地区的销售数据分布在不同的工作表中,这对后续的数据分析造成极大的不便,比如无法使用数据透视表,需要利用复杂的函数才能实现跨表求和等等,将不同表中的数据合并在同一个表中才是王道。


Step1:启动Power Query是通过Excel【新建查询】菜单完成的,它位于【数据】选项卡中的【获取和转化】分区。点击【新建查询】→【从文件】→【从工作簿】,如图2-71所示,然后在弹出的“导入数据”选择框中,选择包含要合并工作表的Excel文件,点击导入,如图2-72所示。


图2- 71:从工作簿中新建查询

图2- 72:将工作簿导入新建查询中


Step2:选择需要合并的工作表,并点击【编辑】,从而对新建的查询进行编辑,如图2-73所示。

图2- 73:选择需要合并在一起的工作表


Step3:接下来需要新建一个“追加查询”,将单个表合并起来,在查询编辑界面,点击【追加查询】→【追加查询】,如图2-74所示。


图2- 74:新建追加查询


在弹出的“追加查询”对话框中,将剩余的表格追加到右侧“要追加的表”一栏中,然后点击【确定】,如图2-75所示。


图2- 75:将剩余的两个表追加到当前查询表中


Step4:追加查询创建之后,会回到Power Query主界面,切换至【开始】选项卡→【关闭】分区→点击【关闭并上载】下拉三角→【关闭并上载至…】,如图2-76所示,这一步的目的是将在Power Query中处理过的数据导入到Excel中。

图2- 76:将Power Query中的查询导入Excel


提示:在Power Query中创建的查询表更像是数据库结构,我们需要将它在导入到Excel中。


在接下来的“加载到”界面中,保持默认选项,直接点击【加载】,即可将创建的“追加查询”加载到Excel工作表中,完成之后,我们已将同一工作簿中的三个不同工作表合并在一起,如图2-77所示。


图2- 77:三个工作表合并在一起的状态


之后,如果三个单独的表中有更新,在总表中选择点击【数据】→【连接】→【全部刷新】即可获取数据的最新状态。


通过Power Query合并起来的工作表的另一个好处是,这是一个动态的合并关系,一旦原始表中的数据发生变化,只需要刷新即可完成新数据的合并,可谓以逸待劳!


— 02 

不同工作簿中的多表合并


更复杂的情况是我们要合并的工作表并不在同一个工作簿中,而是分布在不同的Excel文件中。如图2-78所示,有多个部门提交的数据,放置在同一个文件夹中,我们需要将这些Excel文件中的工作表合并在一起。

图2- 78:分布在不同工作簿值中的数据


提示:应该注意的是,要汇总的这些文件,工作簿中的数据结构必须相同(列数相同、列标题相同)。


Step1:点击【新建查询】→【从文件】→【从文件夹】,如图2-79所示,然后选择数据所在的文件夹,并点击【确定】。


 

图2- 79:从文件夹新建查询


然后直接点击【编辑】,即可将所有Excel文件的信息加载至Power Query并处于编辑界面。


Step2:将工作簿加载到Power Query之后,可以看到,工作簿的所有属性信息都在新建的查询中,而这里面很多信息都是不需要的,比如工作簿名、类型等,我们只需要用到工作簿中的内容,因此选择【Content】列,并点击【开始】→【删除列】→【删除其他列】,如图2-80所示,这样可以将无关列删除。

图2- 80:将无用的新系列删除


Step3:接下来,需要把【Content】中的内容提取出来。切换到【添加列】选项卡→点击【自定义列】,如图2-81所示。然后在弹出的【添加自定义列】窗口中输入函数:

Excel.Workbook([Content],true),通过Excel.Workbook把Content 里的内容提取出来,如图2-82所示。

图2- 81:自定义添加列


图2- 82:通过函数自定义添加列


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


Step4:点击新建的Test列右侧的扩展按钮,把所有字段扩展出来,如图2-83所示。

图2- 83:扩展Test列中的所有内容


Step5:重复Step2中删除其他列,选中Test.Data列,然后点击【删除其他列】,然后点选Test.Data的扩展按钮,将Test.Data中的数据扩展出来,如图2-84所示。

图2- 84:将Test.Data值的数据扩展出来

经过两轮的筛选,即可看到,目前所剩下的列已经是各工作簿中的数据表头了。


Step6:点击【确定】后即可得到最终的汇总结果。接下来,和2.7.1中 Step4相同的操作,将数据加载到Excel表中,可以看到,所有部门的数据均已正确合并到一起。


通过使用此方法,我们可以快速对同一文件夹下的同结构Excel进行合并。而且将来数据更新后我们只需要在合并后的Excel表中点击【数据】→【连接】→【全部刷新】即可获得最新数据合并结果,一劳永逸。


不仅如此,此时放置各部门Excel数据的文件夹已经成了一个动态容器:如果向文件夹中新增其他部门的数据,Power Query也会自动把数据合并进来。所以实际应用中,每个月只需要将各个部门发送的数据复制到此文件夹中,在总表中点击刷新即可。


— 03 

工欲善其事必先利其器


很多优秀的第三方Excel插件,可以更简单地完成本节所讲的功能。

第一款是Excel易用宝,它是是由Excel Home开发的一款Excel功能扩展工具软件,可以让繁琐或难以实现的操作变得简单可行,甚至能够一键完成。


第二款是慧办公插件,它同样是一款功能丰富的插件,通过这个插件,可以很轻松实现一些复杂的操作,包括本节讲的合并工作表,如图2-85所示。

图2- 85:慧办公插件“傻瓜式”功能


这两款插件都随着随书资源赠送给大家,放置的路径是:图书配套资源\第2章 Excel这样玩,秀出真技能\2.7 困扰很多人的难题:Excel多表合并。



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
POWER QUERY--多个工作簿的合并汇总(一)
突破函数瓶颈,轻松合并文件夹内多个记事本,一劳永逸
批量导入Excel文件,为什么我导入的数据重复了?
【一分钟Excel】如何快速合并多个工作表
【Power BI】实现多个工作簿数据汇总
excel数据处理:快速提取多工作簿数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服