LOOKUP函数,EXCEL表格里使用频率较高的一个函数,功能颇多,标准公式有两个:
其一:向量型查找
=lookup(lookup_value,lookup_vector,result_vector)
=lookup(查找的值,查找的范围,返回值的范围)
其二:数组型查找
= lookup(lookup_value,array)
=lookup(查找的值,数组)
使用这两个公式前,都一直在强调,查找范围或是数组的第一列必须要升序排列,否则结果就有可能不正确,为啥呢?就因为他的查找方式采用的是二分查找法!
何谓二分查找法?白话来说,就是每次查找的时候将查找范围分成两半,将查找值和中位值进行比较,如果中位值小于查找值,那么就在上半部分继续二分查找,如果中位值大于查找值,则在下半部分继续二分查找,如果中位值等于查找值,则往下逐一查找相邻又相等的值,返回最后一条数据。就因为这个二分查找,每次过滤掉一半的数据,如果不排序,查找的结果就不可能完全准确。
下方我们还是用数据图来详细了解下二分查找的方式。
如果,左侧表格里一共有14行数据,第一次二分查找,中位值是第7行20,因为14÷2=7
第一次二分位的中位值是20,小于查找值80,故仅会继续在下方的数据进行二分查找。
下方一共有7行数据,对半分是(7+1)÷2=4,从8行开始往下数4行是第2次的中位值120,
120大于80,故继续在8行到10行之间查找,中位数是2,从8行往下数2行是第9行中位值是80,80等于查找值80,会往下逐一查看,第10行的值也是80,故返回第10行对应的结果值L。

下方数据依然是14行,第一次二分查找中位值为第7行数据20,20小于查找值60,往下继续二分查找,11行是第二次二分中位值,120大于查找值60,往上继续二分查找,第9行数据80是第三次二分中位值,大于查找值60,继续往上二分查找,得到第8行数据60,等于查找值,返回其对应的结果值。
订阅解锁TA的全部专属内容