Excel中函数LOOKUP查询函数的用法及其原理
在日常工作中,我们都会遇到在数据表中查询数据的需求,Excel中对数据查询给出了很多的方式,其中速度最快的查询当属LOOKUP函数,下面就让小编带你深入了解LOOKUP函数。
LOOKUP函数的语法如下:
LOOKUP(lookup_value,lookup_vector,result_vector)
LOOKUP(lookup_value,array)
LOOKUP的运行原理分析
- 01
LOOKUP函数以高效的运算速度被EXCEL函数爱好者喜欢,而且LOOKUP在日常实际工作中特别是数组公式,内存数组中应用广泛。 LOOKUP(lookup_value,lookup_vector,result_vector) lookup_value意思为我们要在数据表中查找的“值”。 lookup_vector意思为我们要查找的值得“数据表”。 result_vector意思为我们通过数据表想要得到的"值“。 LOOKUP的查询方式为二分法查询,具体的查询原理看下图。
- 02
下面我们用例子给大家具体讲一下LOOKUP的具体应用与原理: 我们以一个学生成绩表为例进行分析,查询一下英语成绩为98的学生姓名: F2的公式为=LOOKUP(D2,B2:B15,C2:C15) 意思为从B2:B15列里面找D2,并返回C2:C15相对应行的值 这里的结果是"刘备"肯定会让好多人感到困惑,明明有98对应的是“王思”怎么会返回“刘备”呢?那么看往下看,大家就会彻底明白的。
- 03
我们对LOOKUP的查找方法进行分解——第一次二分法查询: 98会跟第7行的数据78进行比较,因为98>78,所以返回第8到第14行的值。
- 04
第二次二分法查询: 98会跟第4行的数据66进行比较,因为98>66,所以返回第5到第7行数据。
- 05
第三次二分法查询: 98会跟第2行的数据87进行比较,因为98>87所以返回第3数据。 因为98比91大,所以就向下近似取比98小的最近的值——91所对应的名字
- 06
这里就给我们总结了一个知识点: 1、LOOKUP要查询一个明确的值或者范围的时候(也就是知道在查找的数据列是肯定包含被查找的值),查询列必须按照升序排列。(在EXCEL帮助文档里也是这么说的) 如果所查询值为明确的值,则返回值对应的结果行,如果没有明确的值,则向下取的于所查询值最近的值 2、查找一个不确定的值,如查找一列数据的最后一个数值,在这种情况下,并不需呀升序排列。(下面有例子特别说明)
LOOKUP用法1:LOOKUP(lookup_value,lookup_vector,result_vector)
- 01
我们以例子1来帮助大家理解(没有明确的值,但是存在包含关系) 一个公司的销售提成表如下:
- 02
我们求取销售额在40W所得提成: 这因为40W介于10W与50W之间,所以取比40W小的,最接近的值10W所对应的提成比例。
- 03
我们以例子2来帮助大家理解(有明确的值) 如下图,找成绩为英语98的人的姓名:
LOOKUP用法2:LOOKUP(lookup_value,array)
- 01
LOOKUP(lookup_value,array)的意思为,从array(数组)里的第一列查找”lookup_value“的值,并返回array里最后一列的结果。 我们依旧以例子来解释 我们一个班级的学生成绩单:
- 02
我们查找“李刚”的总成绩: 公式为: LOOKUP(G5,B2:F11) 从B列中查找G5的值,找到后,返回F列对应的行的值。
LOOKUP函数查找最后非空数值的方法及原理
- 01
这里如果查询表中,最后一个人的工资。我们想想该怎么写?
- 02
G2的公式为: LOOKUP(9E+307,d:d) 9E+307是Excel中的最大数值 G3的公式为: LOOKUP(65535,CODE(C:C),D:D) 65535是Excel中汉字代码的最大代码