EXCEL表格中如何使用VLOOKUP函数进行反向查找和多条件查找?

如题所述

1.如下图,要根据“工号”在原始数据表中查找对应的“姓名”。

2.双击B8单元格,输入公式:

=VLOOKUP(A8,IF({1,0},B1:B5,A1:A5),2,0)

左手按住Ctrl+Shift,右手按下回车运行公式即可。

3.这主要利用的是IF函数第一参数数组化来实现的,选中部分空单元格,输入公式:

=IF({1,0},B1:B5,A1:A5)

左手按住Ctrl+Shift,右手按下回车就可以看到通过IF函数将两列值互换了。

4.类似的,利用CHOOSE()函数也可以实现类似IF()的效果:

=VLOOKUP(A8,CHOOSE({1,2},B1:B5,A1:A5),2,0)

仍然三键运行数组公式,也可以实现VLOOKUP()函数的反向查找。

5.如果不用VLOOKUP()函数,可以利用INDEX+MATCH替代方法实现,公式如下:

=INDEX(A1:A5,MATCH(A8,B1:B5,))

这里通过MATCH()函数定位A8所在位置,然后用INDEX()函数取值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-24
大家都知道VLOOKUP 函数在普通的用法中只能在数据表中从左向右查找引用,并且是单条件
的查找引用。下面举例说明用这个函数进行反向查找和多条件查找。
1、反向查找引用:有两个表Sheet1 和Sheet2,Sheet1 有100 行数据,A 列是学生学号,B
列是姓名,Sheet2 表的A 列是已知姓名,B 列是学号,现在用该函数在Sheet1 表中查找姓名,
并返回对应的学号。
Sheet2 表的B2 的公式就可以这样输入:({}表示数组公式,要以CTRL+SHIFT+ENTER 结束输入){ =VLOOKUP(A2,IF({1,0},Sheet1!$B$2:$B$100,Sheet1!$A$2:$A$100),2,FALSE) }
该公式通过IF 函数改变了列顺序,利用常量数组{1,0}重新构建了一个新的二维内存数组,
再提供给VLOOKUP 作为查找范围使用。
上述公式也可改用 =INDEX(Sheet1!$A$2:$A$100,MATCH(A2,Sheet1!$B$2:$B$100,0))
2、多条件查找引用:有两个表Sheet1 和Sheet2,Sheet1 有100 行数据,A 列是商品名称,
B 列是规格型号,C 列是价格,Sheet2 表的A 列是已知的商品名称,B 列是已知的规格型号,现
在用该函数在Sheet1 表中查找商品名称、规格型号都相同的行所对应的价格填入Sheet2 表的C列。
Sheet2 表的C2 的公式就可以这样输入:({}表示数组公式,要以CTRL+SHIFT+ENTER 结束输入){ =VLOOKUP(A2&"|"&B2,IF({1,0},Sheet1!$A$2:$A$100&"|"&Sheet1!$B$2:$B$100,Shee
t1!$C$2:$C$100),2,FALSE) }
用&将A2 的名称和B2 的规格合并成一个值来查找。这里增加"|"是为了避免因两个条件直
接组合而出现本不相同的雷同,如名称“ABC”和型号“MN8”的组合,与名称“AB”和型号
“CMN8”的组合相同。
上述公式也可改用
相似回答