LOOKUP函数从一行或一列单元格区域或者从数组中返回值。
LOOKUP函数从一行或一列单元格区域或者从数组中返回值。
什么情况下使用LOOKUP函数?
LOOKUP函数能够基于查找值返回结果,例如:
找到列中的最后一个数字
查找含有负数的最后一个月
将学生的百分数成绩转换成字母成绩
LOOKUP函数的语法
LOOKUP函数有两种语法形式——矢量和数组。使用矢量形式,在指定的列或行中查找值;使用数组形式,在数组的第一行或列中查找。
矢量形式的语法如下:
LOOKUP(lookup_value,lookup_vector,result_vector)
§lookup_value可以是文本、数字、逻辑值、名称或引用
§lookup_vector是仅有一行或一列的单元格区域
§result_vector是仅有一行或一列的单元格区域
§lookup_vector和result_vector必须大小相同
数组形式的语法如下:
LOOKUP(lookup_value,array)
§lookup_value可以是文本、数字、逻辑值、名称或引用
§基于数组维度搜索:
§如果列比行多,那么搜索第一行
§如果行列数相等,或者行比列多,那么搜索第一列
§从最后的行或列的相同位置返回值
LOOKUP函数陷阱
§LOOKUP函数没有像VLOOKUP和HVLOOKUP函数中的精确匹配选项。如果没有找到查找值,那么匹配小于查找值的最大值。
§供查找的数组或矢量必须按升序排序,否则结果可能不正确。
§如果供查找的数组或矢量中的第一个值大于查找值,那么结果显示#N/A错误。
示例1: 查找列中最后一个数字
在数组形式中,可以使用LOOKUP函数查找列中最后一个数字。
Excel帮助中规范列出9.99999999999999E+307为允许输入到单元格中的最大的数字。在本例的公式中,该数字作为查找值输入。假设没有找到大的数字,返回列D中最后一个数。
本例中,列D中的数字没有被排序,并且包含文本条目。
=LOOKUP(9.99999999999999E+307,D:D)
示例2:查找含有负数的最后一个月
本例以矢量形式使用LOOKUP函数,在列D中是销售量,在列E中是月名。有几个月销售量不顺利,在销量列中是负值。
为了找到含有负销量的最后一个月,LOOKUP公式测试每个销售量是否小于0。接着,将结果除1,返回1或者#DIV/0!错误。
没有找到查找值2,因此使用最后一个数字1,返回列E中相应位置的月名。
=LOOKUP(2,1/(D2:D8<0),E2:E8)
示例3: 将学生百分数成绩转换成字母成绩
正如在VLOOKUP公式中做的一样,能够以矢量形式使用LOOKUP函数来为学生的百分数成绩找到相应的字母成绩。使用LOOKUP函数,无须在查找表的第一列放置百分数,可以指定任意列放置百分数。
本例中,列D以升序排序放置分数,列C是字母成绩,位于查找列最左侧。
=LOOKUP(C10,D4:D8,C4:C8)