查找和引用函数LOOKUP

2020-07-23  本文已影响0人  和这个世界温柔的相处

今天分享一个超级强大的查找函数LOOKUP。

一、函数解析

lookup函数的参数有二种形式,一是向量,二是数组

1、向量

LOOKUP(①查找值,②查找值所在区域,③返回的结果)

②为单行区域或单列区域,查找值所在区域必须先排序,否则出错。

③可以省略

没有精确匹配对象时,返回小于等于目标值的最大值

2、数组

LOOKUP(①查找值,②二维数组)

二、经典用法案例

逆向查询、单条件和多条件查询通用公式:

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

其中,条件可以是多个逻辑判断相乘组成的多条件数组。

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

公式说明:

①((条件1)*( 条件2)* ( 条件N)),所有条件满足返回TRUE,否则返回FALSE。

②以0/((条件1)*( 条件2)* ( 条件N))构建一个0、#DIV/0!组成的数组,避免了查找范围必须升序列排序的弊端。(因为True在运算时当作1,False在运算时当作0,所以0/TRUE返回0,0/FALSE返回#DIV/0!)

③再用1作为查找值,即可查找最后一个满足非空单元格条件的记录。

1、单条件逆向查询:根据姓名查询工号

在G2单元格输入公式:=LOOKUP(1,0/($B$2:$B$19=F2),$A$2:$A$19)

2、多条件查询:根据姓名和部门查询办公室

在H2单元格输入公式:=LOOKUP(1,0/(($B$2:$B$19=F2)*($C$2:$C$19=G2)),$D$2:$D$19)

3、查询最后一次出现的数据

在F2单元格输入公式:=LOOKUP(1,0/($B$2:$B$19=E2),$C$2:$C$19)

4、查询A列中的最后一个文本

在C1单元格输入公式:=LOOKUP("々",A:A )或=LOOKUP("座",A:A )

"々"通常被看做是一个编码较大的字符,它的输入方法为组合键。第一参数写成"々" 和“座”都可以返回一列或一行中的最后一个文本。+41385>

+41385>

5、查询A列中的最后一个数值

在C2单元格输入公式:=LOOKUP(9E307,A:A)

9E307被认为是接近Excel规范与限制允许键入最大数值的数,用它做查询值,可以返回一列或一行中的最后一个数值。

6、查询A列中的最后一个单元格内容

在C3单元格输入公式:=LOOKUP(1,0/(A:A<>""),A:A)

(A:A<>"")是判断不为空

7、根据简称查询全称

A列是客户的简称,要求根据D列的客户全称对照表,在B列写出客户的全称。

在B2单元格输入公式:=IFERROR(LOOKUP(1,0/FIND(A2,D:D),D:D,"")

公式说明:

①0/FIND(A2,D:D),用FIND函数查询A2单元格“湖南永怡”在D列的起始位置,得到一个由错误值和数值组成的数组。

②使用IFERROR函数来屏蔽公式查询不到对应结果时返回的错误值。

8、多个区间的条件判断

根据加油站的年销售量,确定油站的等级。

在G2单元格输入公式:

=LOOKUP(F2,{0;2000;4000;6000;8000;10000},$B$3:$B$8)

或者=LOOKUP(F2,$A$2:$B$8)

这种方法查找区域必须升序排序。

9、提取单元格内的数字

在B2单元格输入公式:

=-LOOKUP(1,-LEFT(A2,ROW($1:$99)))

公式说明:

①-LEFT(A2,ROW($1:$99))用LEFT函数从A2单元格左起第一个字符开始,依次返回长度为ROW($1:$99)也就是1至99的字符串,添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。

②LOOKUP函数使用1作为查询值,在由负数、0和错误值构成的数组中,忽略错误值提取最后一个等于或小于1的数值。

③最后再使用负号,将提取出的负数转为正数。

上一篇下一篇

猜你喜欢

热点阅读