LOOKUP函数的特别之处
LOOKUP函数是一个查找函数,可以从单行或单列区域或者从一个数组返回值。LOOKUP函数具有两种语法形式:向量形式和数组形式。
数组形式是为了保证其与其他电子表格产品的兼容,因此,在这种情形下,应尽量使用更为便捷的VLOOKUP函数或HLOOKUP函数。
LOOKUP函数之美
LOOKUP函数有一些特别之处,正是这些特别之处显示了LOOKUP函数之美。
LOOKUP函数的特别之处之一:其向量形式
LOOKUP函数可以在单行区域或单列区域(称为“向量”)中查找值,然后返回另一个单行区域或单列区域中相同位置的值。当要查询的值列表较大或者值可能会随时间而改变时,使用这种向量形式。
LOOKUP函数的向量形式的基本使用如图1所示。
图1
注意,在使用LOOKUP函数查询时,必须按升序排列查询的数据。
LOOKUP函数的特别之处之二:允许其参数生成数组
如图2所示的工作表,要求利润值为负值的最后一个月,单元格F3中的公式为:
=LOOKUP(2,1/(B2:B13<0),A2:A13)
公式中,测试单元格区域B3:B13中的值是否小于0,将结果除1,得到数组:
{1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
然后,LOOKUP函数在该数组中查找2,很显然找不到该数值,因此找到最后一个数字值1,并返回该值所在位置相同行的列A中的月份值。
图2
这样,不需要像数组公式一样,在输入完后需按Ctrl+Shift+Enter键。
LOOKUP函数的特别之处之三:使用一个极大数找到满足条件的最后一个数据
如图3所示的工作表,查找列A中最后一个数的公式为:
=LOOKUP(9.99999999999999E+307,A:A)
公式中,使用了Excel能够表示的最大的数字9.99999999999999E+307,LOOKUP函数查找该数,很显示找不到,因此返回列A中的最后一个数字。
图3
这里使用的是LOOKUP函数的数组形式。注意到,列A中包含文本且没有排序。
示例
分别查找每名员工最近出差的日期
如图4所示的工作表,在A1:B10中列出了每名员工2017年出差时间,并已按顺序升序排列。单元格E3:E5中是这些员工最近出差的日期。
单元格E3中的公式:
=LOOKUP(D3,$A$2:$A$10,$B$2:$B$10)
下拉至单元格E5。
图4
结语
看起来,LOOKUP函数可能没有VLOOKUP函数使用广泛,但存在即有道理。正如本文介绍的,LOOKUUP函数的特别之处让其在公式中也有很多用武之地。