怎么挑出手机号,没有手机号的单元格可以显示0或空白
excel吧
全部回复
仅看楼主
level 3
怎么挑出手机号,没有手机号的单元格可以显示0或空白
2017年11月15日 14点11分 1
level 10
分列,然后检测第一个字符是不是0
2017年11月15日 14点11分 2
是1的弄出来
2017年11月15日 14点11分
level 10
你把那个数据复制粘贴到文本文档,然后复制到贴吧
2017年11月15日 14点11分 3
level 10
要用正则的
2017年11月16日 02点11分 4
level 10
正则表达式
2017年11月16日 02点11分 5
level 8
不懂 帮顶
2017年11月16日 02点11分 6
level 8
考虑用vba做吧,公式倒是想出来一个,但是太长了还是数组公式
图中B1里公式如下:
=IF(AND(COLUMN(A1)>1,VLOOKUP(0,LARGE(IFERROR(IF(LEN(SUBSTITUTE(MID($A1,ROW($A$1:$A$99),11)," ",""))=11,--MID($A1,ROW($A$1:$A$99),11),0),0),COLUMN(A1))*{0,1},2,0)=0),"",VLOOKUP(0,LARGE(IFERROR(IF(LEN(SUBSTITUTE(MID($A1,ROW($A$1:$A$99),11)," ",""))=11,--MID($A1,ROW($A$1:$A$99),11),0),0),COLUMN(A1))*{0,1},2,0))
右拉并下拉即可
注:以上公式为数组公式,需要同时按下 Ctrl+Shift+回车 三键结束输入
大体思路如下:由于手机号是11位所以先用mid函数从A1单元格中文本的第1到N位提取11个字符,然后通过substitute函数将提取出的文本中的空格删除,然后再通过len判定删除空格后的文本是否为11位,然后再通过if函数将len判定为11位的文本返回本身,非11位的文本返回0,返回后就会得到 010-1234567,0,0,0,
13512341234
,....等一堆数字,由于在if中mid函数前方加了“--”这个符号表示将mid提取的文本转换为数值,所以当转换时010-1234567这样的文本就会报错,最终if返回的值为:错误,0,0,0,
13512341234
...这样的一堆数字,由于有错误值存在所以用iferror函数将错误值转换为0,最后返回给large函数的值为:0,0,0,0,
13512341234
,....然后通过large将其中第1个最大的数值返回,即
13512341234
然后再乘以{0,1}就会得到0,
13512341234
,,然后通过Vlookup函数将
13512341234
提取出来,由于A1中可能会含有多个手机号,当公式右拉时,C,D,....等列可能会出现0,所以在vlookup外边再用个if来限定下,当B列的后方,即C,D,...等列出现0时,显示为空
2017年11月16日 04点11分 7
level 8
建议用vba做,公式想出一个但是太长了
B1中公式:
=IF(AND(COLUMN(A1)>1,VLOOKUP(0,LARGE(IFERROR(IF(LEN(SUBSTITUTE(MID($A1,ROW($A$1:$A$99),11)," ",""))=11,--MID($A1,ROW($A$1:$A$99),11),0),0),COLUMN(A1))*{0,1},2,0)=0),"",VLOOKUP(0,LARGE(IFERROR(IF(LEN(SUBSTITUTE(MID($A1,ROW($A$1:$A$99),11)," ",""))=11,--MID($A1,ROW($A$1:$A$99),11),0),0),COLUMN(A1))*{0,1},2,0))
右拉并下拉即可
注:以上公式为数组公式,需要同时按下 Ctrl+Shift+回车 三键结束输入
PS:百度的破审核系统,刚刚打了半天连公式都大致解释了下,结果被这破审核系统告诉说有敏感词给删了......大爷的
2017年11月16日 04点11分 8
好长啊 我复制的公式 居然说公式存在错误
2017年11月17日 01点11分
@FM倔强的小丑 公式是否复制全了?原始数据是否在A列?这是个数组公式,复制后是否双击公式所在的单元格进入编辑状态后,同时按下 Ctrl+Shift+回车 结束编辑状态?
2017年11月17日 02点11分
level 8
防抽风....之前辛苦打的竟然被百度说有敏感词给删了...太恶心了
2017年11月16日 04点11分 9
1