回答读者提问:有一列中文、字符和数字混合的单元格,如果第一个字符是中文的话,请将第一个起的连续中文字提取出来;如果第一个字符不是中文,则不需要提取。
这个案例其实并不简单,分列、Ctrl+E 和 Power Query 都不太好使,反而函数特简单。
案例:
将下图 1 中每个单元格中的第一个中文开始的连续中文字符提取出来,第一个字符不是中文的则不需要提取。
效果如下图 2 所示。
解决方案:
1. 在 B2 单元格中输入以下公式 --> 下拉复制公式:
=LEFTB(A2,SEARCHB("?",A2)-1)
公式释义:
SEARCHB("?",A2):
SEARCHB 函数的作用是按字节搜索关键字,并返回查找结果在字符串中的字节编号;
在 Excel 中,英文字母、数字、英文半角字符都只占一个字节,而一个中文字占两个字节;
"?" 是通配符,表示 1 个字节;
...-1:将上述结果减去 1,就得到第一个单字节字符前面的字节编号;
LEFTB(A2,...):
LEFTB 的作用是基于所指定的字节数返回文本字符串中的第一个或前几个字符;
简单来说,就是从 A2 单元格的第一个字节开始提取,直至第一个单字节字符前面的所有字符
这个案例中比较特别的知识点是对于通配符“?”的使用。