ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10598|回复: 19

[求助] 如何才能用公式把固定电话的区号全部给去掉

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-28 19:37 | 显示全部楼层 |阅读模式
电话.png
A列都是由固话跟手机用“/”连接成的,而且有些固话客服下的单本来就没有区号的了,很多都是有区号的,现在就要求把A列的电话号码跟手机号码给分离开来并且如果是固话的话要把区号全部给去掉,因为每天都有上千个这样的要弄,各路大神有没有好一点的办法用公式或者excel的其他功能一步到位的,我现在只能做到把固话跟手机号码用分列功能给分开,区号的话,要么只能去掉是有4位区号的固话,区号是3位的就无法去掉,要不就只能去掉区号是3位的固话,4位的又没法去掉,求帮忙,这个问题已经折腾了我一个多星期了,每天工作光做这个事都要做好久

区号分离.rar

22.01 KB, 下载次数: 49

TA的精华主题

TA的得分主题

发表于 2016-5-28 20:16 | 显示全部楼层
区号这一块...想要实现你的需求,估计得把全国所有城市的区号统计出来才行...这个在技术层次来说没什么难度,难度在于基础数据的收集.

TA的精华主题

TA的得分主题

发表于 2016-5-28 20:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
区号0开头是有规律的在处理是先检索一边区号表,然后处理

TA的精华主题

TA的得分主题

发表于 2016-5-28 20:27 | 显示全部楼层
本帖最后由 xwcxks48 于 2016-5-28 20:42 编辑

先通过利用“/”分列把电话号码分开来
再通过第一位是否为1判断是否为手机号码

过判断号码长度是否小于10,判断是否有区号通过第一位是否为0判断是否为电话号码
然后根据第二位是否小于等于2判断区号是3位还是4位
小于等于2区号只有3位,从第4位开始取数
大于2区号有4位,从第5位开始取数

以上为我的思路,不知能否达到楼主的要求
或者有其他特殊的例子没能达到要求

结果未经验证,楼主自己判断

区号分离_xw.zip

72.27 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2016-5-28 20:45 | 显示全部楼层
C2=IF(1*MID(A2,1,1)=0,MID(A2,1,11),IF(1*MID(A2,13,1)=0,MID(A2,13,11),IF(1*MID(A2,25,1)=0,MID(A2,25,11)," ")))

D2=IF(1*MID(A2,1,1)=1,MID(A2,1,11),IF(1*MID(A2,13,1)=1,MID(A2,13,11)," "))复制即可。

TA的精华主题

TA的得分主题

发表于 2016-5-28 20:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼上几位或许没有注意各区固定电话的组成...
大城市一般是3位区号加8位电话号码
小一点的城市,一般是4位区号加7位电话号码,曾今我以为,区号加电话号码应该是11位,但一次偶然的机会,发现,有4位区号加8位号码的组合....所以,个人认为没有独立的区号表,楼主想要实现的功能是没法实现的...

TA的精华主题

TA的得分主题

发表于 2016-5-28 21:29 | 显示全部楼层
=IFERROR(MID(TRIM(MID(SUBSTITUTE(" "&A2,"/",REPT(" ",50)),FIND(" 0",SUBSTITUTE(" "&A2,"/",REPT(" ",50))),50)),5-COUNT(FIND("/02","/"&A2)),19),"")
=SUBSTITUTE(TRIM(REPLACE(SUBSTITUTE(" "&A2,"/",REPT(" ",50)),FIND(" 0",SUBSTITUTE(" "&A2&" 0","/",REPT(" ",50))),50,))," ","/")

下拉

TA的精华主题

TA的得分主题

发表于 2016-5-28 21:30 | 显示全部楼层
区号分离.rar (51.28 KB, 下载次数: 7)

附件

TA的精华主题

TA的得分主题

发表于 2016-5-28 21:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
做了很久,最后还是放弃了。真的太复杂,有些还夹着“-”,有些是三个号码的,而且可能是全部固话或全部手机。
但是关于区号可以跟你说一下,固话都是11位,前三位小于030区号是3位数的,号码是8位数。区号前三位大于030的,区号是4位数,号码是7位数。
很多要求你也没说清楚,比如A列是两个固话,B列是否为去掉区号用“\"隔开的两个固话?
如果可以用分列的话会比较简单,但是如果你要求同一个单元格分出来的号码必须在同一行的话,那又很复杂了

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-28 21:32 | 显示全部楼层
本帖最后由 沉默式、Kiss 于 2016-5-28 21:34 编辑

      首先,感谢各位大神的帮助,我的思路是这样的,先用分列功能全部区别手机跟固话,然后判断1开头的肯定是手机的,直接返回手机号码,接着判断固话区号,我从网上搜集到全国各地的区号做成了表格,先判断前四位数字跟全国各地的区号进行匹配,如果成功的话则返回区号后面的那几个数字,如果匹配不成功的话就直接返回截取那个单元格里面的前三位字符后面的一串数字对于电话在哪一列,手机在哪一列最后再手工来操作了,但是,按照我这样来弄的话,如果是手机或者区号是4位数字的都可以正确的弄出来,就是遇到3位数的区号就直接返回错误了
帮忙看看我这样写的到底哪里有问题,才能不会返回错误的提示
错误整理.jpg
错误整理.jpg
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 08:35 , Processed in 0.051339 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表