暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

汉字与数字混合字符中提取连续的数字和汉字

施施的EXCEL后备军 2021-08-27
907
有时候,工作中需要一段连续字符(数字或者汉字分别提取出来如图1所示,需要房间名称房间分离出来。

图1

方法数组函数法。
解题思路:以下涉及函数数组函数,CTRL+SHIFT+ENTER组合键
因各个数字和汉字均是连续的。只要求出第一个数字所在的位置,因为数字均是连续的,再数字的连续个数(长度),在用MID函数可以得到数字串。得到数字串后,再用替换函数SUBSTITUTE得到汉字。
步骤
1.设计数组求出第一个数字所在位置:
=MIN(IFERROR(FIND(ROW($1:$10)-1,B2),9E+307))
然后CTRL+SHIFT+ENTER组合键输出结果4
函数解析:
①用ROW($1:$10)-1形成一个{0;1;2;3;4;5;6;7;8;9}数组;
FIND函数找出0-9每个数字所在第一次出现位置
用IFERROR函数屏蔽错误值没有查找到相应数字符号返回错误值。
MIN函数求出第一个数字所在位置。
备注:9E+307EXCEL科学计数法,相当于9*10^307接近于EXCEL允许输入最大数值。
2.设计另一个数组函数求出数字个数(长度
=SUM(ISNUMBER(--MID(B2,ROW($1:$100),1))*1)
然后CTRL+SHIFT+ENTER组合键输出结果3
函数解析:
ROW($1:$100)形成一个0至100数组
通过MID函数B2每个字符分开来。每次MID函数第1字符开始截取单位长度为1字符直到第100字符。(截图字符开始位超过字符总体长度,返回结果空。
通过“--减负运算使文字转为错误值,文字数字转为常规数字;
用ISNUMBER函数减负运算数组转换成TRUEFLASE数组
用*1是因为在四则运算中,TRUE相当于1,FLASE相当于0,这样就把非数字的所有字符都转为0,数字的都转为1;
SUM函数数组求和,得到数值就是数字长度。
3.MID函数两个函数融合起来,C2输入如下公式:
=MID(B2,MIN(IFERROR(FIND(ROW($1:$10)-1,B2),9E+307)),SUM(ISNUMBER(--MID(B2,ROW($1:$100),1))*1))
然后CTRL+SHIFT+ENTER组合键。
如图2所示。

图2

4.得到数字后,就可以替换SUBSTITUTE得到汉字
D2输入如下公式
=SUBSTITUTE(B2,C2,)
函数不是数组函数按ENTER就可以了。
如图3所示

图3

方法智能填充法。
解题思路:office2013版本以上Excel中,可以通过输入几个数据结果一般来说,3-5结果然后通过智能填充,Excel智能判断作者意图,然后CTRL+E组合键完成操作
步骤
1.C2:C4分别输入:101102、、103104
2.选中C2:C12然后CTRL+E完成。
如图4所示。

图4

这样得到数字串,然后也可以再次通过这个方法得到汉字。



Tips1CTRL+E智能填充条件是OFFICE2013版本以上,有时候需要输入几个数字才能填充,这个功能也不是万能对于规律不明显或者特征不明显的,即使输入再多,不能识别。
Tips2数组公式数组思维通往函数大门必经之路,有时候函数不太容易理解,但是还是需要花费较多时间精力接触熟悉它,直到掌握数组函数。
Tips3如果文中有什么错误地方,还请多多指正感谢
Tips4万丈高楼平地起!




文章转载自施施的EXCEL后备军,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论