需要解决的问题:

如何将单元格内的中文姓名与数字或英文分开?

解决思路和方案:

案例中每个单元格中内容的特点是,每个字符串的前面是姓名,后面是类似于电话号码的一串数字或者英文名的一串字母,每个文字占用2个字节,而每个字母或者数字占用1个字节,根据这些情况可以知道每个单元格中的字符串的字节数要多于字符数,而且总字节数与字符数的差正好是单元格内的中文字符数,利用这个规律拆分中文和后面的数字或字母。

通过函数LEFT/RIGHT和LEN/LENB截取对应数量的字符来获取对应的中文、数字或英文,如下:

截取中文部分

截取数字部分

出现了新的问题:

当单元格内的中文与数字或英文调换位置后,再用原来的办法就不灵了,需要调整公式逻辑和函数内的变量

调整后的公式:

参考:

LEFT和RIGHT函数:

LEFT函数用于从文本字符串的第一个字符开始返回指定个数的字符

语法:LEFT( string, n )

RIGHT函数用于从字符串右端取指定个数字符

语法:RIGHT(string,n)

LEN和LENB函数:

LEN函数是返回文本字符串中的字符数

语法:LEN(text)

LENB函数是返回文本字符串中用于代表字符的字节数

语法:LENB(text)