查找函数.docx
《查找函数.docx》由会员分享,可在线阅读,更多相关《查找函数.docx(15页珍藏版)》请在冰点文库上搜索。
![查找函数.docx](https://file1.bingdoc.com/fileroot1/2023-6/13/077f9dfa-9698-4a8c-a363-22c6939c041d/077f9dfa-9698-4a8c-a363-22c6939c041d1.gif)
查找函数
VLOOKUP函数
全部显示
全部隐藏
本文介绍MicrosoftExcel中VLOOKUP函数函数:
函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。
函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时。
的公式语法和用法。
说明
您可以使用VLOOKUP函数搜索某个单元格区域(区域:
工作表上的两个或多个单元格。
区域中的单元格可以相邻或不相邻。
)的第一列,然后返回该区域相同行上任何单元格中的值。
例如,假设区域A2:
C10中包含雇员列表,雇员的ID号存储在该区域的第一列,如下图所示。
如果知道雇员的ID号,则可以使用VLOOKUP函数返回该雇员所在的部门或其姓名。
若要获取38号雇员的姓名,可以使用公式=VLOOKUP(38,A2:
C10,3,FALSE)。
此公式将搜索区域A2:
C10的第一列中的值38,然后返回该区域同一行中第三列包含的值作为查询值(“黄雅玲”)。
VLOOKUP中的V表示垂直方向。
当比较值位于所需查找的数据的左边一列时,可以使用VLOOKUP而不是HLOOKUP。
语法
VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
VLOOKUP函数语法具有下列参数参数:
为操作、事件、方法、属性、函数或过程提供信息的值。
:
∙lookup_value 必需。
要在表格或区域的第一列中搜索的值。
lookup_value参数可以是值或引用。
如果为lookup_value参数提供的值小于table_array参数第一列中的最小值,则VLOOKUP将返回错误值#N/A。
∙table_array 必需。
包含数据的单元格区域。
可以使用对区域(例如,A2:
D8)或区域名称的引用。
table_array第一列中的值是由lookup_value搜索的值。
这些值可以是文本、数字或逻辑值。
文本不区分大小写。
∙col_index_num 必需。
table_array参数中必须返回的匹配值的列号。
col_index_num参数为1时,返回table_array第一列中的值;col_index_num为2时,返回table_array第二列中的值,依此类推。
如果col_index_num参数:
∙小于1,则VLOOKUP返回错误值#VALUE!
。
∙大于table_array的列数,则VLOOKUP返回错误值#REF!
。
∙range_lookup 可选。
一个逻辑值,指定希望VLOOKUP查找精确匹配值还是近似匹配值:
如果range_lookup为TRUE或被省略,则返回精确匹配值或近似匹配值。
如果找不到精确匹配值,则返回小于lookup_value的最大值。
要点 如果range_lookup为TRUE或被省略,则必须按升序排列table_array第一列中的值;否则,VLOOKUP可能无法返回正确的值。
有关详细信息,请参阅对区域或表中的数据进行排序。
如果range_lookup为FALSE,则不需要对table_array第一列中的值进行排序。
∙如果range_lookup参数为FALSE,VLOOKUP将只查找精确匹配值。
如果table_array的第一列中有两个或更多值与lookup_value匹配,则使用第一个找到的值。
如果找不到精确匹配值,则返回错误值#N/A。
说明
∙在table_array的第一列中搜索文本值时,请确保table_array第一列中的数据不包含前导空格、尾部空格、非打印字符或者未使用不一致的直引号('或")与弯引号(‘或“)。
否则,VLOOKUP可能返回不正确或意外的值。
有关详细信息,请参阅CLEAN函数和TRIM函数。
∙在搜索数字或日期值时,请确保table_array第一列中的数据未存储为文本值。
否则,VLOOKUP可能返回不正确或意外的值。
∙如果range_lookup为FALSE且lookup_value为文本,则可以在lookup_value中使用通配符(问号(?
)和星号(*))。
问号匹配任意单个字符;星号匹配任意字符序列。
如果要查找实际的问号或星号,请在字符前键入波形符(~)。
示例
示例1
本示例搜索大气特征表的“密度”列以查找“粘度”和“温度”列中对应的值。
(该值是在海平面0摄氏度或1个大气压下对空气的测定。
)
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
a.选择本文中的示例。
如果在ExcelWebApp中复制该示例,请每次复制并粘贴一个单元格。
要点 请勿选择行标题或列标题。
从帮助中选择一个示例
b.按Ctrl+C。
c.创建一个空白工作簿或工作表。
d.在工作表中,选择单元格A1,然后按Ctrl+V。
如果在ExcelWebApp中工作,请对示例中的每个单元格重复复制和粘贴操作。
要点 为使示例正常工作,必须将其粘贴到工作表的单元格A1中。
e.要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中单击“显示公式”按钮。
在将示例复制到空白工作表中后,您可以根据自己的需求对它进行调整。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A
B
C
密度
粘度
温度
0.457
3.55
500
0.525
3.25
400
0.606
2.93
300
0.675
2.75
250
0.746
2.57
200
0.835
2.38
150
0.946
2.17
100
1.09
1.95
50
1.29
1.71
0
公式
说明
结果
=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
注释 在ExcelWebApp中,若要按正确格式查看结果,请选择相应单元格,在“开始”选项卡的“数字”组中,单击“数字格式”旁边的箭头,然后单击“常规”。
示例2
本示例搜索婴幼儿用品表中“货品ID”列并在“成本”和“涨幅”列中查找与之匹配的值,以计算价格并测试条件。
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
1.在本文中选择示例。
如果正在ExcelWebApp中复制示例,请一次复制并粘贴一个单元格。
重要提示请不要选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在该工作表中,选中单元格A1,然后按Ctrl+V。
如果正在ExcelWebApp中工作,请为示例中的每个单元格重复进行复制和粘贴。
重要提示为了使示例正常运行,必须将它粘贴到工作表中的单元格A1中。
5.若要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或者单击“公式”选项卡上“公式审核”组中的“显示公式”按钮。
将示例复制到一个空白工作表中之后,可以根据需要对它进行调整。
1
2
3
4
5
6
7
8
9
10
11
A
B
C
D
货品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
注释 在ExcelWebApp中,若要按正确格式查看结果,请选择相应单元格,在“开始”选项卡的“数字”组中,单击“数字格式”旁边的箭头,然后单击“常规”。
示例3
本示例搜索员工表的ID列并查找其他列中的匹配值,以计算年龄并测试错误条件。
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
如何复制示例?
1.在本文中选择示例。
如果正在ExcelWebApp中复制示例,请一次复制并粘贴一个单元格。
重要提示请不要选择行标题或列标题。
从帮助中选择一个示例
2.按Ctrl+C。
3.创建一个空白工作簿或工作表。
4.在该工作表中,选中单元格A1,然后按Ctrl+V。
如果正在ExcelWebApp中工作,请为示例中的每个单元格重复进行复制和粘贴。
重要提示为了使示例正常运行,必须将它粘贴到工作表中的单元格A1中。
5.若要在查看结果和查看返回结果的公式之间进行切换,请按Ctrl+`(重音符),或者单击“公式”选项卡上“公式审核”组中的“显示公式”按钮。
将示例复制到一个空白工作表中之后,可以根据需要对它进行调整。
1
2
3
4
5
6
7
8
9
10
11
12
A
B
C
D
E
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的雇员,将三个单元格的值连接成一个完整的句子。
王炫皓是销售代表。
注释 在ExcelWebApp中,若要按正确格式查看结果,请选择相应单元格,在“开始”选项卡的“数字”组中,单击“数字格式”旁边的箭头,然后单击“常规”。
另请参阅:
查找和引用函数(参考)