一、函数功能:
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
二、语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在数组第一列中查找的数值。可以是数值、引用或文本字符串。
Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或数据清单。
- 如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
- 通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。
- Table_array 的第一列中的数值可以为文本、数字或逻辑值。
- 文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
- 如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
- 如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
- 如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
三、应用举例
例:某校初三年级期中考试后,将每班分数划分为几个分数段,在班与班之间进行横向比较。
在Sheet2数据表中,分数段设置如下:
在Sheet1数据表中,分数表如下:
在上图中,C3单元格中输入公式:=VLOOKUP(B3,Sheet2!$A$3:$C$9,2,TRUE)获取等级,在D3单元格中输入公式:=VLOOKUP(B3,Sheet2!$A$3:$C$9,3,TRUE)获取分值,最后拖动填充其它单元格。其它科目的依次类推。
公式说明如下:
=VLOOKUP(B3,Sheet2!$A$3:$C$9,2,TRUE)——在Sheet2工作表的A3-C9区域中的第1列(即语文分数段)数据中,查找Sheet1工作表的B3单元格的值(即97),如果找到,则返回匹配值所在行的第2列的值(即A);如果找不到,若 range_lookup的值 为 TRUE(近似匹配)或缺省,则返回小于等于B3单元格的值的最大值(即95)所在行第2列的值,若range_lookup的值 为 false(精确匹配),则返回错误值#N/A。
=VLOOKUP(B3,Sheet2!$A$3:$C$9,3,TRUE)——在工作表Sheet2的A3-C9区域中的第1列(即语文分数段)数据中,查找工作表Sheet1的B3单元格的值(即97),如果找到,则返回匹配值所在行的第3列的值(即1);如果找不到,若 range_lookup的值 为 TRUE(近似匹配)或缺省,则返回小于等于B3单元格的值的最大值(即95)所在行第3列的值,若range_lookup的值 为 false(精确匹配),则返回错误值#N/A。
Sheet2!$A$3:$C$9是工作表Sheet2的A3-C9区域的绝对引用,在自动填充时不会更改。
- 上一篇教程: 没有了
- 下一篇教程: 【Excel】使用技巧