作者:Excel实例教学
显然这就是传说中一对多查找,万金油公式神器
公式
=index(a:a,small(if(g$1=b$2:b$17,row($2:$17),99),row(a1))
万金油的index + small + if 是我们经常用来一对多查找的方式 详解请见视频
注意三键 ctrl+shift+enter 结束
请详见视频讲解
EXCEL中一对多查找数据的万金油函数套路讲解小白也能学的会
http://www.toutiao.com/item/6378395341644890625/
Excel帮帮你
16评论Excel到PowerBI 中远网络物流信息科技有限公司咨询顾问02-07 14:28197
赞
踩
在EXCEL中,Vlookup函数只能找到第一个正确的项,如果有多行数据都满足条件,应根据实际业务需要进行处理,主要包括以下几种情况:
这种情况就是VLookup的默认情况,直接使用即可,而且实际业务中很多情况下也就是这种需求,所以VLookup也是这么设计的。
这种情况应该更加普遍,当一个条件不足以确定唯一需要引用的数据时,通常可以通过增加匹配查找条件来确定唯一的值。而,当条件增加时,即转为多列匹配的问题,可以先构建辅助列,然后使用VLookup来完成,具体如下图所示:
或者使用数组公式来完成(比较复杂一点儿,我通常并不建议使用),如下图所示:
这种情况我在实际工作中碰到的其实不太多,当然,这种需求也可以通过数组公式来完成,但是,我更建议使用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)来实现,因为通过新功能来实现非常简单,而且可以很灵活地选择数据的返回方式,而且并不需要写公式。具体方法如下:
Step01:将相关表数据上载到Power Query功能中
Step02:进行合并(查找引用)操作
Step03:选择两表间用于匹配的列
Step04:选择需要查找引用的数据列(这也是通过Power Query功能比使用VLookup函数更加强大的地方,可以一次性读取所有需要的列)
Step05:数据返回Excel
通过以上简单的几个鼠标操作的步骤,即可实现VLookup一样的功能,而且返回的即为所有符合条件的多行数据。
综上,在使用VLookup函数时,如果碰到数据重复的情况,应根据实际业务需要选择相应的处理方式,从简单的VLookup返回第一行,还是增加查询条件返回其他确定的行,或者返回多行,可以选择的方法也很多。如果是返回多行或多列,建议使用Power Query功能来实现。