从Excel混合字符串单元格,提取自第一个中文起的连续中文
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
回答读者提问:有一列中文、字符和数字混合的单元格,如果第一个字符是中文的话,请将第一个起的连续中文字提取出来;如果第一个字符不是中文,则不需要提取。
这个案例其实并不简单,分列、Ctrl+E 和 Power Query 都不太好使,反而函数特简单。
案例:
将下图 1 中每个单元格中的第一个中文开始的连续中文字符提取出来,第一个字符不是中文的则不需要提取。
效果如下图 2 所示。
解决方案:
1. 在 B2 单元格中输入以下公式 --> 下拉复制公式:
=LEFTB(A2,SEARCHB("?",A2)-1)
公式释义:
- SEARCHB("?",A2):
- SEARCHB 函数的作用是按字节搜索关键字,并返回查找结果在字符串中的字节编号;
- 在 Excel 中,英文字母、数字、英文半角字符都只占一个字节,而一个中文字占两个字节;
- "?" 是通配符,表示 1 个字节;
- ...-1:将上述结果减去 1,就得到第一个单字节字符前面的字节编号;
- LEFTB(A2,...):
- LEFTB 的作用是基于所指定的字节数返回文本字符串中的第一个或前几个字符;
- 简单来说,就是从 A2 单元格的第一个字节开始提取,直至第一个单字节字符前面的所有字符
这个案例中比较特别的知识点是对于通配符“?”的使用。