Excel Home
全球知名的Excel资源网站之一

若是不会LOOKUP函数的这个用法就太可惜了

如下图所示,A列是一些乱七八糟的数据,现在需要提取最后出现的数值,你会怎么写函数公式呢?

有一个经典的LOOKUP函数套路是这样的
=LOOKUP(9^9,A:A)
计算结果是10086。

这个公式总结成套路,如下:
=LOOKUP(一个比查询范围同类数据都大的值,单列或单行查询范围,单列或单行结果范围)
如果该套路的第3参数省略,则将查询范围视为结果范围。

例如:
=LOOKUP(9^9,A:A)

等同于:
=LOOKUP(9^9,A:A,A:A)

LOOKUP函数的这个套路性用法有什么用呢?如果只是提取A列最后的数值……似乎也没啥作用?
其实不然。
我先举个简单的小栗子。
如下图所示,是一份考评表。需要在N列计算每个人最后参与考评的月份。

例如A2单元格的看见星光,最后考评的月份是3月(3月就失业了),A4单元格的肥书记,最后考评月份是12月……
那么函数应该怎么写呢?
=LOOKUP(250,B2:M2,B$1:M$1)

这就是我们刚刚说的LOOKUP套路性用法不是?
=LOOKUP(一个比查询范围同类数据都大的值,单列或单行查询范围,单列或单行结果范围)

B2:M2是单行查询范围,B$1:M$1是对应的单行结果范围,250比查询范围内所有的同类数据都大,因此返回最后出现的数值对应的月份。

打个响指,你要是觉得250不好听,换成其它数值也可以,比如521、666、888、999等等,没别的要求,只要比查询范围内所有的同类型数据都大就行了。
再举个小栗子。

如下图所示,需要把A列数据前面的数值提取到B列,例如204看见星光,结果为204,165606If结果为165606,等等……

说来你不信,前面的数字是月薪..▼

函数我们可以写成这样:
=LOOKUP(9^9,--LEFT(A2,ROW($1:$15)))

LEFT(A2,ROW($1:$15))部分,从A2单元格的左边,依次提取1、2、3、4……直至15位的数据,返回结果:2,20,204,204看,204看见……
再通过减负运算(–),将LEFT函数的计算结果转换为数值。此时纯文本无法进行数学运算,例如–204看,它将返回错误值#VALUE!。

这个部分计算结果是一个内存数组▼
{2;20;204;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

LOOKUP天生忽略错误值,再用一个比查询范围所有数值都大的数值9^9进行查询,也就返回最后出现的数值,即204。

怎么样,是不是有点意思呢?

最后,留一个扩展题儿,如何快速提取A列最后出现的文本值呢?

示例文件下载,百度网盘..
https://pan.baidu.com/s/1G2AquJgJyekj8CSHiXCbFQ
提取码: rd28

原文:https://mp.weixin.qq.com/s/8bNYKuIOh2pyixQpTmcyyA

赞(58)
未经允许不得转载:ExcelHome » 若是不会LOOKUP函数的这个用法就太可惜了
分享到

关于我们联系我们
本站特聘法律顾问:李志群律师   沪ICP备11019229号-2

沪公网安备 31011702000001号

征信