之前在【推送292】中,表妹介绍了“从文本中提取数字”的方法,激发了广大函数爱好者的学习兴趣。不过该方法利用的是“汉字字节与数字字节数量不同”的原理,因此只适用于“汉字+数字(或字母)”的情况,那如果是“字母+数字”,两者字节数量完全相同,这种情况又该如何进行分离呢?别急,本期推送表妹就来为大家解答“从字母中提取数字”问题,聪明好学的你可要收藏好哟~~下面开始讲解。
~~~~~~数字提取的分割线~~~~~~
提取字母中的数字
-------------------------------------
【公式】
=-LOOKUP(1,MID(A2,MATCH(0,0/MID(A2,ROW($1:$99),1),0),
ROW($1:$99)))
说明:
①此公式为数组公式,执行时须同时按下Ctrl+Shift+Enter三键
②ROW($1:$99):99为自定义常数,大小可视文本长度和数字长度而定。例如文本长度均小于10字符,可修改为ROW($1:$10)
-------------------------------------
操作过程虽然简单,但函数公式却还是有点难度的,所以接下来表妹就从里到外依次给大家解释一下每个函数的运算原理。
解释1:MID(A2,ROW($1:$99),1)
MID函数是字符串提取函数,三个参数分别是(目标文本,开始位置,提取长度)。由于第二个参数“ROW($1:$99)”会依次返回1行到99行的行号,即{1;2;3;4;...;99},因此MID函数会依次提取A2中的每1个字符,即{a;d;n;4;5;6;l;i;j; ...}。
解释2:0/MID(...)
用0除以MID函数提取的字符,其中,数字会变成0,而字母会变成错误值#DIV/0!。
解释3:MATCH(0,...)
MATCH函数查找首个结果“0”在上组字符中的位置,从而确定出首个数字在文本字符串中的位置。
解释4:MID(A2,MATCH(0,...),ROW($1:$99))
MID函数在A2文本中,从MATCH函数返回的首个数字位置开始,逐一增位提取字符,即{4;45;456;456l;456li;456lij;456lij;...}。
解释5:-MID(...)
负号“-”对MID函数返回的字符进行运算,数字会变成相反数,字母会变成错误值#VALUE!。
解释6:LOOKUP(1,...)
LOOKUP函数通过查找值1,利用二分法查找原理返回末位字符串“-456”。
解释7:-LOOKUP(1,...)
对LOOKUP函数返回的字符串取相反数。
------------------------------------
怎么样?通过表妹以上图文并茂的解释,同学们对数组公式的运算原理是不是都清楚了呢?其实,上面的数组公式是一个“通用”公式,因为它对于数字在字符串的“左边”、“右边”和“中间”的三种情况都适用,因此在公式编写上就比较复杂。如果同学们在实际工作中处理的数据比较有规律,即数字只位于字符串的“左边”或“右边”,也可以使用下面这两个简化公式来提取数字。
简化情况
数字在“左边”
【公式】=-LOOKUP(,-LEFT(A2,ROW($1:$99)))
------------------------------------
数字在“右边”
【公式】=-LOOKUP(,-RIGHT(A2,ROW($1:$99)))
------------------------------------
以上就是“从字母中间提取数字”的全部方法了,怎么样?聪明的你是否都学会了呢?欢迎留言告诉表妹哟~~
如果你觉得表妹的分享内容很实用,欢迎分享给其他小伙伴呦,独乐乐不如众乐乐嘛!长按二维码图片,识别图中二维码,关注“表妹的EXCEL”,每周一、三、五获取原创分享教程。加入“表妹的EXCEL群”,和勤奋好学的小伙伴们一起快乐地学习EXCEL吧!
微信公众号 QQ学习群