如下图所示,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