excel学习库

excel表格_excel函数公式大全_execl从入门到精通

汉字、字母、数字混合,如何提取其中的汉字?超详细教程

一、问题分析

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

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

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

只要我们知道汉字的起始位置和字数,就可以使用MID函数将汉字提取出来

二、确定汉字的起始位置

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

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

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”出现的位置,该位置就是汉字的起始位置。

三、确定汉字个数

在往期文章

LENB和LEN函数的差就是单元格内汉字的字数

在单元格C2输入公式 =LENB(A2)-LEN(A2),拖动填充柄向下复制公式。该公式返回的值就是单元格内汉字的个数。

、提取单元格内汉字

在D2单元格内输入公式 =MID(A2,B2,C2),拖动填充柄向下复制公式。

A2单元格Mid函数表示,从单元格A2字符串的起始位置11(即B2单元格的值)提取6(即C2单元格的值)个字符,返回的值就是A2单元格内的汉字。

如果不增加B、C两列辅助列,提取汉字的公式为

=MID(A2,MATCH(2,LENB(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),0),LENB(A2)-LEN(A2)),按Ctrl+Shift+Enter结束公式输入。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接