1职场实例

小伙伴们大家好,今天我们来讲解一个Excel在职场中的救急技巧如何从杂乱的数据中提取快递单号?这个问题对于在电商领域工作的文职办公人员来说可能会经常遇到,那么小编今天就来具体的说明一下。

如下图所示:

A列为一列备注列,里面包含一些文字和快递单号,快递单号一般包含字母数字与符号,并且我们发现快递单号所在的位置也不固定。那么面对这么杂乱无章的数据,如何快速的将快递单号提取出来放置到B列显示呢?

2解题思路

利用SEARCHB函数支持通配符并且可以区分单双字节字符的特征,可以在单双字节的混合内容中查找并提取出指定的字符串。


在B2单元格中输入以下公式:

=MIDB(A2,SEARCHB("?",A2),2*LEN(A2)-LENB(A2))

回车结束公式后下拉填充公式即可,我们发现快递单号轻而易举的被提取出来了。

我们继续将嵌套函数公式分解解析!

SEARCH函数是按字符为单位查找并返回的,而SEARCHB函数是按字节数为单位查找并返回的。一般来说,汉字、全角标点符号占两个字节的位置,英文字母、半角标点符号占一个字节的位置。

利用SEARCHB函数支持通配符的特性,并配合使用通配符“?”查找单字节字符(字母都是单字节,汉字是双字节)。

在B2单元格输入以下函数,用于提取第一个单字节字符所在位置:

=SEARCHB("?",A2)

SEARCHB(“?”,A2)即是从A2单元格中的字符串中从第一个字符开始查找,返回第一个单字节所在的位置

在C2单元格输入以下函数,用于计算单字节字符长度:

=2*LEN(A2)-LENB(A2)

LENB(A2)函数就是计算A2所在单元格中的字符串的长度,汉字有两个字节,字母和数字是一个字节,那么LENB(A2)就等于21个字节;

LEN(A2)函数按照汉字、数字和字母均为单字节的形式计算,所以一共是18个字节;

那么,2*LEN(A2)-LENB(A2)就等于混合字符串单字节字符的个数,也就是15(快递单号的总长度)

关于2*LEN(A2)-LENB(A2)知识点,可以参考下面的文章:

2倍的Len函数减去Lenb函数,为啥可以提取混合内容中的数字?

在D2单元格输入以下函数,用于提取快递单号:

=MIDB(A2,B2,C2)

也就是:

=MIDB(A2,SEARCHB("?",A2),2*LEN(A2)-LENB(A2))

MIDB函数也有三个参数,第一个参数是指定的字符串,第二个参数是指从字符串左边开始向右第几位字符开始提取,第三个参数是提取几个字符。这个函数的个数是按照字节数计算的