Vlookup搭配countif,轻松搞定一对多查询,让你秒变Excel大神

关于一对多查询 , 之前跟大家分享过使用FILTER函数来解决 , 这个可以说是最简单的解决方法了 , 但是不少粉丝表示他们的版本并不支持这个函数 , 今天就跟大家分享下我们如何使用Vlookup来解决这个的问题 , 废话不多说 , 让我直接开始吧
一、原理解析
当我们使用Vlookup查找数据如果遇到重复值 , Vlookup仅仅会返回第一个找到的结果 , 这个是Vlookup函数的特性无法更改 。
想要使用Vlookup返回多个结果 , 我们就必须要使查找值与查找区域变得唯一 , 所以接下来我们需要构建辅助数据 , 来使查找值与查找区域变得唯一 , 这个是必要前提条件 , 下面就来看下我的做法吧 。
Vlookup搭配countif,轻松搞定一对多查询,让你秒变Excel大神】二、构建辅助数据
在这里我们想要查找下3班的所有姓名 , 首先需要在数据源的最前面插入一列数据 , 随后在A2单元格中将公式设置为:=COUNTIF($B$2:B2,$F$2) , 这样的话3班的数据就会被设置为一个从1开始的序列 , 如下图所示
Vlookup搭配countif,轻松搞定一对多查询,让你秒变Excel大神
文章图片
跟大家简单的讲解下这个公式 , COUNTIF函数的作用是进行单条件计数
这个函数的重点是在第一参数中 , 第一个B2进行了绝对引用 , 向下拖动它是不会变动的 , 第二个进行了相对引用 , 向下拖动它是可以发生变动的 。 所以当我们向下拖动数据的时候 , 第一参数的判断区域就会逐渐增加 , 这样的话就能达到一个分组计数的效果 。
三、ROW函数构建查找值
上面我们已经在数据源为3班构建了唯一的查找值 , 它是一个从1开始的序列 , 哪个在Vlookup函数的第一参数中的这个查找值 , 我们应该如何构建呢?
可以使用ROW函数 , 它的作用是获取单元格的行号 , 在这里我们只需要将其参数设置为A1,然后向下填充就能得到一个从1开始的序列 , 如下动图所示
Vlookup搭配countif,轻松搞定一对多查询,让你秒变Excel大神
文章图片
四、Vlookup进行数据查询
唯一的查找值与数据都有了 , 在利用Vlookup函数来查询就非常的简单了 , 在这里我们只需要将公式设置为:=VLOOKUP(ROW(A1),$A$1:$D$15,3,0) , 然后向下填充即可
在这里需要注意的是:向下拖动公式的时候 , 如下看到#N/A就表示已经查找完毕 , 看不到#N/A , 就一直向下拖动即可
Vlookup搭配countif,轻松搞定一对多查询,让你秒变Excel大神
文章图片
以上就是今天的全部内容了 , 关键是构建唯一的数据源与查找值 , 如果你有其他的方法能够达到这个条件 , 理论上就能使用Vlookup实现一对多查询 。