---学习记录---
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)
先看如何将查找范围中的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
- 正确结果
=VLOOKUP(J2&I2,IF({1,0},$A$2:$A$5&$B$2:$B$5,$C$2:$C$5),2,0)
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!错误。(就算不报错,返回的值也不是想得到的值哦)
-
=VLOOKUP($I3,$B$2:$C$5,COLUMN(B1),0)
,得到了正确的结果
Reference: https://www.zhihu.com/question/34419318
网友评论