excel

关注公众号 jb51net

关闭
软件教程 > 办公软件 > excel >

excel中LOOKUP函数真的太厉害了 有问题套进去全解决!

脚本之家

excel中,使用LOOKUP+SEARCH解决全称查找简称问题,SEARCH支持通配符。冷门函数SEARCHB可分离字符,区分字节。学习新公式更智能。

问题,购货单位的名称是一样,产品名称左边是用简称,右边是用全称,现在要根据全称查找简称对应的单价。试了好久都没解决。

这个问题,如果不懂方法,确实是很难解决。也是突然想起来LOOKUP这个新方法,才得以解决。

VLOOKUP支持通配符,如果是左边的简称查找右边的全称,是可以很容易解决。右边添加一个辅助列,将购货单位和产品名称连接起来。

=E2&F2

现在就可以直接VLOOKUP了。

=VLOOKUP(A2&B2,D:G,4,0)

不过,现在问题是根据全称查找简称,VLOOKUP不支持这种用法。而他的兄弟LOOKUP支持,但有一个前提,不能出现通配符*。

=LOOKUP(1,0/(($A$2:$A$5=E2)*FIND($B$2:$B$5,F2)),$C$2:$C$5)

一旦有通配符*,LOOKUP+FIND这个经典组合也派不上用场,全出错。

对于这种,除了将通配符查找替换掉,还有没其他方法呢?

其实,有一个函数用法跟FIND几乎一样,就是SEARCH,这个新函数支持通配符。

只要将FIND换成SEARCH,问题就解决了。

=LOOKUP(1,0/(($A$2:$A$5=E2)*SEARCH($B$2:$B$5,F2)),$C$2:$C$5)

SEARCH这个是冷门函数,他还有一个带B的兄弟SEARCHB,最经典的用法,就是分离字符。

字母、数字是单字节用?表示,就是查找字母、数字首次的出现位置,然后将后面的所有内容提取。

=MIDB(A2,SEARCHB("?",A2),99)

B系列函数跟没带B的用法一样,唯一的区别就是区分字节,汉字是双字节,字母和数字是单字节。

比如卢子1987,就是2个汉字,也就是4个字节,因此首次数字出现位置是5。

=SEARCHB("?",A2)

同理,分离汉字就可以用SEARCHB减去1位来提取。

=LEFTB(A2,SEARCHB("?",A2)-1)

热门函数虽然重要,冷门函数也不能忽视,要不然关键时刻会无从下手。