打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
EXCEL表中提取混合文本中的电话号码,正则法

我们用excel处理处理数据的时候,希望数据都是规整的,比如一列姓名就都是姓名,一列地址就都是地址,一列电话就都是电话,但是实际使用的时候,由于各种原因,我们的数据经常是信息混杂在一起,今天介绍一种从混合数据中提取出电话号码的方法,简单的数据用分列以及left或者right函数,就可以做到,当然也有函数大咖们写的无比复杂的数组公式,但是毕竟函数的应用情景有限,我今天要介绍的是自定义函数中使用正则表达式来提取信息,这个方法基本可以通用

看图

C2公式,往下复制

普通函数方法 =MIDB(A2,SEARCHB("?",A2),LEN(A2))

缺点是只能提取左边为汉字及中文标点的号码

正则函数 =regGet(A2,"d{11}")

可以提取所有11位数字形式号码,不管在文本中任何位置

alt+f11打开vba编辑器,插入模块 粘贴文章后面的代码,就可以在EXCEL表里使用了,注意使用代码的表要保存为以下格式中的一种:xls,xlsb,xlsm

代码如下

Public Function regGet(s, pString) '返回正则匹配d[^_]*d

Dim matchs, regex

Dim temp, N

Set regex = CreateObject("VBScript.RegExp")

With regex

.Global = True

.IgnoreCase = True

.Pattern = pString

Set matchs = .Execute(s)

End With

regGet = matchs(0).Value

Set regex = Nothing

Set matchs = Nothing

End Function

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel VBA解读(62):设置数字格式
COUNTIF函数,“聪明的”选择
EXCEL用函数从混合文本中提取名字及银行卡号 分列显示
EXCEL文本混合数字表不能按数字顺序排序的解决方案
Excel中从混合文本中提取数字的万能公式
“替换”函数,这两个一个也不能少,用处很大
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服