EXCEL中vlookup匹配有两个相同的怎么选择多条件匹配问题,急!急!急!


---学习记录---
1 基础语法
=VLOOPUP(lookup_value,table_array,col_index,range_lookup)
lookup_value:查找关键字
table_array:查找范围
col_index_num:返回查找范围内的第几列数据
range_lookup:匹配方式,模糊匹配:0,精确匹配:1
查找关键字在查找范围内需要是唯一的!!!
2 反向查找
<e.g> 查找I2中姓名为张三的同学的所在班级
=VLOOKUP(I2,IF({1,0},$B2:$B5,$A$2:$A$5),2,0)
lookup1.png
先看如何将查找范围中的AB两列交换位置进行查询
IF语句
IF(logical_test, [value_if_true], [value_if_false])
logical_test:逻辑判断语句
value_if_true:如果判断为真,返回value_if_true
value_if_false:如果判断为假,返回value_if_false
回到例子中,IF({1,0},$B2:$B5,$A$2:$A$5)的作用是将$A$2$A$5和$B$2$B$5的位置交换并形成一个数组
如果1,返回$B2:$B5
如果0,返回$A2:$A5
按从左到右的顺序先执行1,再执行0,返回的数组即为$B$2$B$5:$A$2$A$5,即将两列交换位置
使用了数组的公式不能直接按回车执行,需要按Ctrl+Shift+回车,否则会报错!!!
3 多条件查询
=VLOOKUP(lookup_value1&lookup_value2,IF({1,0},table_array1&table_array2),col_index,range_lookup)
<e.g>查找姓名=张三、班级=2班的同学的语文成绩
一次错误尝试
=VLOOKUP(I2&J2,IF({1,0},$A$2:$A$5&$B$2:$B$5,$C$2:$C$5),2,0)
IF({1,0},$A$2:$A$5&$B$2:$B$5,$C$2:$C$5)
IF语句将$A$2:$B$2作为一个整体当作查询的第一列,$C$2:$C$5作为查询的第二列。查询条件为I2&J2,但由于I2、J2分别为姓名和班级,而$A$2:$B$2作为第一列的抬头为班级和姓名,导致查询不到符合条件的结果,因此K2的值为NA
lookup2.png
正确结果
=VLOOKUP(J2&I2,IF({1,0},$A$2:$A$5&$B$2:$B$5,$C$2:$C$5),2,0)
lookup3.png
4 查询返回多列
=VLOOKUP(lookup_value,table_array,COLUMN(X),range_lookup)
<e.g>查询姓名为李四的同学的语文成绩
lookup4.png
一次错误尝试=VLOOKUP($I3,$B$2:$C$5,COLUMN(C1),0),报#REF!错误,原因在于COLUMN(B1)中的B1是对于查询范围来说的,对于查询范围$B$2:$C$5来说,COLUMN(C1)指的是D列,即为$B$2:$C$5范围中的第三列,而查找范围中并没有第三列,所以报#REF!错误。(就算不报错,返回的值也不是想得到的值哦)
lookup5.png
=VLOOKUP($I3,$B$2:$C$5,COLUMN(B1),0),得到了正确的结果
Reference: https://www.zhihu.com/question/34419318
推荐阅读更多精彩内容
vlookup函数10种用法熟悉使用Excel,vlookup函数必要会的,一下介绍其10种用法。 VLOOKUP函数用于首列查找并返回指定列...希日晞阅读 14,772评论 0赞 8

我要回帖

更多关于 vlookup匹配有两个相同的怎么选择 的文章

 

随机推荐