首页 > Excel专区 > Excel函数 >

LOOKUP函数实用终极帖

Excel函数 2023-01-14

在EXCEL的查找函数中,除了我们都知道的大名鼎鼎的VLOOKUP函数外,还有一个非常重要的函数–LOOKUP函数。它应用广泛,灵活性强,可以说是“三千宠爱在一身”。下面我们就来总结一下这个函数的一些主要用法。

01

查找数值

下例中,要依据商品编号来查询单价和运费。

思路:

依据LOOKUP函数向量形式的要求,确保查找参数处于升序状态

LOOKUP函数按查找到的位置找出第二个区域中相同位置的值

02

提取文本中的数值

下例中,需要将数字从文本中提取出来。除了LOOKUP函数之外,我们还可以使用SUBSTITUTE函数或者EXCEL自带的分列功能。

在单元格C2中输入

“=-LOOKUP(1,-LEFT(A2,COLUMN(A:X)))”,回车后得到数值。

在单元格B2中输入

“=RIGHT(A2,LEN(A2)-LEN(C2))”,回车后得到文本。

思路:

用COLUMN(A:X)来产生一个新的数组{1,2,3…24}

用left函数,分别提取出“1,16,168…”,并形成一个新的数组

加负号使数字类型的数据变成负数

使用lookup函数在数组中查找“1”

查找不到“1”,因此返回数组中最后一个数字型数据“-168318”

最后负负得正

03

提取最右侧的文本

一般而言,一行中最右侧的数据往往都是最新的数据。很多时候都需要提取最新的数据,如下列:

在单元格A5中输入

“=LOOKUP(1,0/($A$2:$C$2<>””),$A$2:$C$2)”并回车。

思路:

首先判断单元格区域A2:C2中是否为空,产生一个新的数组后,在用“0”去除这个数组,又得到一个新的数组{0,0,0}

使用lookup函数查找“1”,差找不到则返回A2:C2中最后一个数据

04

提取最右侧的数值

同上例,需提取最右侧数值。

在单元格A5中输入

“=LOOKUP(9E+307,A2:C2)”

思路:9E+307是Excel世界中的最大值。当函数查找不到查找值时,就返回区域中最右侧的数据。

注意:当一行区域内即有文本也有数值时,如果想提前最后一位数据,可以将公式书写为:“=LOOKUP(1,0/(A:A<>””),A:A)”,即提取文本的那个公式。

05

逆向查找

当由于某种原因不能改变表格结构是,就可以使用此方法来查找数据了。

在单元格E2中输入

“=LOOKUP(1,0/($B$2:$B$4=D2),$A$2:$A$4)”

思路:这个和前面提取最右侧文本的那个用法类似。它们有一个通用的公式:LOOKUP(1,0/(条件),目标区域或数组)

注意:如果是多条件查询,那么公式可以写成下面的样子:

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

这个就是LOOKUP函数查找的经典公式。

06

多区间条件判断

在单元格G2中输入

“=LOOKUP(B2,{0,59,79,95;”不及格”,”良”,”优良”,”优秀”})”回车并下拉即可。

07

根据简称查询全称

在单元格B2中输入

“=IFERROR(LOOKUP(1,0/FIND(A2,$D$2:$D$6),$D$2:$D$6),””)”并下拉即可。

思路:

用FIND函数查找A2中的简称在客户清单中的位置

“0/FIND”返回了一个数组{0;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

LOOKUP函数返回查找到的全称

IFERROR屏蔽查询不到后返回的错误值

08

合并单元格的查找

下例中,我们将通过姓名来查询部门。

在单元格E2中输入

“=LOOKUP(“座”,INDIRECT(“A2:A”&(MATCH(D2,$B$2:$B$9,0)+1)))”并下拉即可。

思路:

MATCH函数用来返回查找员工的姓名在姓名列中的位置

INDIRECT函数返回一个动态的单元格区域,范围是从单元格A2到和姓名单元格所对应的单元格

LOOKUP查找得到部门。汉子“座”是汉字中ANSI代码比较大的字符,确保了可以查找到单元格区域中最后一个数值

大家要多多动手操作,才能更快地掌握这些技巧!


Copyright © 2016-2023 office学习教程网 office.tqzw.net.cn. All Rights Reserved.