下面我们将介绍VLOOKUP函数。顾名思义,这是一个查找函数,处理垂直列表中的项目。
下面我们将介绍VLOOKUP函数。顾名思义,这是一个查找函数,处理垂直列表中的项目。
其它函数可能会更好地从表中提取数据,但VLOOKUP函数是人们首先想到要试的函数。有些人马上能掌握它,而另一些苦于如何使它工作。的确,这个函数有一些缺陷,但是一旦你理解它如何工作,你就会准备好继续一些其它的查找选项。
让我们来看看VLOOKUP函数的介绍及一些示例。
VLOOKUP函数查找表中第一列的值,返回该表中找到的值所在行的某个值。
什么情况下使用VLOOKUP?
VLOOKUP函数可以在查找列中找到精确的匹配,或者近似的匹配。因此,它能够:
找到所选择的产品的价格
将学生成绩的百分数转换成字母等级
VLOOKUP 语法
VLOOKUP函数的语法如下:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
lookup_value: 想要查找的值— 可以是数值,也可以是单元格引用。
table_array: 查找表— 可以是2列或多列单元格区域引用或者单元格名称。
col_index_num: 想返回值的列,基于表中的列号。
[range_lookup]: 对于精确匹配,使用FALSE或者0;对于近似匹配,使用TRUE或1,查找值所在的列按升序排列。
VLOOKUP陷阱
VLOOKUP可能是慢的,特别是在未排序的表中查找文本字符串并且需要精确匹配。尽可能使用首列按升序排列排序的表,使用近似匹配。可以先使用MATCH函数或COUNTIF函数检查数值,确保它在表的第一列。
其它函数,诸如INDEX函数和MATCH函数,可以用于从表中返回值,并且更有效、更灵活和更强大。
示例1: 找到所选择的项目的价格
VLOOKUP函数查找表的左侧列中的值。在本例中,查找所选择的产品的价格。获取正确的价格是重要的,因此使用下面的设置:
在单元格B7中输入产品名称
价格查找表有两列,在单元格区域B3:C5
价格在表的第2列
FALSE用于最后一个参数,为查找值查找精确匹配
在单元格C7中的公式是:
=VLOOKUP(B7,B3:C5,2,FALSE)
如果在查找表的第一列没有找到产品名称,VLOOKUP公式的结果是#N/A。
示例2: 转换百分数为字母等级
通常,在使用VLOOKUP时需要精确匹配,但有时近似匹配会更好。例如,当转换学生成绩百分数为字母等级时,不想在查找表中输入每一个可能的百分数。相反,可以为每个字母等级输入最低的百分数,然后使用带近似匹配的VLOOKUP。在本例中:
在单元格C9中输入百分数
百分数查找表有两列,在单元格区域C3:D7
查找表对百分数列按升序排序排序
字母等级在表中的第2列
TRUE用于最后一个参数,为查找值查找近似匹配
单元格D9中的公式是:
=VLOOKUP(C9,C3:D7,2,TRUE)
如果在查找表的第1列没有发现百分数,VLOOKUP公式的结果是小于lookup_value的最大值。本例中查找值是77,这个值不在百分数列中,因此返回值75(B)。
示例3: 使用近似匹配找到精确价格
当为文本字符串查找精确匹配时,VLOOKUP函数可能是慢的。本例中,我们为所选择的产品查找价格,无须使用精确匹配设置。为了避免不正确的结果:
查找表第1列按升序排序
COUNTIF检查值,避免不正确的结果
在单元格C7中的公式是:
=IF(COUNTIF(B3:B5,B7),VLOOKUP(B7,B3:C5,2,TRUE),0)
如果在查找表的第1列没有找到产品名称,VLOOKUP公式的结果是0。