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。表示没有匹配项。

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

公式

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

img

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

公式:

=IFERROR(VLOOKUP("dushare",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