要完全理解查找函数,您必须理解二分法。

当你理解了查找的原理,你就能更好地使用它。二分法原理,一起学吧。

让我们从一个例子开始:

【示例】在下图中,只有两个表的第五行中的成员名称不同。查找B的消费金额时,显示结果不一样,而A的消费金额直接出现在左侧。

公式显示:

B11 =查找(A11,A2:B8)

E11 =查找(D11,D2:E8)

想全面了解Lookup函数,必须要懂二分法

当你理解了二分法,你就能理解为什么会出现上述结果。

第一,什么是二分法。

逐个搜索是一种遍历方法。二分法是不同的。顾名思义,从二分法搜索。如果找不到,从下一个二分法开始搜索,直到找到一个和它一样大或比它小的数。

第二,基本原理。

有两个原则。

1.二分法的确定

总数为奇数时,二分法容易判断,中间数就够了。如果有七个数字(也就是这个函数的第二个参数),第四个数字就是中间的数字。

=查找(A11,A2:B8)

想全面了解Lookup函数,必须要懂二分法

如果有12个数,那么第六个位置就是平分线。有一个公式可以计算。

=INT((总行数+1)/2)

2.确定搜索方向。

当你在二分法中找不到的时候,下一步该怎么做?

如果最后一个二分法的值大于搜索到的值,则向上搜索,找出新的二分法,直到找到对应的值。如下图。

想全面了解Lookup函数,必须要懂二分法

同样,如果数值小于搜索值,继续向下搜索。

想全面了解Lookup函数,必须要懂二分法

如果二进制值等于搜索到的值,则逐个向下检查,直到相邻且相等的值满足条件。

想全面了解Lookup函数,必须要懂二分法

三。查找示例分析

1.区间搜索。

【例1】下图是常见的区间搜索公式。350对应的提成率是7%。

想全面了解Lookup函数,必须要懂二分法

显示:

第一步:从第一个二分法(对应A4)开始搜索,200 < 30,然后往下看。

第二步:400的值>第二个二分法(对应A6) >: 30,你要查,只有A5的值是300,因为这个值小于350,所以B5是最终的搜索结果。

2.找到最后一个。

【例2】如下图,求a最后一次消费金额。

想全面了解Lookup函数,必须要懂二分法

分析:

当然,这里不能直接用Lookup找B,否则用二分法搜索,结果可能不是最后一个。所以合格的除以0就变成了0,不合格的就变成了误差值:

=0/(A2:A8=A11)

结果是

{0;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}

由于lookup过滤掉了错误的值,在lookup看来,上面的数组是这样的:

{0;0;0}

然后用1找到最后一个0的位置。

=Lookup(1,0/(A2:A8=A11),B2:B8)

这里,1是任何大于0的值。因为大于0,所以用二分法搜索时,会一路向下搜索,直到最后一个值为0。

Lookup的二分法搜索是跳跃式搜索。它总是认为要搜索的值的集合是从小到大排列的。如果它遇到小的,它会低头找大的,如果遇到大的,它会抬头找小的。