当前位置: 首页 > Excel > Excel常用函数 > ExcelExcel技巧 > Excel杂乱数据中批量提取手机号

Excel杂乱数据中批量提取手机号

发布时间:2020年09月27日 08:17:33 来源: 点击量:557

【摘要】数据分析中有一个重要的步骤,就是对数据进行预处理,数据的统一格式化。例:如何将左边联系方式中的手机号码提取出来,结果如右边单元格所

数据分析中有一个重要的步骤,就是对数据进行预处理,数据的统一格式化。

例:如何将左边联系方式中的手机号码提取出来,结果如右边单元格所示:

<a style=Excel杂乱数据中批量提取手机号" />

从A列单元格的数据看,是手机号和固定电话的混和在一块的,其中固定电话显示也不规范,有的有区号,有的没有区号,有的区号和电话用“-”连接在一起,有的没有,而手机号码也不统一,有一个、二个、三个的。

如何数据量较少,可以逐个单元格复制提取,如果单元格很多的情况下,推荐使用VBA的方法批量提取,该VBA代码可以直接复制使用,不用修改内容

在 Excel中按ATL+F11,进行编程模式下,插入一个模块,创建一个自定义函数sz()函数

Excel杂乱数据中批量提取手机号

输入的代码如下所示:

Excel杂乱数据中批量提取手机号

Function sz(xstr As String)

Dim i As Integer

Dim n

For i = 1 To Len(xstr)

If Mid(xstr, i, 1) = 1 And IsNumeric(Mid(xstr, i, 11)) Then

n = Mid(xstr, i, 11)

If Len(n) = 11 Then

sz = sz & "/" & n

End If

End If

Next i

If Len(sz) Then

sz = Right(sz, Len(sz) - 1)

Else

sz =

End If

End Function

然后在单元格中调用自定义函数SZ(A2),得到的结果如下所示:

Excel杂乱数据中批量提取手机号

利用主要的提取原理:手机号第1位是1并且是11位数字

关键代码解释:

以A3单元格的值,做执行过程分析

58403844 15151884992 15195779387

这个字符的长度是32,让i从1至32做一个循环

i=1的时候,执行第一个IF语句

Mid(xstr, i, 1)=5,并不等于1

直接结束IF语句,继续i

那么i=2时,IF也不成立

直到i=10的时候,

Mid(xstr, i, 1)=1,并且IsNumeric(Mid(xstr, i, 11))也是数字

那么n就截取这11位,如果这个值是11位的,那就传递给sz保存下来

结果,继续i,直到把所有的手机号截取完成

不知道有没有看懂,没有看懂的话,就直接复制代码套用即可。

本节完,

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部