excel学习库

excel表格_excel函数公式大全_execl从入门到精通

EXCEL表格LOOKUP函数的二分查找原理详解,获取最新报价日期

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的全部专属内容

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接