EXCEL单元格中有人名、固话和手机号,如何只把手机号筛选出来?

表格内容如下所示杨xx:03xx-1234665:13500001234;张xx:03xx-1234665:13500001234;王xx:03xx-1,13500001234;赵xx:1234567:13500001234;

你拷屏贴上来,根据你的画面具体情况,以便给你支招。
如果这些要素之间有逗号空格等符号,可以使用分列功能,把手机号单独一列。
实在什么规律都没有,也可以VBA编程实现,编程可能一时半会学不会,你可以分享文件(使用百度云很简单)我做好给你。追问

内容是没有任何规律的,每一列里的手机号数量也不一样

追答

你这个有规律,用分号分列,然后全部弄成一列,再用冒号分列。

追问

你说的这个方法可行,但如果是没有分号冒号这样的规律呢?现成的公式应该不好做吧?不想麻烦程序员下手

追答

没有规律是没办法用公式解决的。


程序员是使用正在表达式匹配,抽取11位及以上的连续数字串,一行多个串的可以循环为数组抽出,EXCEL本身没有类似功能的函数。


程序是高手的必经之路,就一个正则匹配,其实只有几个语句,你愿意琢磨的话,我给一个我写过的类似功能的例子代码:

Option Explicit

Function GetCntr(s)'可以工作表调用
    Dim r, arr
    Set r = CreateObject("VBScript.RegExp")
    r.Pattern = "[0-9]{11}"
    Set arr = r.Execute(s)
    Set r = Nothing
    If arr.Count > 0 Then GetCntr = arr(0) Else GetCntr = ""
End Function

Sub xxx()
    MsgBox GetCntr("kjsh13800138000fkjhskdjfhskjdhfk")
End Sub追问

虽然不写代码,不过能看懂你说的意思,这次已经解决问题,如果再碰到类似的表格,就让程序员去处理,非常感谢您的帮助!

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-11
上传带行列号的有数据示例的表格截图,清楚说明已知条件,达成什么样的结果,才能给你准确的答案。追问

示例已经传上

追答

如果是这样,简单到我都不知道该怎样回答了。C列全是手机号,还需要怎样筛选?

追问

然而并不是这样,这些数据都在一个单元格内,并不是分开的,要是按照你图上这样的话,我就不纠结咯

追答

就你这截图,谁能回答?

第2个回答  2020-10-10
之前在公司做销售工作的时候,遇到了跟你同样的问题。
想着一个个单独手动去挑出来,结果工作量太大,作罢。
之后问了一个技术达人同事,介绍了一个小工具,叫
金芝号码提取整理助手,把这些固话人名号码都复制
到软件上,点一键提取手机号码,很快就出了,省事。
相似回答