返回

实务交流

发帖

LOOKUP函数从入门到放弃

Excel不加班楼主

2018-03-09 17:41:26 567 2

新函数班还没开班,学员们就满怀期待,问了很多跟LOOKUP函数有关的问题,今天,卢子整理出来说明。


这个函数,有不少人新人学哭了,一会儿这个用法,一会儿那个用法,懵逼了。


1.根据到期时间,按年划分区间。


学员参考这篇文章《对不起!骗你爱上了Excel函数》,用LOOKUP函数得出来的结果跟卢子的有差异,这里统一说明。


在截图的时候,时间只显示月日,实际上,这里有的时间是跨年的。


11月20日不可能是2018年的,因为还未到2018年11月,不可能提前开票,只能是2017年的。将单元格设置为年月日形式就看出来了。


原来公式:

=LOOKUP(TODAY()-E2,{-365,"未到期";1,"超期1-30天";31,"超期31-60天";61,"超期61-90天";91,"超期91-120天";121,"超期121-150天"})


有读者留言,能否按年份划分?


其实,LOOKUP函数结合DATEDIF函数可以变得非常强大,可以按年、月、天划分。


按天划分:

=IFERROR(LOOKUP(DATEDIF(E2,TODAY(),"d"),{1,"超期1-30天";31,"超期31-60天";61,"超期61-90天";91,"超期91-120天";121,"超期121-150天"}),"未到期")


DATEDIF函数的作用就是获取两个日期相差的天数,当第一参数的开始日期比第二参数的结束日期大的时候就得到错误值。错误值在这里我们想显示成未到期,就嵌套IFERROR进行处理。


按月划分,只需对原来的内容略作更改即可。将DATEDIF函数的第三参数改成"m",改变一下对应值即可。

=IFERROR(LOOKUP(DATEDIF(E2,TODAY(),"m"),{0,"超期1个月内";1,"超期1-2个月";2,"超期2-3个月";3,"超期3-4个月";4,"超期4个月以上"}),"未到期")


同理,按年划分,将DATEDIF函数的第三参数改成"y",改变一下对应值即可。

=IFERROR(LOOKUP(DATEDIF(E2,TODAY(),"y"),{0,"超期1个年内";1,"超期1-2个年";2,"超期2-3个年";3,"超期3-4个年";4,"超期4个年以上"}),"未到期")


除非你非常熟练才采用卢子这种写法,否则老老实实将对应表的内容写出来,然后再使用公式。这样看起来会简洁很多。

=IFERROR(LOOKUP(DATEDIF(E2,TODAY(),"y"),$J$1:$K$5),"未到期")


2.根据个人编号,查找对应的姓名和性别。


在B2输入公式,下拉和右拉。

=LOOKUP(1,0/($E$8:$E$13=$A8),F$8:F$13)


LOOKUP函数经典查找模式:

=LOOKUP(1,0/(查找区域=查找值),返回区域)


关键点F$8:F$13采用了混合引用,这样向右拖动的时候区域能够变成G$8:G$13,从而可以获取性别的区域。


3.根据个人编号和备注两个条件,查找对应的姓名。


在B4输入公式,下拉。

=LOOKUP(1,0/(($D$2:$D$10=A4)*($G$2:$G$10=$B$1)),$E$2:$E$10)


LOOKUP函数经典查找模式,除了可以单条件,也可以是多条件。

=LOOKUP(1,0/((条件1)*(条件2)*(条件n)),返回区域)


4.从字符串中将规格提取出来。


在《你会Ctrl+E吗?》这篇文章提到了快速填充,可以将字符串按要求分离。卢子的第一反应这里也是用快速填充,可惜行不通,快速填充并非万能。


这里同样用LOOKUP函数解决,在B2输入公式,按Ctrl+Shift+Enter结束,也就是传说中的数组公式。

=-LOOKUP(1,-MID(A2,MIN(FIND(ROW($1:$10)-1,A2&1/17)),ROW($1:$9)))&"mm"


这个公式我大概讲一下意思。


MIN(FIND)这部分是获取数字第一次出现的位置。


MID(A2,MIN(FIND),ROW($1:$9))这部分就是从第一个数字分别提取1位到9位。因为不知道数字多少位,这样1-9位肯定可以将数字提取出来。


-MID(A2,MIN(FIND),ROW($1:$9))通过负运算,将文本转换成错误值,数字变成负数。


用LOOKUP函数查找,就可以查找到最后一个数字。


最后-LOOKUP&"mm",就是将负数转变成正数,再连接一个单位。


LOOKUP函数可以是很简单,也可以是很难,思想有多远,就能走多远。用法变幻莫测,能精通此函数的运用,都是传说中的高手。


有的人,看不懂这个函数,还没开始学,就在心里给自己设置了一道防线。其实,只要你坚持,跨过去,离成功就不远了。


源文件https://pan.baidu.com/s/13-GgrjHlLNt53QWYFUZ9vQ


更多LOOKUP函数的运用:

LOOKUP函数,以一敌百

作者:卢子,清华畅销书作者;个人公众号:Excel不加班(ID:Excelbujiaban)

飞翎恋雪1楼

2018-03-09 20:40:44