LOOKUP函数用于从单行或单列区域或者从一个数组返回值。LOOKUP函数具有两种语法形式:向量形式和数组形式。
向量形式
向量是只含一行或一列的区域。LOOKUP的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。其语法如下。
LOOKUP(lookup_value,lookup_vector,result_vector)
其中参数lookup_value为LOOKUP函数在第一个向量中搜索的值。lookup_value可以是数字、文本、逻辑值、名称或对值的引用。参数lookup_vector为只包含一行或一列的区域,lookup_vector中的值可以是文本、数字或逻辑值。参数result_vector为只包含一行或一列的区域,它必须与lookup_vector大小相同。
注意:lookup_vector中的值必须以升序顺序放置,如“...,-2,-1,0,1,2,...”、“A-Z”、“FALSE,TRUE”;否则,LOOKUP可能无法提供正确的值。大写文本和小写文本是等同的。
【典型案例】从单行或单列区域或者从一个数组查找数据。本例的原始数据如图15-19所示。
步骤1:在A8单元格中输入公式“=LOOKUP(13,A2:A6,B2:B6)”,用于在A列中查找13,然后返回B列中同一行内的值(兰花厅)。
步骤2:在A9单元格中输入公式“=LOOKUP(18,A2:A6,B2:B6)”,用于在A列中查找18,与接近它的最小值17匹配,然后返回B列中同一行内的值(翠竹轩)。
步骤3:在A10单元格中输入公式“=LOOKUP(22,A2:A6,B2:B6)”,用于在A列中查找22,与接近它的最小值21匹配,然后返回B列中同一行内的值(紫云斋)。
步骤4:在A11单元格中输入公式“=LOOKUP(0,A2:A6,B2:B6)”,用于在A列中查找0,并返回错误,因为0小于lookup_vector区域中“A2:A7”中的最小值。计算结果如图15-20所示。
图15-19 原始数据
图15-20 计算结果
数组形式
LOOKUP的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列内同一位置的值。当要匹配的值位于数组的第一行或第一列中时,使用LOOKUP的这种形式;当要指定列或行的位置时,则须使用LOOKUP的另一种形式。
说明:一般情况下,最好使用HLOOKUP或VLOOKUP函数而不是LOOKUP的数组形式,因为LOOKUP的这种形式是为了与其他电子表格程序兼容而提供的。
LOOKUP的数组形式语法如下。
LOOKUP(lookup_value,array)
其中参数lookup_value为LOOKUP在数组中搜索的值。
【典型案例】在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列内同一位置的值。本例的原始数据如图15-21所示。
步骤1:在A2单元格中输入公式“=LOOKUP("B",{"A","B","C","D";5,6,7,8})”,用于在数组的第一行中查找“B”,查找小于或等于它(“B”)的最大值,然后返回最后一行中同一列内的值。
步骤2:在A3单元格中输入公式“=LOOKUP("apple",{"A",3;"B",4;"C",5})”,用于在数组的第一行中查找“apple”,查找小于或等于它(“A”)的最大值,然后返回最后一列中同一行内的值。计算结果如图15-22所示。
图15-21 原始数据
图15-22 计算结果