vlookup配合if函数实现反向查询

  • 欢迎来到知了Excel函数教学


欢迎来到知了Excel函数教学

vlookup在excel函数中也算是一个大哥级别的函数了,功能非常强大。把vlookup用好可以大大提高我们的工作效率。
缺点就是只能从左边到右边这样的查找,查找的条件值也只能是在第一列。
我们先看看公式是怎么写的:

vlookup(lookup_value,table_array,col_index_num,range_lookup)

搜索表区域首列满足条件的元素,确定待检索单元格在区域中的行序号,再进一步返回选定单元格的值。默认情况下,表是以升序排序的。

这是MS官方的说明,对于大部分的初学者都是很难理解这个说明,反正我一开始是没明白的。

我们来翻译一下:
lookup_value:用哪一个值去查找
table_array:要返回的数据在哪一区域(需要包含查找值所在列)
col_index_num:返回值在所选区域的第几列(数字)
range_lookup:匹配方式。如果填写false或0表示精确匹配,查找不到数据返回#N/A;如果填写true或1表示模糊匹配,找不到确认的值返回一个小于lookup_value的最大值;如果省略不写,默认模糊匹配。

A

B

C

1

学号

姓名

2

8001

甄姬

3

8002

伽罗

4

8003

韩信

5

8004

鲁班七号

像这样的表格我们都知道可以直接用学号去返回姓名数据,但是如果我们通过姓名去返回学号,正常的vlookup就无法实现,那要怎么办呢?

我记得以前和我说,把姓名和学号换下位置就可以了呀。
换位置是没有问题的,但是很多时候表格格式都是固定的,不能去随便更改。

那就会使用到我们今天所讲的配合if函数进行反向查询。

=vlookup(lookup_value,if({1,0},姓名列,学号列),col_index_num,range_value)

这里的区别就是我们在vlookup的第二个参数加上了一个数组函数if({1,0}),这个数组函数的主要作用就是虚拟一个数据区域以达到把姓名列和学号列进行调换,使得姓名列排在学号列前面。

那么完整的函数写法就是:

=vlookup("鲁班七号",if({1,0},$C$1:$C$5,$B$1:$B$5),2,0)

返回:8004

如果想了解数组函数if({1,0})或者学习更多excel函数

知了Excel(zhiliaoexcel)