vlookup一次查找到多个结果,这个效果就是我们经常提到的一对多查询,想要解决这个问题,首先我们必须要知道默认情况下vlookup为什么不能一次查找到多个结果。
一、函数特性当使用vlookup查找数据,遇到重复值的时候,函数仅仅会返回第一个找到的结果,这个特性不仅仅适用于vlookup,其它我们常用的查找函数也遵循这个特性,这个是Excel默认的规则,无法更改。这个就是vlookup遇到重复值,只能返回一个结果的原因。
如下图所示,我们将查找值设置为2班,然后使用vlookup函数来查找班级对应的姓名,得到的结果是成吉思汗,返回这个结果的原因就是因为成吉思汗在2班的第一个位置。所以我们想要使用vlookup函数实现一对多查询,就必须要构建一个不重复的查找值,这个查找值,我们可以使用countif函数来构建
二、构建辅助列首先我们在数据最前面插入一列空白列,随后将公式设置为:=COUNTIF($B$2:B2,$G$2)然后向下填充公式,在2班的这里它的结果是从1开始的序列。这个从1开始序号就是唯一的值,可以将其作为查找值。跟大家简单讲解下这个公式
公式: =COUNTIF($B$2:B2,$G$2),COUNTIF的作用是条件计数。
第一参数:$B$2:B2,计数的数据区域
第二参数:$G$2,计数条件,查找的班级
这个函数的关键点在第一参数计数的数据区域,在这里第一个B2加了$符号就代表绝对引用,向下拖动数据的时候它是不会发生变化的,而第二个B2没有加$符号就代表相对引用,向下拖动数据的时候它是会发生变化的,也就是说数据区域是一个单元格,一个单元格的增加的,所以才会出现分组计数的效果。
三、实现一对多查询上一步中我们通过使用countif为每个班级都构建了一列从1开始的序列,这个序列就可以作为查找值来使用,因为它是不重复的,我们可以将ROW(A1)作为vlookup的查找值,因为它的结果也是从1开始的序列,这个是时候我们可以将公式设置为:=VLOOKUP(ROW(A1),$A$1:$D$16,3,0)向下填充即可,这个函数非常简单,就是一个vlookup的常规用法,不过在这里查找值变为了ROW(A1)。如下图所示
最后我们发现下方会有错误值出现,出现错误值的原因是因为,已经查找到了所有数据公式拉多了,这个时候我们可以使用IFERROR函数来屏蔽下错误值,最终的公式为:=IFERROR(VLOOKUP(ROW(A1),$A$1:$D$16,3,0),"")至此就设置完毕了,我们就可以使用一次vlookup来返回多个结果了
以上就是今天分享的全部内容,怎么样?你学会了吗?
我是Excel从零到一,关注我,持续分享跟多Excel技巧