篇外话:对于lookup的计算原理,可以自行百度搜索Excel二分法原理了解,这方面的内容要细说比较复杂,不过要想用好lookup也不是非得掌握这个原理不可,好比很多数学公式,我们都是直接拿来用,但是要去证明或者推导公式,就需要更多的专业理论才行。当然,如果以后有机会的话,会用比较通俗好理解的言辞来专题讨论二分法了。本文目的在于将lookup函数的常用写法进行整理后方便使用者随时查找套用,用的多了自然会达到熟能生巧的效果,更重要的是,lookup的计算效率和功能之强大的确是令人称赞的。 今天咱们来说说关于lookup函数的一些经典用法。 1 逆向查找、多条件查找: 先看一个例题: 下面这个表中,A:C列是员工基础信息表,分别是部门、姓名和职务。例一要根据提供的员工姓名,在这个信息表中查询属于哪个部门,也就是咱们常说的逆向查询;而例二是根据部门和职务来查找姓名,也就是常说的多条件查找,这两个问题都可以使用LOOKUP函数来解决。 一般这样的查找可以使用vlookup或者index match这些函数和数组配合使用来实现需要,但是使用lookup的话只要记得查找公式的标准格式,然后不管多少个条件,都可以自己套写公式了。 2 返回一列中的最后一个文本 要查询A列中的最后一个文本,也非LOOKUP函数莫属,用到的公式是: =LOOKUP('々',A:A ) '々'通常被看做是一个编码较大的字符,它的输入方法为<Alt 41385>组合键。 如果感觉每次写这个符号有点费事儿,也可以写成: =LOOKUP('座',A:A ) 一般情况下,第一参数写成“座”也可以返回一列或一行中的最后一个文本。 3 返回一列中的最后一个数字 要查询A列中的最后一个数值,用到的公式是: =LOOKUP(9E307,A:A ) 9E307被认为是接近Excel规范与限制允许键入最大数值的数,用它做查询值,可以返回一列或一行中的最后一个数值。 很多时候9E307也可以9^9取代,也即9个9相乘的结果387420489,不过,如果你的数据中有超过这个数字的,还是用9E307稳妥一些。 有朋友会说了,如果我A列中的数据既有文本也有数值,想得到最后一个单元格内容,那咋办?当然不能凉拌!哈哈^_^ ,写成这样就可以的: =LOOKUP(1,0/(A:A<>''),A:A) 注意,上面这个公式中整列引用的写法在03版本中不适用,可以写成实际的单元格区域引用。 4 根据简称返回全称 根据简称查询全称的问题相信大家都会经常遇到吧?如下面这个图中所示,A列是客户的简称,要求根据E列的客户全称对照表,在C列写出客户的全称。 C2单元格输入以下公式,可得到“上海沛发”的客户全称“上海沛发包装材料有限公司”。 =IFERROR(LOOKUP(1,0/FIND(A2,E$2:E$13),E$2:E$13),'') 公式中“0/FIND(A2,E$2:E$13)”部分,首先用FIND函数查询A2单元格“上海沛发”在E$2:E$13的起始位置,得到一个由错误值和数值组成的数组。 余下部分的计算过程就和咱们前面说过的一样了,使用IFERROR函数来屏蔽公式查询不到对应结果时返回的错误值。 5 多个区间的条件判断 话说某公司组织员工技能考核,根据不同的分值,给出相应的评语。50分以下的为“很差”,50-59分的为“差”,60-74分的为“一般”,75-85分的为“较好”,86-95分的为“优秀”,96分及以上的为“能手”。 这种多个区间的判断,如果需要判断的条件和区间都很多,再使用IF函数来计算,估计会把自己都转晕了。 而使用LOOKUP函数来解决,不过是小菜一碟而已。 C2单元格输入以下公式,向下复制即可。 =LOOKUP(B2,{0,50,60,75,86,96;'很差','差','一般','较好','优秀','能手'}) 结束语:以上五个格式只是lookup函数应用中最常见的,除此之外,LOOKUP函数还被用于带有合并单元格的汇总计算,以及单元格中数值字段的提取等等,这些内容咱们留到以后慢慢再说。如果可以的话,多了解一些关于数组、逻辑值计算以及数据类型这些基本概念,灵活应用这个函数是不成问题的。还是那句话,重在实践! 结语:大量粉丝还没有养成阅读后点赞的习惯,希望大家在阅读后顺便点赞,以示鼓励!长期坚持原创真的很不容易,多次想放弃。坚持是一种信仰,专注是一种态度! 有任何疑问欢迎加qq群交流:EXCEL基础学习群 259921244 |
|