VLOOKUP 函数

本文介绍 Microsoft Excel 中 VLOOKUP 函数 (函数:函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时。)的公式语法和用法。

说明

您可以使用 VLOOKUP 函数搜索某个单元格区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)的第一列,然后返回该区域相同行上任何单元格中的值。例如,假设区域 A2:C10 中包含雇员列表,雇员的 ID 号存储在该区域的第一列,如下图所示。

工作表上的单元格区域

如果知道雇员的 ID 号,则可以使用 VLOOKUP 函数返回该雇员所在的部门或其姓名。若要获取 38 号雇员的姓名,可以使用公式 =VLOOKUP(38, A2:C10, 3, FALSE)。此公式将搜索区域 A2:C10 的第一列中的值 38,然后返回该区域同一行中第三列包含的值作为查询值(“Axel Delgado”)。

VLOOKUP 中的 V 表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用 VLOOKUP 而不是 HLOOKUP

语法

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

VLOOKUP 函数语法具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)

注解

示例

示例 1

本示例搜索大气特征表的“密度”列以查找“粘度”和“温度”列中对应的值。(该值是在海平面 0 摄氏度或 1 个大气压下对空气的测定。)

如果将示例复制到一个空白工作表中,可能会更容易理解该示例。

显示如何复制示例?

 
1
2
3
4
5
6
7
8
9
10
11






12






13



14




15






16
ABC
密度粘度温度
0.4573.55500
0.5253.25400
0.6062.93300
0.6752.75250
0.7462.57200
0.8352.38150
0.9462.17100
1.091.9550
1.291.710
公式说明结果
=VLOOKUP(1,A2:C10,2)使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 B 列的值。2.17
=VLOOKUP(1,A2:C10,3,TRUE)使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 C 列的值。100
=VLOOKUP(0.7,A2:C10,3,FALSE)使用精确匹配在 A 列中搜索值 0.7。因为 A 列中没有精确匹配的值,所以返回一个错误。#N/A
=VLOOKUP(0.1,A2:C10,2,TRUE)使用近似匹配在 A 列中搜索值 0.1。因为 0.1 小于 A 列中最小的值,所以返回一个错误。#N/A
=VLOOKUP(2,A2:C10,2,TRUE)使用近似匹配搜索 A 列中的值 2,在 A 列中找到小于等于 2 的最大值 1.29,然后返回同一行中 B 列的值。1.71

示例 2

本示例搜索婴幼儿用品表中“货品 ID”列并在“成本”和“涨幅”列中查找与之匹配的值,以计算价格并测试条件。

如果将示例复制到一个空白工作表中,可能会更容易理解该示例。

显示如何复制示例?

 
1
2
3
4
5
6
7



8




9





10






11
ABCD
货品 ID货品成本涨幅
ST-340童车¥145.67 30%
BI-567围嘴 ¥3.56 40%
DI-328尿布 ¥21.45 35%
WI-989柔湿纸巾 ¥5.12 40%
AS-469吸出器¥2.56 45%
公式说明结果
= VLOOKUP("DI-328", A2:D6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2:D6, 4, FALSE)) 涨幅加上成本,计算尿布的零售价。$28.96
= (VLOOKUP("WI-989", A2:D6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%)零售价减去指定折扣,计算柔湿纸巾的销售价格。$5.73
= IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "涨幅为 " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "成本低于 ¥20.00")如果某一货品的成本大于等于 ¥20.00,则显示字符串“涨幅为 nn%”;否则,显示字符串“成本低于 ¥20.00”。涨幅为 30%
= IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "涨幅为: " & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "成本为 ¥" & VLOOKUP(A3, A2:D6, 3, FALSE)) 如果某一货品的成本大于等于 ¥20.00,则显示字符串“涨幅为 nn%”;否则,显示字符串“成本为 ¥n.nn”。成本为 ¥3.56

示例 3

本示例搜索员工表的 ID 列并查找其他列中的匹配值,以计算年龄并测试错误条件。

如果将示例复制到一个空白工作表中,可能会更容易理解该示例。

显示如何复制示例?

 

1

2

3

4

5

6

7
8






9








10









11





12
ABCDE
ID 姓氏名字职务出生日期
1雅玲销售代表 12/8/1968
2俊元销售副总裁2/19/1952
3丽秋销售代表 8/30/1963
4炫皓销售代表9/19/1958
5销售经理3/4/1955
6销售代表 7/2/1963
公式说明结果
=INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1))针对 2004 会计年度,查找 ID 为 5 的雇员的年龄。使用 YEARFRAC 函数,将此会计年度的结束日期减去雇员的出生日期,然后使用 INT 函数将结果以整数形式显示。49
=IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "未发现员工", VLOOKUP(5,A2:E7,2,FALSE))如果有 ID 为 5 的员工,则显示该员工的姓氏;否则,显示消息“未发现员工”。

VLOOKUP 函数返回错误值 #NA 时,ISNA 函数返回值 TRUE。

=IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "未发现员工", VLOOKUP(15,A3:E8,2,FALSE))如果有 ID 为 15 的员工,则显示该员工的姓氏;否则,显示消息“未发现员工”。

VLOOKUP 函数返回错误值 #NA 时,ISNA 函数返回值 TRUE。

未发现员工
=VLOOKUP(4,A2:E7,3,FALSE) & " " & VLOOKUP(4,A2:E7,2,FALSE) & " 是 " & VLOOKUP(4,A2:E7,4,FALSE) 对于 ID 为 4 的雇员,将三个单元格的值连接成一个完整的句子。王炫皓是销售代表。
function search leftmost column array particular value return cell match value and return data v look up Vertical Lookup VLOOKUP Function xl

请参阅