提取手机号
函数名:p_提取手机号 / p_ExtractPhones
功能描述
从混合文本中提取所有符合中国手机号规范(1 开头的 11 位数字)的号码,自动去重,支持横向或竖向排列输出,可处理包含特殊字符、换行符等复杂文本。
会员等级:🟢 免费版(Free)
语法
excel
=p_ExtractPhones(原始文本, [排列方式])参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 原始文本 | String | 是 | - | 包含手机号的混合文本,支持含换行符的长文本 |
| 排列方式 | Integer | 否 | 0 | 0 = 横向排列(一行多列),1 = 竖向排列(一列多行) |
返回值
二维数组(Object[,]) - 返回提取到的手机号数组。横向输出为一行多列,竖向输出为一列多行。
使用示例
横向提取多个手机号
公式:
excel
=p_ExtractPhones("请回电13800138000,备用号13512345678")结果:
13800138000 13512345678竖向提取
公式:
excel
=p_ExtractPhones("电话:13512345678;微信:13800138000", 1)结果:
13512345678
13800138000自动去重
公式:
excel
=p_ExtractPhones("联系13800138000,再联系13800138000")结果(重复号码仅保留一个):
13800138000技术说明
- 正则匹配:使用正则
(1\d{10})精确匹配以 1 开头的 11 位数字。 - 去重处理:采用
Distinct()确保结果唯一性。 - 输出格式:
排列方式 = 0时横向一行多列输出;排列方式 = 1时纵向一列多行输出。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 无匹配手机号 | 空数组(无输出) |
| 提取过程异常 | 错误: 提取失败 |