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)

运行结果如下。

img

说明

1 查询表格为B2:E13,共4列12行。

2 查询B2字段值等于"小步教程"的记录。

3 显示B2:E13中的第4个字段,对应考试成绩。


3 多条记录符合查询条件

当多条记录符合查询条件时,只会显示第1条记录的值。

例:查询姓名为"刘一"的成绩。表格中存在多个学生的姓名为"刘一"。

公式:

=VLOOKUP("刘一",B2:E13,4,FALSE)

运行结果如下:

img

结果只显示第1条记录的值。


4 没有记录符合查询条件

当没有记录符合查询条件,会报错:#N/A。表示没有匹配项。

例:查询姓名为xiaobuteach的成绩。表中不存在姓名xiaobuteach。

公式

=VLOOKUP("xiaobuteach",B2:E13,4,FALSE)

img

可以通过函数IFNA显示成相应结果。

公式:

=IFERROR(VLOOKUP("xiaobuteach",B2:E13,4,FALSE),"找不到学生")

运行结果如下。

img


5 绝对引用

相对引用

公式中使用单元格A1,属于相对引用。

将公式所在单元格复制粘贴到其它单元格时,单元格公式的相对引用的行数与列数会自动变化,相应偏移。而这种偏移通常不是我们需要的,会引起错误。


复制单元格C16到单元格C18。

单元格C16公式

=VLOOKUP("小步教程",B2:E13,4,FALSE)

单元格C18公式,导致引用的表格发生变化,计算出错。

=VLOOKUP("小步教程",B4:E15,4,FALSE)

img


绝对引用

为保证公式单元格复制粘贴时,单元格引用不会变化,使用绝对引用。在行号列号前都加英文感叹号!。

下图中,C16公式:

=VLOOKUP("小步教程",$B$2:$E$13,4,FALSE)

复制后C18公式,完全不变。

=VLOOKUP("小步教程",$B$2:$E$13,4,FALSE)

运行效果如下。

img

说明

1 $B$2。在单元格引用时,行号列号前加$,表示绝对引用。 2 绝对引用的公式的单元格,复制粘贴到其它单元格,公式不会进行偏移量变化。


6 模糊查询

vlookup支持模糊查询。*表示匹配多个任意字符。

公式:

=VLOOKUP("陈",B2:E13,4,FALSE)

img