目前是只有EXCEL2016可以直接使用, EXCEL2010和2013必须安装插件才能使用,其他版本则不能使用。EXCEL2016里,Power Query所有使用功能都镶嵌在“数据”选项卡下【获取和转换】组。
案例如图,工作簿里有两个工作表,分别是销售组和销售额,现在要根据大区和小组把“销售额”这个表里的订单数和订单金额匹配到“销售组”这个表里。
就是典型的多条件查询,查找符合多个条件的数据并返回多列数据。实际工作中跨表核对数据非常常用!
由于两个表里的大区和小组都不能作为查找的唯一值,所以需要根据两项进行查找匹配,并且要把订单数和订单金额两列匹配过来。这个使用函数实现的话就太烧脑了,如何操作呢?步骤如下:
1.点击数据选项卡下,新建查询—从文件—从工作簿。
2.在“导入数据”窗口找到该工作簿点击导入。
3.在“导航器”窗口单击“选择多项”,然后选择两个工作表,点击“编辑”。
进入Power Query编辑器之后,在左侧查询窗口能看到导入的两个工作表查询。
4.由于导入的表格将column作为新标题,为了方便以后的操作,我们先把两个查询的第一行作为标题。点击两个查询,分别点击开始选项卡下的“将第一行用作标题”。
完成如下:
5.接下来进行两个表格的合并查询。选择要填写内容的表“销售组”,点击开始选项卡下,“合并查询”下拉菜单的“将查询合并为新查询”。
6.在“合并窗口”,第一个表是要填写匹配内容的表“销售组”,第二个在下拉窗口选择包含匹配信息的表“销售额”。首先把两个表的“大区”这一列选中,这两列就变成绿色。这就代表着两个表通过“大区”这列进行匹配数据。
然后按住Ctrl键,再次选中两个表的“小组”这一列。这时候,两个表列标签出现了“1”和“2”。其中1列匹配1列,2列匹配2列。点击确定。
注意:下方的联接种类有六种,我们选用第一种“左外部”,即第一个表里的值是不重复值,根据选中的列来把第一个表的所有行联接第二个表里的匹配行。也就是我们常用的VLOOKUP的功能。这里合并查询默认选择第一种。大家有兴趣的话,后续可以介绍其他五种联接种类。
7.查询窗口就会生成一个新查询“Merge1”,在新查询表里就把“销售额”表里的信息匹配出来了。点击销售额这列的table进行预览,下方的预览窗格能看到根据相同的大区和小组匹配的销售额表的所有内容。
利用这种方法我们可以在合并窗口自由选择匹配的列数,2列3列甚至更多列都能满足。这样就解决了多条件查找的问题;并且根据匹配的列可以把匹配表所有内容都查找出来。
8.现在就是把需要导入表格的内容展开到表里。点击“销售额”这列右侧的展开按钮,在下方展开窗格里,选择要展开的列“订单数”和“订单金额”,不要勾选“使用原始列名作为前缀”。
完成如下:
9.最后把这个查询上载到表格里。选择新查询表,点击开始选项卡下的“关闭并上载”。
这样就会把三个查询表都上载到工作簿里,生成三个新工作表。右侧会出现“工作簿查询”窗口,点击新查询,工作簿就会自动跳转到对应的查询工作表。
完成如下: