今天咱们说说LOOKUP函数。
这个函数主要用于在单行或单列的查找范围中查询指定的查找值,并返回另一个单行或单列范围中对应位置的值。
该函数支持忽略空值、逻辑值和错误值来进行数据查询,几乎可以完成VLOOKUP函数和HLOOKUP函数的所有查找任务,接下来咱们就一起看看LOOKUP函数的常用套路。
一、返回B列最后一个文本
=LOOKUP(“々”,B:B)
或是
=LOOKUP(“做”,B:B)
根据LOOKUP函数的帮助说明,在查找一个具体的值时,要求第二参数必须为升序,如果找不到具体的查询值,就返回比查询值小的最接近的一个。
实际操作时,,即便是第二参数没有按升序处理,LOOKUP也会傻乎乎的把第二参数当成已经升序进行处理,认为排在最后的肯定都比前面的要大。
公式中,将查找值设置为一个在计算机字符集中编码非常大的字符”々”或是”做”,LOOKUP在A列从后向前查找这个字符。当A列最后一个字符的字符集编码小于”々”或”做”,LOOKUP函数就默认将最后一个字符当成A列所有字符中最大的一个,最终返回这个字符了。
二、返回B列最后一个数值
=LOOKUP(9E+307,B:B)
9e+307,就是9乘以10的307次幂,是一个非常非常大的数值。查询原理和前面所述是一样的,当找不到这个非常大的数值时,默认将查询区域中最后一个数值认为是整个查询区域里最大的一个值。
三、填充合并单元格
如下图所示,B列姓名使用了合并单元格,使用以下公式可以得到完整的填充:
=LOOKUP(“做”,B$2:B2)
四、返回A列最后一个非空单元格内容
=LOOKUP(1,0/(A:A<>””),A:A)
简单说说公式的计算过程:
先使用A:A<>””判断A列是否不等于空单元格,得到一组有逻辑值TRUE和FALSE构成的内存数组。
然后用0除以这些逻辑值,在四则运算中,逻辑值TRUE相当于1,FALSE相当于0,相除之后,得到由错误值和0构成的新内存数组。其中的0,就是0/TRUE的结果,表示符合条件。
最后用1作为查找值,在这个内存数组中找到0的位置,并返回第三参数中对应位置的内容。
如果有多个符合条件的记录,LOOKUP默认以最后一个进行匹配。
五、逆向查询
如下图,要根据E3单元格的商品名称,查询对应的销售经理。公式为:
=LOOKUP(1,0/(C2:C10=E3),A2:A10)
单条件查询的模式化写法为:
=LOOKUP(1,0/(条件区域=条件),查询区域)
六、多条件查询
如下图,要根据F3单元格的商品名称和G3单元格的部门,查询对应的销售经理。公式为:
=LOOKUP(1,0/((D2:D10=F3)*(B2:B10=G3)),A2:A10)
多条件查询的模式化写法为:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),查询区域)
或者:
=LOOKUP(1,0/(条件区域1=条件1)/(条件区域2=条件2),查询区域)
七、模糊查询等级
如下图,要根据B列销售业绩返回对应的评定标准,E~F列为标准对照表。
C2单元格公式为:
=LOOKUP(B2,$E$3:$F$6)
这种方法可以取代IF函数完成多个区间的判断查询,前提是对照表的首列必须是升序处理。
八、提取有规律的数字
如下图,要提取出B列混合内容中的数值。
公式为:
=-LOOKUP(1,-RIGHT(B2,ROW($1:$9)))
本例中,数值都位于右侧,因此先用RIGHT函数从B2单元格右起第一个字符开始,依次提取长度为1至99的字符串。
添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。
上一篇:企业公司新客户调查情况登记表Excel模板 下一篇:没有了
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。