如何从杂乱的信息中提取手机号码?

墨云轩
墨云轩

创作者俱乐部成员

如图:

我们想从这些乱七八糟的数据中,将手机号码提取出来。

Excel选手做法:

利用lookup函数思路:

=LOOKUP(9E+307,--MID(D2&"a",ROW($1:$99),11))

公式解释如下:

MID(D2&"a",ROW($1:$99),11)部分,利用mid函数分别从第1位到第99位截取11个字符(因为手机号是11位),&"a"是避免结尾为数值,防止造成结果紊乱。

这部分公式运算结果如下图:

--MID(D2&"a",ROW($1:$99),11)公式前加两个--是将文本转换成错误值,文本型数字转换成数值型数字,如下图:

最后利用lookup 函数经典用法,提取数字。

WPS选手做法:

利用WPS独有函数regexp来提取手机号码更方便

=REGEXP(D2,"\d{11}")

公式解释如下:

regexp函数是WPS更新的独有函数,功能非常强大!

正则表达式中,关于数字提取相关的符号如下:

\d:任意1个数字

+:文本长度>=1

\d+:任意长度的连续数字

=REGEXP(D2,"\d")运算结果如下图:

=REGEXP(D2,"\d+")运算结果如下图:

但是,我们只想提取11位长度的手机号,怎么设置数字长度?

可以这样写:

{m,n}表示m~n个字符,

所以公式可以改成:

=REGEXP(D2,"\d{11}"),公式运算结果如下:

今天的分享就到这里!regexp函数功能非常强大,正则表达式对于我这样非计算机专业人员,学习起来有点困难,仍在继续学习中!

使用的是Windows下WPS,版本如下图:

我是墨云轩,热衷分享wps办公小技巧,边学习,边分享,每天进步一点点!感谢您的阅读!

河北省
浏览 407
6
22
分享
22 +1
11
6 +1
全部评论 11
 
晴天
get
· 广东省
回复
 
幸福春
学到了
· 山东省
1
回复
 
X
很有用👍🏻👍🏻👍🏻
· 河北省
2
回复
 
经历失望变黑子
总感觉向下匹配接近的这种方法程序计算量会大。可能是错觉吧。
· 重庆
1
回复
 
李世坤
· 河北省
1
回复
 
微信用户
1
· 河北省
1
回复
 
扬帆起航
收藏
· 山东省
1
回复
 
水墨染青花
点赞+收藏
· 四川省
1
回复
 
水墨染青花
· 四川省
1
回复
 
微信用户
很有用,成功学会了
· 河北省
1
回复
 
答案
狠厉害哦~
· 浙江省
1
回复