Excel怎样从字符串中提取位置和长度不固定的数字

最近上课的时候,常常有学员咨询怎样从Excel字符中提取位置和长度都不固定的数字,今天我们分两种情况来聊一聊对应的解决方案。


情况1:数字前后有特定的分隔符


如果数字前后有特定的分隔符,比如()、##等分隔符,那么我们可以通过查找这些分隔符的位置,来定位到数字的位置。


比如下图所示的这个案例,要提取的数字是所有的加分值,每个加分值的前面都有一个“+”号,后面都有一个“分”字。类似这种数据,我们可以通过FIND函数来查询出“+”和“分”的位置。


Find函数用来对原始数据中某个字符串进行定位,以确定其位置。Find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。

语法:FIND(找什么,在那里找,起始位置)


在本例中,“+”号在字符串中只出现一次,比如想查询B2+的位置,就可以使用函数=FIND("+",B2)来获得。


而如果要获得“分”字的位置,由于B列中的数据不仅仅是数字后面有“分”字,比如B5单元格中“分享心得+2分”的第1个字符也是“分”字,所以我们在使用FIND函数的时候,还需要用到第3个参数,也就是起始位置,我们把起始位置设置为C2单元格的值,也就是要查询的是从+号开始的第一个“分”字的位置。


这样我们就可以用D2-C2-1计算出数字的长度。



最后可以使用MID文本提取函数来取出数字:=MID(B2,C2+1,E2)



以下是函数的完成效果:



情况2:没有任何规律


如果数字不管是长度还是位置都是没有规律的,用Excel函数很难提取出来数字,虽然在网上能搜索到一些组合函数,但我测试过好多个都不一定能提取到数字,而且函数极其复杂。



其实我们可以结合到Word的替换功能来轻松搞定这个问题。将要提取数字的列复制到Word中,[CTRL+H]打开替换功能,选择“更多”,勾选“通配符”,在查找内容中输入[!0-9],意思是查找除0-9以外的字符,在替换为中什么都不用输入,点击全部替换。


此时我们看到表格中的所有除数字以外的字符都被删除了,之后我们就可以把这一列复制回到Excel中。


以上就是本期的全部内容,有没有get到一些技巧呢~


猜你喜欢

转载自blog.51cto.com/12297439/2321889