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,0代表着什么,这里我在网上找到一些人的解释。

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

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

单条件逆向查询

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

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

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

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

查询最后一次出现的数据
4、查询A列中的最后一个文本

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


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

在C2单元格输入公式:=LOOKUP(9E307,A:A)
9E307被认为是接近Excel规范与限制允许键入最大数值的数,用它做查询值,可以返回一列或一行中的最后一个数值。


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

在C3单元格输入公式:=LOOKUP(1,0/(A: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},3:8)
或者=LOOKUP(F2,2:8)
这种方法查找区域必须升序排序。

多个区间的条件判断
9、提取单元格内的数字

在B2单元格输入公式:
=-LOOKUP(1,-LEFT(A2,ROW(245)))
公式说明:
①-LEFT(A2,ROW(99))用LEFT函数从A2单元格左起第一个字符开始,依次返回长度为ROW(99)也就是1至99的字符串,添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。
②LOOKUP函数使用1作为查询值,在由负数、0和错误值构成的数组中,忽略错误值提取最后一个等于或小于1的数值。
③最后再使用负号,将提取出的负数转为正数。

提取单元格内的数字

待续。。。。

你可能感兴趣的:(LOOKUP函数的九种用法)