- 从数据到Excel自动化报表:Power Query和Power Pivot实战
- 黄海剑(大海)
- 965字
- 2020-08-28 00:31:06
3.5 关联表合并:VLOOKUP函数虽好,但难承大数据之重
小勤:大海,现在公司的数据量越来越大,现有一个订单表如图3-34所示,订单明细表如图3-35所示,经常要将订单表的一些信息读取到订单明细表里,给相关的部门去用。原来只有几列数还好,用VLOOKUP函数读取一下就行了,但现在经常要很多数,用VLOOKUP函数做起来就很麻烦了。这个订单表还算少的,还有的表里有好几十列数据。
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0051-0110.jpg?sign=1739474912-M1zC8fFwlYXX4tAwWVwwbqHza1Bc8Ygo-0-eb75a49b15c004aa4dfaac7ec4ba4694)
图3-34 订单主体信息表
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0051-0111.jpg?sign=1739474912-zBkUiKDjSXedzri38pit3bl7lQp2cF1d-0-03adfa859fa72436672a6b2dfa4bae8f)
图3-35 订单明细数据表
大海:现在是大数据时代了,几十列算少的了。我曾经参与一个信息系统项目,最常用的合同表就有近300列,而且这还不是最多的。
小勤:那怎么办?如果按列顺序读取还好,但很多时候还不是按顺序的,简直就没法处理啊。而且,VLOOKUP函数用多了,电脑还会很卡。
大海:这个时候用VLOOKUP函数的确有点吃力了。虽然VLOOKUP是Excel中极其重要的函数,但在大数据时代,它已经很难承担起类似的数据关联合并的重担了。所以,微软才在Excel里加了Power Query的功能。
小勤:那具体怎么操作呢?
大海:很简单,分别获取“订单”表和“订单明细”表中的数据到Power Query里,然后按以下步骤进行操作:
Step 01 在Power Query查询编辑界面中,选中“订单明细”查询,切换到“开始”选项卡,单击“合并查询”按钮,如图3-36所示。
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0051-0112.jpg?sign=1739474912-dlYubee40SZZ5jitWZIMZMZ8SfTA3N9H-0-65f11847901dd29db74edc7acd2ea9c4)
图3-36 基于订单明细表做合并查询
Step 02 在弹出的对话框中部下拉列表中选择要合并的外部表(订单),如图3-37所示,单击上表(订单明细)中的“订单ID”列的列名选中该列,再单击下表(订单)中的“订单ID”列的列名选中该列,表示订单明细表和订单表之间通过“订单ID”列进行匹配,类似于VLOOKUP函数的第一个参数所选择的单元格所在的列。设置完毕后,单击“确定”按钮。
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0052-0113.jpg?sign=1739474912-JQRPnyaMmoEpLa05cFHaMVGTZTFQKaYt-0-4513ee6a199345910ff0106bd6d5b5a1)
图3-37 合并查询操作的设置方法
Step 03 此时,在表中多了一个名为“NewColumn”的列,单击该列右侧的数据展开按钮,在弹出的对话框中勾选需要合并到“订单明细”表中的内容,取消勾选“使用原始列名作为前缀”复选框,单击“确定”按钮,如图3-38所示。
小勤:这样真是太方便了,只要先选中匹配要用的列,然后选择要合并哪些列进来就可以了!对了,刚才你不是说可以多列匹配吗?原来用VLOOKUP时可麻烦了,还得先增加辅助列将那些列连接起来,然后再用辅助列来匹配。
大海:在Power Query里不需要了,只要在选择匹配列时按住Ctrl键就可以选择多列了。只是要注意,两个表选择匹配列的顺序要一致,如图3-39所示。
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0052-0114.jpg?sign=1739474912-2HHWFL11yHMGhyvY3cEzYrpyaNOYBkrA-0-79bf96424d7d15ab9ee2aa9cb5480d57)
图3-38 展开合并查询结果
![](https://epubservercos.yuewen.com/618DAF/13898201703280306/epubprivate/OEBPS/Images/35681-0052-0115.jpg?sign=1739474912-LpECKJHFWgme2LOuPZAeJGmNFn5XB1ej-0-8fb05ea9272f521ddca3411e29686b92)
图3-39 多列匹配的数据查询
小勤:太好了,以后数据列多的时候匹配取数就太简单了。