chrisfang的Excel大全

#微函数系列#之LOOKUP函数

2011-11-16
作者: chrisfang | 分类: Excel函数公式 | 阅读: 9,670 次浏览 | Tags:
声明: 本站文章均属原创,转载时请标明出处

LOOKUP函数是一个功能非常强大的查询函数,使用也非常广泛。从函数名称上可以看出它是VLOOKUP函数和HLOOKUP函数的近亲,同时它也具备MATCH函数的某些特征。它可以直接从查询目标中返回匹配的值或相近的值,还可以通过映射关系从另一组相对应的目标中返回数据。

 LOOKUP函数包含向量和数组两种用法。

所谓向量用法指的是函数在目标向量(一维的数组或单元格引用)按顺序查找数据,找到匹配数据以后从返回向量中返回与其位置相对应的数据(目标向量和返回向量具有位置映射关系)。如果省略返回向量(第三参数),则直接从目标向量(第二参数)中返回匹配值。

需要注意的是,在一般的查询中,目标向量的数组或单元格引用中,数据需要事先按照升序排列,包括数值、文本和逻辑值。文本也有大小之分,排序依据是字符的内码,例如A<B<C。数值、逻辑值和文本之间的大小顺序是:数值<文本<False<True。

LOOKUP的查询数据能在目标向量中找到完全匹配的数据时,直接返回该数据或与该数据相映射的数据。如果没有完全一致的数据,则返回其中小于等于查询数据的最大值。

例如LOOKUP(3.5,{1,2,3,4,5}) 的返回值为3。

如果查询数据比目标向量中的最小值更小,函数就会返回错误值。

如果目标向量中的数据没有事先排序,也可以变换一种形式来构建LOOKUP公式进行精确匹配查询。例如要在{2,4,1,3,5}中查找3所对应的数据,可以这样构建公式:

=LOOKUP(1,0/({2,4,1,3,5}=3),返回向量)

其中0/({2,4,1,3,5}=3)的部分会返回一组由错误值和数值“0”所组成的数组,其中的“0”就对应着数组中匹配值“3”的所在位置。根据前述LOOKUP没有精确匹配时的查询规则,将返回小于等于查询目标“1”的最大值,因此这个公式将返回“0”所对应的数据。

 

Lookup函数的第二种数组用法,指的是在一个二维的数组或单元格引用中查找匹配数据,查找的方向与这个二维数组的宽度和高度有关:如果高度大于等于宽度(纵向长方形),则Lookup函数会在其首列中进行查找,返回其最末列的对应值,类似于VLOOKUP函数的查询方式;如果高度小于宽度(横向长方形),则Lookup函数会在其首行中进行查找,返回其最末行的对应值,类似于HLOOKUP函数的查询方式。

Lookup函数在查询中不区分英文字母的大小写。

Lookup函数的常见应用场景包括:

1,精确匹配查询。

2,升序序列的近似查询。例如分数段的划分,可以替代多个IF条件的嵌套。

3,最末项的查询,通常用Lookup(9E+307来查询数值数据的最末项,或用Lookup("座" 来查询文本单字符的最末项。

4,与MATCH函数组合,可以进行二维的组合查询。

 

点击查看大图

一条评论

  1. 吴大大说道:

    这个函数真的很棒,非常感谢你的文章,受益匪浅。其他MATCH OFFSET index等没怎么看懂,就这个lookup系列简单好懂,易学易用,函数真的是太棒了。

吴大大进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>