登录
首页 >  文章 >  软件教程

Excel快速提取手机号方法大全

时间:2026-02-19 08:19:09 147浏览 收藏

本文系统介绍了五种在Excel中从杂乱文本中快速、准确提取中国大陆手机号(11位、以13/14/15/17/18/19开头)的实用方法——从零代码的快速填充和公式组合,到Power Query批量清洗、VBA正则精准匹配,再到Excel 365原生REGEXEXTRACT函数的极简调用,覆盖不同版本、不同技能水平和不同数据规模的实际需求,助你告别手动翻找、大幅降低出错率,真正实现“一键提取”。

Excel怎么快速提取手机号 Excel从杂乱文字提数字方法【技巧】

如果您在Excel中处理包含杂乱文字的单元格,需要从中快速提取手机号码,则可能是由于手机号嵌套在长文本、标点符号或中文字符之间,导致无法直接识别。以下是几种高效提取手机号的方法:

一、使用SUBSTITUTE与MID结合正则逻辑提取

该方法适用于手机号固定为11位且前后无其他连续数字干扰的场景,通过逐层替换非数字字符,再定位长度为11的数字串。

1、在空白列输入公式:=TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),CHAR(10),LEN(A1)))(此为辅助思路,实际需配合数组逻辑)

2、改用更可靠方式:先清理所有非数字字符,使用公式:=TEXTJOIN("",TRUE,IF(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"")),按Ctrl+Shift+Enter确认为数组公式(Excel 365/2021可直接回车)

3、对清洗后的纯数字字符串,用SEARCH查找“1[3-9]”开头的11位子串,再用MID截取:=IFERROR(MID(B1,MIN(IF(ISNUMBER(FIND({"13","14","15","17","18","19"},B1)),FIND({"13","14","15","17","18","19"},B1))),11),"")

二、使用Power Query批量提取

Power Query适合处理大批量非结构化文本,能自动识别并筛选出符合手机号格式的11位数字序列,无需编写复杂公式。

1、选中数据列,点击【数据】→【从表格/区域】,勾选“表包含标题”,确定进入Power Query编辑器

2、右键该列→【转换】→【提取】→【仅数字】,生成新列,得到纯数字字符串

3、添加自定义列,输入公式:if Text.Length([数字列])>=11 then Text.Middle([数字列],0,11) else null

4、再添加条件列,判断是否以“13”、“14”、“15”、“17”、“18”或“19”开头,保留匹配行

三、使用VBA正则表达式精准匹配

正则表达式可严格匹配“1+10位数字”的手机号模式,避免误提身份证号末11位等干扰项,适合有编程基础或需反复执行的用户。

1、按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:

Function ExtractPhone(str As String) As String Dim regEx As Object Set regEx = CreateObject("VBScript.RegExp") With regEx .Global = True .Pattern = "1[3-9]\d{9}" End With If regEx.Test(str) Then ExtractPhone = regEx.Execute(str)(0).Value Else ExtractPhone = "" End Function

2、返回Excel,在空白单元格输入公式:=ExtractPhone(A1)

3、将公式向下填充,即可批量提取首个匹配的手机号

四、利用Excel 365新函数REGEXEXTRACT(仅限订阅版)

Excel 365及更新版本内置正则函数,无需VBA即可实现一键提取,语法简洁且支持多结果返回。

1、确认您的Excel版本为Microsoft 365 Insider Beta或2024年9月后更新版本

2、在目标单元格输入:=REGEXEXTRACT(A1,"1[3-9]\d{9}")

3、若同一单元格含多个手机号,可追加参数3获取全部匹配项:=REGEXEXTRACT(A1,"1[3-9]\d{9}",3)

五、手动定位+快速填充(低技术门槛法)

适用于样本量小、格式较统一的场景,借助Excel内置“快速填充”功能,由用户示范一次提取逻辑,系统自动学习并延展。

1、在相邻空白列手动输入第一个单元格中的手机号(确保准确无误)

2、选中已填写的单元格及其下方若干空单元格(如B1:B10)

3、按下Ctrl+E触发快速填充,Excel将根据A列文本与B1示例的映射关系自动填充其余结果

4、检查前10行结果是否正确,如有偏差,修改B2内容后再次Ctrl+E重新训练

今天关于《Excel快速提取手机号方法大全》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>