生,而知之;用最通俗的文字来讲解最晦涩的知识。
大家好,今天我们来讲解一下LOOKUP函数。通俗来讲这个函数是用来“找东西”的,具体是怎么找的呢,下面我会详细地给大家解释一遍。LOOKUP函数有两种表达式,我们先来看一下:
LOOKUP(lookup_value,lookup_vector,result_vector);
LOOKUP(lookup_value,array);
lookup_value:表示我们要找的东西
lookup_vector:我们要找的东西在哪里
result_vector:找到东西之后要显示什么array:从我们选出的数据第一列中找我们需要的东西,找到后显示相对应最后一列的数据
LOOKUP函数在EXCEL中的查找函数中是以效率著称的,在处理成千上万的数据时的优势是其他函数所无法比拟的。
(当然,在科技迅猛发展的现代,CPU的运行速度越来越快,LOOKUP的这个优势渐渐的也变得不太明显了)
函数原理解释
为什么LOOKUP函数的运算速度很快呢?因为LOOKUP函数用了“二分法”来查找数据。
(有人可能会问,我知道他的原理干嘛呢,知道怎么用不就好了吗?这个后面会给出解答。)
大家有没有玩过猜数字的游戏。选定一个人,在纸上写下1~100之间的某个数字,然后让你猜他写的是哪个数字,在你说出你的答案后,只能提示比它大,或者比它小。在排除运气的情况下,怎样猜才能更快地猜到所写的那个数字呢?这个时候就要用到“二分法”,如图:
我们假设纸上写下的数字是38,我们先猜50,得到的回答是比50小,我们再猜1~49的中间数字25,如图:
38>25,我们再与26~49的中间数字37作比较以此类推,直到得出正确答案,这就是“二分法”。
大家了解“二分法”之后,有没有发现使用“二分法”的一个前提条件?
没错,那就是这串数字一定要是按顺序排列的。所以 ,同样使用“二分法”的LOOKUP函数所选取的数据(lookup_vector、array)一定要先进行排序,而且要升序排列。
实例一
如图,我们要查找小刚的数学成绩。我们先把我们要查找的数据范围进行排序:
1、选中A、B两列,选择顶部菜单里面的数据,点击排序;
2、因为我们要查找的是姓名,所以主要关键字选姓名,排序依据选数值,次序选升序。
排序成功后再E2单元格输入公式=LOOKUP(D2,A2:A6,B2:B6),回车,得到我们的答案。
输入第二个表达式=LOOKUP(D2,A2:B6),同样可以得到我们的答案。
我们也可以通过成绩来查找姓名,和上面一样,我们先对数学成绩这一列进行排序,如图:
在E2单元格中输入公式=LOOKUP(D2,B2:B6,A2:A6),得到我们的答案。
因为这时候我们要查找的数学成绩在第二列所以不能用=LOOKUP(lookup_value,array)表达式。
注意事项
LOOKUP函数是模糊查找,所以上上述例子中,我们把要查找的成绩改成69,五位同学中没有数学成绩69的,但是不会报错,也会得到答案“小亮”,如图:
那是因为LOOKUP函数在找不到对应的数字时,会自动选取一个比要找的数字小且最接近的数字。我们把成绩改成94,会得到答案“小明”,如图:
这个一定要记住,不然日常工作中,出错了也可能找不出来错在哪里。
总结
LOOKUP函数说简单也不简单,说难也不难,只要大家懂得它的原理,好好理解,多多实践,同样可以很快掌握,熟能生巧。