我们还需要VLOOKUP函数吗之返回多个匹配结果

我们以前介绍过,在很多场景中,如果想要进行查找,在Excel中有比查找函数(如VLOOKUP等)更好的方法,具体见一个严肃的问题——还需要VLOOKUP函数吗

今天我们介绍另外一个查找场景:返回多个匹配结果。

假设我们有以下的销售明细数据:

我们还有另外一份产品资料数据,记录了每个产品属于哪个大类:

现在我们的问题是,需要根据给定的大类,返回所有该大类下产品的销售明细:

一般说到查询,我们就会想到VLOOKUP函数,但是VLOOKUP只能用来查询并返回第一个匹配的结果。要想实现我们的需求,需要做一系列辅助操作,比较麻烦。如果用其他的查询函数,基本也是这个情况。

今天我们介绍用Power Query实现这个需求的方法。

第一步,我们将产品销售和产品大类两个表加载到Power Query中:

具体方法就是:

首先:选中数据源区域的任意单元格,然后在数据选项卡中点击“从表格”,

然后在PQ界面的“主页”选项卡中,点击“关闭并上载至”:

在出现的窗口中选择“仅创建链接”,

点击加载即可完成。

依此方法,将产品销售和产品大类都加载到Power Query中。

然后用同样的方法将条件区域也加载到Power Query中:

接下来,在数据选项卡中,依次点击新建查询,合并查询,合并:

在出现的对话框中,将第一个表选择为产品大类,第二个表选择为销售明细,分别点击两个表格中的产品名称列,在下面的联接种类中选择“左外部”:

点击确定,进入Power Query编辑器,

点击上图中箭头所指的按钮,在列表中按下图所示进行选择,展开销售明细表:

得到结果:

将销售日期列转换为日期,并删除除了产品名称,销售日期,销售额及产品类别职位的其他列:

删除后的结果如下:

在主页选项卡中,选择合并查询:

在对话框中,将第二个表选择为查询条件,并将联接种类选择为“左外部”,

点击确定后得到如下结果:

展开查询条件表格,

点击确定,

在最后一列中筛选所有不等于null的结果,

得到结果,

将最后两列删除:

结果上载到Excel的合适位置即可:

大功告成!

(0)

相关推荐