复杂文本,快速提取手机号,你会么?

举个工作中的例子,左边是一列混合数据,我们希望快速提取出手机号信息,左边的数据是模拟的,如下所示:

复杂文本,快速提取手机号,你会么?

今天分享2种方法,快速进行提取

一、公式法

我们先直接先结果,我们在单元格中输入的公式是:
=MAX(IFERROR(--MID(A2,ROW($A$1:$A$99),11),0))
因为是数组公式 , 如果是低版本的excel,没有溢出功能 , 则需要按数组三键CTRL SHIFT ENTER得到结果
复杂文本,快速提取手机号,你会么?

我们解释一下原理,首先我们使用的公式是
=MID(A2,ROW(A1:A99),11)
它会对A2单元格,从第1位开始提取11位长度的数据
第2位开始的11位长度,第3位开始的11位长度,分别提取
复杂文本,快速提取手机号,你会么?

然后我们使用负负得正的方式,去替换掉非数字的信息
--MID(A2,ROW(A1:A99),11)
复杂文本,快速提取手机号,你会么?

然后用IFERROR公式去屏幕错误值,最后使用MAX函数公式获取这结果里面的最大值,也就是11位数字了
=MAX(IFERROR(--MID(A2,ROW(A1:A99),11),0))

方法二:使用VBA代码法

上述的方面只能解决杂乱的单元格文本中只存在一个手机号码的情况,如果说存在2个手机号,那么这个公式只能提取数字大的那个
复杂文本,快速提取手机号,你会么?

如果希望全部提取出来 , 则我们可以使用开发工具,打开Visual Basic,然后插入一个模块 , 自定义一个sz的函数公式
复杂文本,快速提取手机号,你会么?

然后我们在单元中输入的公式是:
=sz(A2)
复杂文本,快速提取手机号,你会么?

因为有了VBA代码,所以Excel文件也要另存为xlsm格式的文件(要不然下次打开的时候代码会丢失而无法使用自定义的sz公式)
【复杂文本,快速提取手机号,你会么?】关于这个小技巧 , 你学会了么?动手试试吧!

相关经验推荐