分享

Lookup二分法详解

 hercules028 2021-03-13


Lookup(查什么,在哪里查,返回什么)

值得注意的是,lookup查找用的二分法查找,显而易见的有点事效率高,缺点也不容忽视:二参升序排序;

二分法:

当中间值小于查找值时,则向下继续进行二分法查找比较(也就是在不含中间值在内的下方的那一半数据中继续进行二分法查找);

当中间值大于查找值时,则向上继续进行二分法查找比较(也就是在不含中间值在内的上方的那一半数据中继续进行二分法查找)。

如果如此二分到最后一个数据都未找到等于查找值的数据:最后一个数据小于查找值的,那就以最后一个数据的位置去获取结果值;最后一个数据大于查找值的,那就再向上找一个位置最靠近的小于或等于查找值的数据,再以这个数据的位置去获取结果;

如果所查询值为明确的值,则返回值对应的结果行,如果没有明确的值,则向下取的于所查询值最近的值

例题一:

图片

二分法,顾名思义,是从数据的中间,一分为二查找,公式为:=INT((总行数+1)/2)

图片

题中,目标值为16,则第二次向下查找,即:②的位置,16>13,则向下进行第三次查找逐个查,最后相邻且相等的值即符合条件

例题二:针对乱序的查找

图片

在这个例子中,二参为乱序,怎么办我需要静静

既然二参不能排序,那就做一个吧 0/(条件=条件区域)

按题中,就是 0/(D8=A1:A17)={#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}

这里涉及到一个知识点:lookup二参忽略错误值,所以,在lookup眼中…{;;;;;0;;;;;;;;;;;},剩下的,还是按照二分法查找,只有一个符合条件,那就返回对应的值;结束!!

在此提醒各位,lookup(1,0/…)形式,一参不要省略,因为,如果有两个符合条件,或者其他不可预见数值形式,则会出现错误,所以,一参不要用0,不要省略!!

基于lookup以上性质,可以利用lookup提取数字,英文字母,汉字等

例如:

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多