专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
Excel之家ExcelHome  ·  小白的第一节Python自动化办公课 ·  3 天前  
Excel之家ExcelHome  ·  Excel替换有技巧,用过一次都说好 ·  昨天  
Excel之家ExcelHome  ·  LOOKUP是个宝,数据查询离不了 ·  2 天前  
完美Excel  ·  MIN函数和MAX函数竟然能够查找日期 ·  5 天前  
Excel之家ExcelHome  ·  数据填充的8个典型应用,全都会的请举手 ·  1 周前  
51好读  ›  专栏  ›  Excel之家ExcelHome

LOOKUP是个宝,数据查询离不了

Excel之家ExcelHome  · 公众号  · Excel  · 2024-11-14 06:45

正文

小伙伴们好啊,今天咱们说说LOOKUP函数。这个函数主要用于在查找范围中查询指定的查找值,并返回另一个范围中对应位置的值。

函数有两个特点:

第一个特点,要求查询区域必须升序进行排序。如果没有经过排序,LOOKUP函数也会认为排在数据区域最后的内容,是该区域中最大的。

第二个特点,当查找不到具体的查询值时,会以比查询值小、并且最接近查询值的内容进行匹配。

另外,还能识别查询值的格式,再以相同格式的内容进行匹配。


1、近似查询

如下图,要根据B列销售业绩返回对应的评定标准,E~F列为标准对照表。

C2单元格公式为:

=LOOKUP(B2,E:F)

使用这种方法,对照表的首列必须是升序处理。以C2单元格公式为例,LOOKUP函数以44500为查找值,由于在E列找不到对应的内容,因此以小于44500的10000进行匹配,并返回第二列中对应的值。


2、填充合并单元格

如下图所示,B列姓名使用了合并单元格,使用以下公式可以得到完整的姓名列表:

=LOOKUP("做",B$2:B2)

""是一个编码较大的字符,由于在B$2:B2这个区域中找不到"",因此要返回小于""的最接近的一个,同时,默认查询区域为升序,因此返回B$2:B2区域中的最后一个文本。

本例中的第2参数使用了动态扩展,仅锁定起始单元格的地址,当公式下拉时,LOOKUP函数的查询区域不断扩大。相当于是从B2开始,到公式所在行这个区域内,查找最后一个文本。


3、返回最后一个非空单元格的内容

=LOOKUP(1,0/(A:A<>""),A:A)

这个公式是LOOKUP函数的典型用法。可以归纳为:

=LOOKUP(1,0/(条件区域=指定条件),目标区域或数组)

公式中的0/(条件区域=指定条件)部分,先使用等式对比条件是否符合,如果符合就返回逻辑值TRUE,否则返回FALSE。最终得到一个内存数组结果。

再使用0除以这个内存数组,0除以TRUE结果是0,0除以FALSE结果是错误值。

接下来使用1作为查询值,在内存数组中进行查找,由于找不到1,就用最后一个0进行匹配,并返回第三参数中同一位置的元素。

如果是多个条件,模式化的写法为:

=LOOKUP(1,0/(条件1)/(条件2)/(条件N),目标区域或数组)


4、逆向查询

如下图,要根据E3单元格的商品名称,查询对应的销售经理。公式为:

=LOOKUP(1,0/(E2=C2:C10),B2:B10)


5、多条件查询

如下图,要根据F3单元格的商品名称和G3单元格的部门,查询对应的销售经理。公式为:

=LOOKUP(1,0/(E2=B2:B10)/(F2=C2:C10),A2:A10)


6、查询产品类别

如下面这个图中所示,A列是产品名称,D列是类型对照表。如果产品名称中包含对照表中的关键字,就显示该内容。

B2单元格输入以下公式,向下复制。

=LOOKUP(1,-FIND(D$2:D$7,A2),D$2:D$7)

公式中的FIND(D$2:D$7,A2)”部分,首先用FIND函数,以D$2:D$7单元格中的类别关键字作为查询,在A2单元格中分别查询这些字符出现的位置,得到一个由错误值和数值组成的内存数组。

加上负号后,内存数组中的数值变成负数,错误值部分的结果不变。

接下来使用1作为查询值,在内存数组中进行查找,由于找不到具体的查找值,同时LOOKUP认为数组中最后一个数值一定是所有数值中最大的,因此以最后一个负数与之匹配,并返回第三参数中同一位置的元素。


7、带合并单元格的查询

如下图,根据E2单元格的商品查询C列对应的销售经理。

F2单元格公式为:

=LOOKUP("做",INDIRECT("C1:C"&MATCH(E2,B:B,)))

MATCH函数部分,精确查找出E2单元格的商品在B列中的位置。返回结果为8。

用字符串"C1:C"连接MATCH函数的计算结果8,变成新字符串"C1:C8"。

再用INDIRECT函数把字符串"C1:C8"变成实际的引用。

最后用LOOKU函数返回该区域中最后一个文本的内容。


图文制作:祝洪忠


推荐文章
Excel之家ExcelHome  ·  小白的第一节Python自动化办公课
3 天前
Excel之家ExcelHome  ·  Excel替换有技巧,用过一次都说好
昨天
Excel之家ExcelHome  ·  LOOKUP是个宝,数据查询离不了
2 天前
完美Excel  ·  MIN函数和MAX函数竟然能够查找日期
5 天前
Excel之家ExcelHome  ·  数据填充的8个典型应用,全都会的请举手
1 周前
冷爱  ·  男人出轨前有什么征兆?
7 年前
经典微小说  ·  请你误会我,不要理解我
7 年前
画廊  ·  书香是生命永恒的香味
7 年前
全球健身指南  ·  他怎么爱你,就怎么睡你。
7 年前