用带B的函数分离汉字英文,很牛B,特装B!!

函数公式职场模板、财务应用分析图表练习题软件工具表格合并Office 365Power Query表格美化符号作用条件格式学会骗一本不正经避坑指南数据整理筛选技巧偷懒宝典

👆上面是分类专题👆

👇下面是最新文章👇

·  正  ·  文  ·  来  ·  啦  ·

正文

在Excel中有些函数自带B格,比如:

LENB、LEFTB、MIDB、FINDB、SEARCHB

函数中的B代表什么含义呢?

B,是单词byte的首字母,表示字节。

计算机基础课程学过:

英文、数字是一个字节,汉字是两个字节

因而

LENB返回字符串的字节数

LEFTB按字节取左边的字符。

其余函数类推

比如下图:


从上面的知识可以得知:
如果字符串中有汉字,那么LEN、LENB计算得到的结果是不一样的。
LENB与LEN的差就是汉字的个数。
利用这点,在特定情况下,我们可以来分离汉字、数字和英文
案例一:分离姓名和电话
姓名:
=LEFT(A3,LENB(A3)-LEN(A3))
电话:
=MID(A3,LENB(A3)-LEN(A3)+1,99)
=RIGHT(A3,2*LEN(A3)-LENB(A3))
如果电话在前面,姓名在后面
提取电话:
=LEFTB(A21,2*LEN(A21)-LENB(A21))
提取姓名:
=MIDB(A21,2*LEN(A21)-LENB(A21)+1,99)
案例二:找到第一个英文或数字的字节位置
除了利用LEN、LENB的差异来巧妙计算汉字的个数,从而分离汉字和数字(英文)。
其他带B的函数也有巧妙应用
比如SEARCHB,可以使用通配符(FINDB不能使用通配符),并且用SEARCHB查找通配符问号时,可返回第一个字母或数字的字节位置。
提取姓名:
=LEFTB(A8,SEARCHB("?",A8)-1)
提取电话:
=MIDB(A3,SEARCHB("?",A3),88)
再来看一个例子:
提取数字
=--MIDB(B13,SEARCHB("?",B13),2*LEN(B13)-LENB(B13))
案例3:找到第一个汉字的位置
上面的例子是找到英文或数字的字节位置,那有没有办法找到第一个汉字的位置呢?
前面我们讲过,汉字是两个字节,如果我们用带B的函数对它处理,会发生什么呢?比如用LEFTB取左边一个字节,用MIDB取一个字节,
我们来试试看:
C16的公式用LEFTB取B16左边一个字节,返回的是一个不可见字符,这个不可见字符那是什么呢?
我们用CODE函数计算,得到32,据可此知返回的是空格(空格的ANSI字符集代码是32)。
同理,用MIDB取一个字节,返回的也是一个空格
我们利用这一点,用下面的公式来找到第一个汉字的位置。
=MATCH(" ",MIDB(A21,ROW($A$1:$A$99),1),0)
提取姓名:
=MID(A21,MATCH(" ",MIDB(A21,ROW($A$1:$A$99),1),0),99)
下面图片是群友的提问,也是本文写作的缘起:
看完本文,有木有觉得这几个带B的函数,在特定的场景下,不用数组公式就可轻松分离汉字和数字(英文),特牛B!
OVER!
撤了,撤了

(0)

相关推荐