Excel Vlookup函数怎么用

如题所述

VLOOKUP 函数

如果需要按行查找表或区域中的内容,请使用 VLOOKUP,这是一个查找和引用函数。例如,按员工号查找某位员工的姓氏,或通过查找员工的姓氏查找该员工的电话号码(就像使用电话簿)。

VLOOKUP 的秘诀是组织数据,这样您查找的值(即员工姓氏)位于要查找的返回值(员工的电话号码)的左侧。

语法

VLOOKUP (lookup_value, table_array, col_index_num,
[range_lookup])

例如:

=VLOOKUP(105,A2:C7,2,TRUE)

=VLOOKUP("袁",B2:E7,2,FALSE)

参数名称

说明

lookup_value (必需参数)

要查找的值。要查找的值必须位于 table-array
中指定的单元格区域的第一列中。

例如,如果 table-array 指定的单元格为
B2:D7,则 lookup_value 必须位于列 B 中。请参见下图。Lookup_value 可以是值,也可以是单元格引用。

Table_array (必需参数)

VLOOKUP 在其中搜索 lookup_value
和返回值的单元格区域。

该单元格区域中的第一列必须包含 lookup_value(例如,下图中的“姓氏”)。此单元格区域中还需要包含您要查找的返回值(例如,下图中的“名字”)。

了解如何选择工作表中的区域。

col_index_num (必需参数)

其中包含返回值的单元格的编号(table-array
最左侧单元格为 1 开始编号)。

range_lookup (可选参数)

一个逻辑值,指定希望 VLOOKUP 查找精确匹配值还是近似匹配值:

TRUE 假定表中的第一列按数字或字母排序,然后搜索最接近的值。这是未指定值时的默认方法。

FALSE
在第一列中搜索精确值。

下图显示了如何使用 =VLOOKUP("Akers",B2:D5,2,FALSE)
设置您的工作表以返回“宁”。

示例

要在 Excel 中使用这些示例,请复制下表中的数据,然后将其粘贴进新工作表的 A1 单元格中。

ID

姓氏

名字

职务

出生日期

101





销售代表

1968/12/8

102





销售副总裁

1952/2/19

103





销售代表

1963/8/30

104





销售代表

1958/9/19

105





销售经理

1955/3/4

106





销售代表

1963/7/2

公式

说明

=VLOOKUP("袁",B2:E7,2,FALSE)

在 table_array B2:E7 的第一列(B
列)中查找值“袁”,返回在 table_array 的第二列(C 列)中找到的值“洛”。
range_lookup FALSE
返回精确匹配。

=VLOOKUP(102,A2:C7,2,FALSE)

为 A 列中的 lookup_value102 查找姓氏的精确匹配。返回了“袁”。如果 lookup_value 为 105,则返回“谢”。

=IF(VLOOKUP(103,A1:E7,2,FALSE)="夏","已找到","未找到")

检查 ID 为 103 的员工的姓氏是否为“夏”。 由于
103 实际是“牛”,结果是“未找到”。
如果您在公式中将“夏”更改为“牛”,则结果是“已找到”。

=INT(YEARFRAC(DATE(2014,6,30), VLOOKUP(105,A2:E7,5, FALSE), 1))

针对 2014 财政年度,查找 ID 为 105
的员工的年龄。使用 YEARFRAC
函数,以此财政年度的结束日期减去出生日期,然后使用 INT 函数将结果 59 以整数形式显示。

=IF(ISNA(VLOOKUP(105,A2:E7,2,FALSE)) = TRUE, "未找到员工",
VLOOKUP(105,A2:E7,2,FALSE))

如果有 ID 为 105 的员工,则显示该员工的姓氏,即“谢”;否则,显示消息“未找到员工”。当 VLOOKUP 函数返回错误值
#N/A 时,ISNA 函数(请参阅 IS 函数)返回值 TRUE。

