
EXCEL里有非常多的厉害函数
我们要介绍的LOOKUP函数就其中最厉害的函数之一
它有2个最大的特性,基于这2个最牛逼的特性,我们衍生出了很多常用套路
特性一,二分法(篇幅有限,感兴趣的可以自己研究下)
特性二,忽略错误值,这个特性就非常少了,在函数里能忽略错误值的非常非常少
上面说的特性,不懂就忽略过去向下看,我们来说说常用的套路
一、区间求值
上案例,我们最常用的绩效计算,成绩计算等

if函数来做,那就要写好长的一个函数,如下:=IF(B15<=60,"不合格",IF(AND(B15>=61,B15<=80),"一般",IF(AND(B15>=81,B15<=90),"良好","优秀")))
如果这个区间再多一点,简直就是灾难一样
我们用LOOKUP来做这个问题
第一步,我们要改造数据源

自己可以对应理解分数这的写法表示了什么
0表示0-60,这个60就比上面的数字小1(这里是整数)
61表示61-80,以此类推的理解
=LOOKUP(J9,G9:H12)
一参数,就是查找的值,二参数,就是区间范围

简单吗,任你区间千千万,只要范围改下就好了
这里唯一注意的是,因为二分法要求,分数区间必须升序排列好
二、精确查找
上案例,我们要处理的是精确查找

先说说单条件的精确查找
我要通过员工id,找姓名
=LOOKUP(1,0/(B7:B14=G7),C7:C14)
固定套路语法:=LOOKUP(1,0/(条件),返回值范围)

这里就是利用了一个忽略错误值的原理,来实现查找功能
首先0/数字,永远是小于1的一个数字
如果没找到就是0/FALSE,这个结果是一个错误值,LOOKUP会忽略不计
然后拿1,去比较永远小于1的一个数字,就会拿到最后一个匹配到的结果
为什么说最后匹配的结果,我们做个试验,刚刚的案例里,我们AZQ003都是雨夜
我们修改一下, 把数学成绩对应的姓名,改为那一夜

那为什么是找到最后面的匹配结果,嘿嘿,我们来下一个套路说
我们再说下多条件查询
还记得我们上面说的语法
固定套路语法:=LOOKUP(1,0/(条件),返回值范围)

=LOOKUP(1,0/((B7:B14=G12)*(D7:D14=H12)),E7:E14)
其他没变化,就是那个套路条件这里变了,多条件用括号包起来,中间用乘法链接
三、找最后一行
我们有一个数量表,其中下面会有一个合计,但是我们位置不是固定的
我需要直接拿到数据里最后一行的数据

划重点,这里是找的数字,并且为之不固定,可能是11行,也可能是1111行
=LOOKUP(9E+307,D:D)

因为是找数字,我们这里给他一个足够大的数字就好了,9E+307
如果我能找的文本或者汉字

=LOOKUP(REPT("座",255),B:B)
这里REPT("座",255),表示255个座字,让这个汉字足够大

有的同学会说,给我看这个有啥用?我没事找他干什么
四、数据有效性(数据验证)
我们既然能找到最后一行数据
同样的道理,我们也能找到,最后一行行号
知道行号,我们就能利用这个原理,做一个智能下拉
=LOOKUP(REPT("座",255),B:B,ROW(B:B))

是不是找到了最后行
我们再利用OFFSET函数来做个自定义名称
=OFFSET(案例5!$B$2,,,LOOKUP(REPT("座",255),案例5!$B:$B,ROW(案例5!$B:$B))-1,1)

然后我们设置有效性。看看效果

用LOOKUP函数来做数据有效性,自己可以随便写,空行也一样可以拿到正确数据
今天的分享就到这,如果教程对大家有用,希望大家多多分享点赞支持小编哦!你的每一次点赞和转发都是支持小编坚持原创的动力。
点击阅读原文一键登录官网,海量视频vip任意学!(可试看)
夜雨聆风


