关键字:逆向查询;Vlookup;函数
栏目:函数Hello,小伙伴们,你们好。
毋庸置疑,VLOOKUP是Excel函数中的“查找之王”、“人气之王”!
但是,白璧微瑕。
VLOOKUP也有自己的一点小脾气,刚正不阿,只能正向查找,绝不逆向查询。
如下图,如果在不改变原表格结构的基础上查找出书目编码对应的书名,直接使用VLOOKUP函数得出的结果是错误的。
如果我们将书目编码列剪切到书名的左侧,再使用VLOOKUP函数就可以成功索引过来结果。
工作中很多时候我们不能改变数据源的列排序,在不改变原表格结构的情况下应该如何使用函数进行逆向查找呢?
今天就给大家介绍7种方法。
方法一:VLOOKUP、IF函数嵌套
在G2单元格输入公式
=VLOOKUP(F2,IF({1,0},$C$2:$C$100,$A$2:$A$100),2,0)
公式解析:通过IF({0,1}函数将A列和C列位置互换,然后在C列精确匹配与F2单元格相同的单元格,并返回互换后的区域对应第2列即A列的数据。
方法二:VLOOKUP、CHOOSE函数嵌套
在G2单元格输入公式
=VLOOKUP(F2,CHOOSE({1,2},C:C,A:A),2,0)
公式解析:通过CHOOSE({1,2}函数将A列和C列位置互换,然后在C列精确匹配与F2单元格相同的单元格,并返回互换后的区域对应第2列即A列的数据。
方法三:LOOKUP函数
在G2单元格输入公式
=LOOKUP(1,0/($C$2:$C$100=F2),$A$2:$A$100)
公式解析:C列满足等于F2的条件的逻辑值为TRUE,被0除后,就是0;其他不满足条件的逻辑值为FALSE,被0除后,就是“#DIV/0!”的错误值;通过LOOKUP在一批错误值和0组成的数列中,返回比1小的最大值,也即是0值(满足F2条件的行)对应的A列数据。
方法四:Filter函数
在G2单元格输入公式
=FILTER(A:A,C:C=F2)
公式解析:在C列中满足内容等于F2单元格的位置,在筛选区域A列返回对应位置的数据。
方法五:Index、 match函数嵌套
在G2单元格输入公式
=INDEX(A:A,MATCH(F2,C:C,0))
公式解析:通过INDEX定位到A列,并根据MATCH函数返回F2在C列中所在的行号,得到对应A列数据。
方法六:Offset、match函数嵌套
在G2单元格输入公式
=OFFSET($A$1,MATCH(F2,$C$2:$C$100,0),)
公式解析:以A列A1单元格为基准位置,向下偏移N行,而N就是通过match函数查找到的F2在C2:C100这片区域中的位置。
方法七:Indirect、match函数嵌套
在G2单元格输入公式
=INDIRECT("A"&MATCH(F2,C:C,0))
公式解析:通过match函数查找到F2在C列中的行号,列标“A”和行号构成的文本字符串表示单元格位置,用indirect函数引用这一单元格位置的具体内容。
好啦,七种方法,个个实用,你学会了吗?
有话要说...