=VLOOKUP(104,A2:E7,3,FALSE) & " " & VLOOKUP(104,A2:E7,2,FALSE) &
"是" & VLOOKUP(104,A2:E7,4,FALSE)

对于 ID 为 104 的员工,将三个单元格的值连接(组合)为一个完整的句子“宋臻是销售代表”。

常见问题

问题

出错原因

返回了错误值

如果 range_lookup 为 TRUE
或被排除在外,需要对第一列按字母或数字顺序排序。如果未对第一列排序,可能会返回意外值。请对第一列排序,或使用 FALSE
以获得精确匹配项。

单元格中显示 #N/A

如果 range_lookup 为 TRUE,并且
lookup_value 中的值比 table_array 的第一列中的最小值小,将显示错误值
#N/A。

如果 range_lookup 为
FALSE,则错误值 #N/A 表示未找到精确匹配项。

了解有关工作表中的错误(如
#N/A、#REF 等)的更多信息。

单元格中显示 #REF!

如果 col_index_num 大于 table-array 中的列数,则显示错误值
#REF!。

单元格中显示 #VALUE!

如果 table_array 小于 1,则显示错误值
#VALUE!。

单元格中的 #NAME?

错误值 #NAME? 通常意味着该公式缺少引号。 要查找人员的姓名,请确保在公式中的姓名左右加上引号。 例如,在
=VLOOKUP("袁",B2:E7,2,FALSE) 中输入姓氏“"袁"”。

最佳做法

要执行的操作

原因

对 range_lookup
使用绝对引用

通过使用绝对引用,可以向下填充公式,这样该公式始终在完全精确的查找区域内查找。

了解如何使用绝对单元格引用。

请勿将数字或日期值存储为文本。

在搜索数字或日期值时,请确保 table_array
第一列中的数据未存储为文本值。否则,VLOOKUP 可能返回不正确或意外的值。

对第一列排序

range_lookup 为 TRUE 时使用
VLOOKUP 之前对 table_array
的第一列排序。

使用通配符

如果 range_lookup 为 FALSE 且
lookup_value 为文本,则可以在 lookup_value 中使用通配符(问号 (?) 和星号
(*))。问号匹配任意单个字符;星号匹配任意一串字符。如果要查找实际的问号或星号,请在该字符前键入波形符 (~)。

例如,=VLOOKUP("Fontan?",B2:E7,2,FALSE)
将搜索最后一个字符不确定的所有“袁”实例。

请确保您的数据中不包含错误的字符。

在第一列中搜索文本值时,请确保第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。否则,VLOOKUP
可能返回意外的值。

要获得准确的结果,请尝试使用 CLEAN 函数或 TRIM
函数删除单元格中表格值后后面的后置空格。

相关资源

请参阅课程摘要卡:VLOOKUP 复习,复习 VLOOKUP
在查找表中数据方面的最佳用法。

了解如何创建或更改单元格引用。

了解如何以字母或数字顺序为表中的数据排序。

VLOOKUP 是一个查找和引用函数,其中包含 HLOOKUP 函数。

CLEAN 函数或 TRIM
函数用于删除表值中的前导空格。

了解有关工作表中的错误(如
#N/A、#REF 等)的更多信息。

请观看有关如何使用 VLOOKUP
函数的视频。

适用于: Excel Starter, Excel for Mac
2011, Excel 2016 for Mac, Excel 2010, Excel 2013, Excel 2016 Preview, Excel
2007, Excel Online


此信息是否有帮助?

是 否

我们应该如何改进?
255
剩余字符数

为保护您的隐私,请不要在您的反馈意见中包含联系信息。 查看我们的
隐私策略。
发送

谢谢您的反馈!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-08

Excel怎么使用VLOOKUP函数?这个视频告诉你!

第2个回答  2020-12-08

VLOOKUP函数,屏蔽0与NA值

第3个回答  2020-12-08

excel中VLOOKUP函数如何使用,我教你!

第4个回答  2020-12-08
相似回答