lookup函数有两种使用方式:向量形式和数组形式。本课程介绍lookup函数的向量形式,这也是使用较为广泛的形式。
一、语法结构
Lookup(查找值,查找值所在的列,结果值所在的列)
注意:查找值所在的列必需按升序排列,否则可能会返回错误值。
二、实例
如下图所示,按照姓名查找对应的销量。
按照lookup函数的语法结构,E3单元格的公式应该为:=lookup(D3,A3:A7,B3:B7),D3为查找值,此处要查找的是姓名。A3:A7为姓名所在的列。B3:B7为结果值即销量所在的列。其中,A3:A7必需按照升序进行排列才能查找到正确的值。
首先我们先来看一下如果不对【姓名】列进行升序,使用lookup函数的查找结果。
从上面的动态演示图可以看到,当【姓名】列未按照升序排序时,lookup函数查找的结果可能是正确的,也可能是错误的。
如果【姓名】列按升序排序,使用lookup函数的查找结果。
当【姓名】列按升序排序后,lookup函数的查找结果是正确的。
但是在工作中,我们往往需要保持数据原有的排序不变。
如何在不对查找值所在的列进行排序的情况下,使用lookup函数查找正确结果呢?
在不对【姓名】列按照升序排序的情况下,使用公式 lookup(1,0/(A3:A7=D3),B3:B7)能够正确地查找结果。
如何理解该公式呢?
假如D3=“孙平”,A3:A7=D3会产生一个{False;False;False;False;True}的数组;
0/(A3:A7=D3)则生成{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0}的数组。
由于lookup会过滤掉错误值,所以在lookup眼中,上面的数组是这样的{0}。
由于lookup会查找到小于查找值(此处查找值为1)的最大值,因此lookup最终会查找到0所在的位置,此处即为B7单元格的值。
联系客服