分享

汉字、字母、数字混合,如何提取其中的汉字?超详细教程,不看绝对后悔

 初风Excel教学 2022-02-22

一、案例

「领导发给我一个表格,让我把每个单元格内的汉字提取出来。可是表格里数字、字母、汉字混合在一起,几千条数据。这可怎么做啊」小伙伴苦恼得午饭都没心情吃了。

回到工位,小伙伴向我展示了那张让她烦恼的表格。(见下图)

从这样的表格提取汉字确实有难度。首先汉字的位置不固定,有的在数字和字母前面,有的在数字和字母后面;其次汉字的字数也不固定。

不过好在单元格内的汉字都是排列在一起的,只要我们知道汉字的起始位置和字数,就可以使用MID函数将汉字提取出来

二、确定汉字的起始位置

确定汉字的起始位置需要利用LENB和LEN函数统计文本字符串长度的差异性。

下图所示为使用Len函数和LenB函数分别计算文本长度。可以看到,当文本为数字时,Len函数返回“1”,LenB函数返回“2”。

我们可以将单元格内的字符逐个取出,用LenB函数分别计算其文本长度。LenB函数返回第一个“2”的字符所在位置就是汉字的起始位置。

如下图所示,在单元格B2输入公式

=MATCH(2,LENB(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),0),

按Ctrl+Shift+Enter结束公式输入,拖动填充柄向下复制公式。该公式返回的数字就是汉字的起始位置。

公式解析:

(1)ROW(INDIRECT("1:"&LEN(A2)))返回从1到单元格A2字符长度的一个序列值{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16}

(2)MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)将单元格A2内的字符逐个取出,返回{"Z";"J";"2";"0";"2";"0";"0";"2";"0";"1";"花";"园";"宝";"宝";"项";"目"}

(3)LENB(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))计算每个字符的长度,返回{1;1;1;1;1;1;1;1;1;1;2;2;2;2;2;2}

(4)MATCH(2,LENB(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),0)返回第一个“2”出现的位置,该位置就是汉字的起始位置。

三、确定汉字个数

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多