Excel函数 查询表格 vlookup
在区域中根据条件查询结果值。
1 语法
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
对应SQL语言:
SELECT col_index_num
from table_array
where 第1个字段= lookup_value
在区域table_array中,查找第1列值为lookup_value的第col_index_num列的值。
range_lookup通常使用false,表示精确查询。
2 基本使用
例:根据姓名查询成绩。
供复制数据如下。
班级 | 姓名 | 学号 | 性别 | 成绩 |
---|---|---|---|---|
计科2301 | 小步教程 | 202361033001 | 男 | 76 |
计科2301 | 刘一 | 202361033002 | 女 | 89 |
计科2301 | 陈二 | 202361033003 | 男 | 82 |
计科2301 | 张三 | 202361033004 | 女 | 85 |
计科2301 | 李四 | 202361033005 | 男 | 73 |
计科2302 | 王五 | 202361033006 | 女 | 82 |
计科2302 | 赵六 | 202361033007 | 男 | 85 |
计科2302 | 孙七 | 202361033008 | 女 | 87 |
计科2303 | 周八 | 202361033009 | 男 | 69 |
计科2303 | 吴九 | 202361033010 | 女 | 70 |
计科2303 | 郑十 | 202361033011 | 男 | 61 |
计科2303 | 刘一 | 202361033011 | 男 | 83 |
公式
=VLOOKUP("小步教程",B2:E13,4,FALSE)
运行结果如下。
说明
1 查询表格为B2:E13,共4列12行。
2 查询B2字段值等于"小步教程"的记录。
3 显示B2:E13中的第4个字段,对应考试成绩。
3 多条记录符合查询条件
当多条记录符合查询条件时,只会显示第1条记录的值。
例:查询姓名为"刘一"的成绩。表格中存在多个学生的姓名为"刘一"。
公式:
=VLOOKUP("刘一",B2:E13,4,FALSE)
运行结果如下:
结果只显示第1条记录的值。
4 没有记录符合查询条件
当没有记录符合查询条件,会报错:#N/A。表示没有匹配项。
例:查询姓名为xiaobuteach的成绩。表中不存在姓名xiaobuteach。
公式
=VLOOKUP("xiaobuteach",B2:E13,4,FALSE)
可以通过函数IFNA显示成相应结果。
公式:
=IFERROR(VLOOKUP("xiaobuteach",B2:E13,4,FALSE),"找不到学生")
运行结果如下。
5 绝对引用
相对引用
公式中使用单元格A1,属于相对引用。
将公式所在单元格复制粘贴到其它单元格时,单元格公式的相对引用的行数与列数会自动变化,相应偏移。而这种偏移通常不是我们需要的,会引起错误。
复制单元格C16到单元格C18。
单元格C16公式
=VLOOKUP("小步教程",B2:E13,4,FALSE)
单元格C18公式,导致引用的表格发生变化,计算出错。
=VLOOKUP("小步教程",B4:E15,4,FALSE)
绝对引用
为保证公式单元格复制粘贴时,单元格引用不会变化,使用绝对引用。在行号列号前都加英文感叹号!。
下图中,C16公式:
=VLOOKUP("小步教程",$B$2:$E$13,4,FALSE)
复制后C18公式,完全不变。
=VLOOKUP("小步教程",$B$2:$E$13,4,FALSE)
运行效果如下。
说明
1 $B$2。在单元格引用时,行号列号前加$,表示绝对引用。 2 绝对引用的公式的单元格,复制粘贴到其它单元格,公式不会进行偏移量变化。
6 模糊查询
vlookup支持模糊查询。*表示匹配多个任意字符。
公式:
=VLOOKUP("陈",B2:E13,4,FALSE)