vlookup精确查找函数(Excel公式技巧83:使用VLOOKUP进行二分查找)

wufei123 发布于 2023-12-09 阅读(391)

学习Excel技术,关注微信公众号:excelperfectVLOOKUP函数是我们非常熟悉也很常用的一个函数下面是其语法:VLOOKUP(lookup_value,table_array, col_index_num。

,[range_lookup])其中,range_lookup是第4个也是其最后一个参数可以看到,其在中括号中表明该参数是可选的,在使用VLOOKUP函数时可以不包含该参数参数range_lookup接受逻辑值,指定是精确查找还是近似查找。

TRUE指示进行近似查找,而FALSE指示进行精确查找;也可以使用1和0,与TRUE和FALSE等价默认为TRUE当将参数range_lookup指定为FALSE进行精确查找时,执行的是线性搜索,从table_array

的首列中的第一行开始往下,逐个单元格比对直到匹配lookup_value而VLOOKUP函数执行近似查找时,采用不同的方式:如果参数range_lookup指定为TRUE或者忽略,那么table_array。

的首列中的值必须是升序排列,否则可能会返回不正确的结果也就是说,当VLOOKUP执行近似查找时,取决于查找列按升序排列这意味着,它不是从顶部到底部进行搜索,而是通过在数据中上下跳跃来进行查找(二分查找)。

此时,VLOOKUP函数在可能的条件下返回匹配值,否则返回小于lookup_value的最大值注意到,近似查找的算法比精确查找的算法更快,因此应尽可能使用它示例1:查找列按升序排列且执行近似查找下面是一个经典的示例,由学生成绩查找对应的等级。

如图1所示,查找表在单元格区域F1:G6,根据列C中的成绩查找相应的等级。

图1单元格D2中的公式为:=VLOOKUP(C2,$F$2:$G$6,2,TRUE)向下复制至单元格D5示例2:查找列按升序排列且执行精确查找如下图2所示,列表中有一系列日期相对应的人名,现在想要选择日期后获取该日期对应的人名。

图2由于查找列已经按升序排列,因此可以使用近似匹配算法来查找指定日期的人名:=VLOOKUP($E$2,$A$2:$B$11,2,TRUE)结果如下图3所示。

图3示例3:查找列无序VLOOKUP函数的一种巧妙的使用,与查找列的排序顺序无关听起来有些奇怪,但在某些情况下排序顺序实际上并不重要一个很好的示例是,当需要一个返回列中最后一个数字的公式时如下图4所示,这是一列杂乱无章的数据,其中包含数字、错误、文本和空白单元格。

图4示例中列C最后一个数字是123,下面的公式会找到该数:=VLOOKUP(BIGNUM,C:C,1,TRUE)如下图5所示。

图5公式中,BIGNUM是关键,它必须比该列中可能出现的数都要大我们知道,Excel允许的最大正数是1.7976931348623158e+308,因此,我们可以定义名称BIGNUM为:=9.99999999999999E+307*1.79769313486231。

OK!注:本文的成果整理自colinlegg.wordpress.com,供有兴趣的朋友学习参考undefined欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识欢迎到知识星球:完美Excel社群

,进行技术交流和提问,获取更多电子资料。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

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

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻14150