EXCEL中如何实现两个表格之间的数据自动匹配、补全、合并成一个表格?



作者:Excel到PowerBI

使用Excel的新功能Power Query或Power Pivot来解决多表之间的匹配合并问题,对很多人来说可能是一个全新的思路!十分简单有效!

EXCEL中实现两个表格之间的数据自动匹配、补全、合并成一个表格,通常是将类似于一个主表(比如订单表)和一个明细表(如订单项目明细表)之间的匹配、补全和合并。

在以前,这个问题可以用vlookup等函数来解决,或者如果是需要匹配的列很多,用vlookup会很麻烦或者因为大量的公式计算以致Excel很卡时,也经常使用VBA来解决。

但是,现在,随着Excel2016的超级强大新功能Power Query和Power Pivot(Excel2010或Excel2013可到微软官方下载相应的插件)的推出,这个问题已经不需要通过vlookup函数或VBA来解决了,并且,通过Power Query和Power Pivot的解决方法不仅十分简单,而且可以随着数据源的更新而一键刷新得到最新结果。

以下分别从Power Query和Power Pivot两个角度来提供解决方案。

一、Power Query的表格合并——vlookup虽好,然难承大数据之重

随着数据化时代的来临,现在公司的数据量越来越大,需要整合分析的要求也越来越高。比如现在有订单表和订单明细表,经常要将订单表的一些信息读取到订单明细表里,给相关的部门去用,原来只要几列数还好,vlookup读一下就是了,但现在,经常要很多数,用vlookup就会很麻烦了。以下这个订单表还算少的,我在某个项目上的合同表,差不多300列,而且这还不算真正多的。

这种情况,如果还用vlookup的确有点吃力了,虽然vlookup是Excel中极其重要的函数,但是,在大数据时代,已经很难承起数据关联合并的重担了,所以微软才在Excel里加了PowerQuery功能,具体实现方法如下。

Step01-获取订单表数据

Step02-获取订单明细表数据

Step03-合并查询

Step04-选择要合并的表(如订单表)及两表之间用于匹配的列(支持多列组合匹配)

Step05-展开要接入表及所需要的列

通过以上简单的5步,点几下鼠标,两个表的数据就全部匹配合并到一起并可以返回Excel里了,如下图所示:

以上是通过Power Query实现的表间数据合并的方法,但是,实际上,在很多数据分析中,对于这类本身就有关系的表,如果数据合并到一起的话,会导致大量的数据重复和存储量增大,而实际分析目的本身只需要可以按相关的数据进行分析即可,因此,Power Pivot提供了更进一步的解决方案——直接构建两表之间的数据关系然后进行分析,不需要再整合数据,具体方法如下。

二、Power Pivot构建数据模型——表间关系一线牵,不须大量公式拼数据

仍然使用订单表和订单明细表为例。

Step01-依次将数据添加到数据模型

加载完毕后,Power Pivot中数据如下:

Step02-切换到关系图视图

点击“关系视图”,看到3个表的内容分别显示在3个不同的框框里,用鼠标按住这些框框的顶部名称区域就可以按需要拖放到不同位置。

Step03-构建表间关系

订单表、订单明细表、产品表之间的关系是:订单表里的每个订单对应订单明细表里多个订单(产品)项目,订单明细里的产品可以从产品表里获取更详细的相关信息。

结果如下:

按同样的方法还可以建立订单明细表和产品表之间的关系,最后结果如下:

这样,3个表之间的关系就建好了,后续就可以直接从各个表里拖拽需要的信息进行数据透视等分析,如下所示:

比如,要分析各种产品类别的销量:

以上介绍了Power Query在EXCEL中实现两个表格之间的数据自动匹配、补全、合并成一个表格的方法以及通过Power Pivot通过构建多表之间的关系而直接进行统计分析的解决方案,可按实际需要选择使用。

更多精彩内容,敬请关注【Excel到PowerBI】

【私信“材料”直接下载系列训练材料】

【Excel必备基础小动画】

【60+函数汇总案例】

【数据透视基础精选10篇】

【Power Query入门到实战80篇】

【Power Pivot 基础精选15篇】


0