高分求助Excel 提取姓名,手机,座机,地址,邮编 的公式
发布网友
发布时间:2022-04-23 10:30
我来回答
共5个回答
热心网友
时间:2023-10-11 12:38
原来的数据放在A列,然后B-F列依次输入如下公式:
=MID(A1,1,FIND(",",A1,1)-1)
=MID(A1,FIND(B1,A1)+LEN(B1)+1,FIND(",",A1,FIND(B1,A1)+LEN(B1)+1)-FIND(",",A1,FIND(B1,A1))-1)
=MID(A1,FIND(C1,A1)+LEN(C1)+1,FIND(",",A1,FIND(C1,A1)+LEN(C1)+1)-FIND(",",A1,FIND(C1,A1))-1)
=MID(A1,FIND(D1,A1)+LEN(D1)+1,FIND(",",A1,FIND(D1,A1)+LEN(D1)+1)-FIND(",",A1,FIND(D1,A1))-1)
=RIGHT(A1,LEN(A1)-(FIND(E1,A1)+LEN(E1)))
然后向下填充。
如果你是写在A2到A5,那么公式相应的更改B1成A2,C1成A3... 然后向右填充。
【总体思路】:用mid函数按照逗号的位置截取需要的信息,第一个直接截取至第一个逗号,第二个从第一个值(姓名)后面的逗号开始,截取至下一个逗号,因此这里用到了我们第一次截取得到的结果,第三到第五类似。最后一个从右边开始取,到倒数第一个逗号。
【修改】
依次为:
=MID(A1,1,FIND(",",A1,1)-1)
=MID(A1,FIND(B1&",",A1)+LEN(B1&","),FIND(",",A1,FIND(B1&",",A1)+LEN(B1&",")+1)-LEN(B1&",")-1)
=MID(A1,FIND(B1&","&C1&",",A1)+LEN(B1&","&C1&","),FIND(",",A1,FIND(B1&","&C1&",",A1)+LEN(B1&","&C1&",")+1)-LEN(B1&","&C1&",")-1)
=MID(A1,FIND(B1&","&C1&","&D1&",",A1)+LEN(B1&","&C1&","&D1&","),FIND(",",A1,FIND(B1&","&C1&","&D1&",",A1)+LEN(B1&","&C1&","&D1&",")+1)-LEN(B1&","&C1&","&D1&",")-1)
=IF(RIGHT(A1,1)=",","",RIGHT(A1,6))
只要是逗号分开的就可以处理。
如果你需要,请留下email,我可以把excel文件发送给你。
热心网友
时间:2023-10-11 12:38
A2=LEFT(A$1,FIND(",",A$1)-1)
A3=MID(A$1,FIND("xyz",SUBSTITUTE(A$1,",","xyz",ROW()-2))+1,FIND("xyz",SUBSTITUTE(A$1,",","xyz",ROW()-1))-FIND("xyz",SUBSTITUTE(A$1,",","xyz",ROW()-2))-1)
拖到A5
A6=MID(A$1,FIND("xyz",SUBSTITUTE(A$1,",","xyz",ROW()-2))+1,LEN(A$1))
A2公式比较简单,LEFT函数就不说了,用FIND函数找逗号的位置
公式里面出现的比较多的是FIND("xyz",SUBSTITUTE(A$1,",","xyz",ROW()-2))
ROW函数也不用讲了吧,以A3为例,ROW()-2返回1,用SUBSTITUTE函数把第1个逗号换成"xyz",这个只要是你的原文本中不可能出现的字符串就行了,再用FIND函数找这个字符串的位置,即第1个逗号的位置,用这个方法主要是因为EXCEL没有直接找第几个特定字符位置的函数,要实现这个功能一般都是FIND和SUBSTITUTE函数嵌套,总的公式就是MID(A1,第1个逗号位置+1,第二个逗号的位置-第一个逗号的位置-1),MID函数应该也不用讲了吧
A6基本一样,只是最后没逗号,所以第二部份直接用LEN(A1),即A1的字符串长度替代了
总体思想就是取第N部份数据,就要取得第N-1和第N个逗号的位置,因为最前面和最后面没逗号,所以公式中取第一部份和最后一部份的公式不一样,为了公式的相同,你可以把A$1前后各并上一个逗号,刚可以直接在
A2=MID(","&A$1&",",FIND("xyz",SUBSTITUTE(","&A$1&",",",","xyz",ROW()-1))+1,FIND("xyz",SUBSTITUTE(","&A$1&",",",","xyz",ROW()))-FIND("xyz",SUBSTITUTE(","&A$1&",",",","xyz",ROW()-1))-1)
拖到A6
热心网友
时间:2023-10-11 12:39
如果你完全是上面的格式是可以解决的。我是用你上面的一行文字试验,是可行的。我用你的文字的是
黎 明,130000000,0123-12345678,湖北省 武汉市 和平小区5号楼,420000
这一行文字我试过,是可行的。
首先我要说得是制表符—(^t)
制表符就是上面一行中中括号里面的内容,他可以形成单独的一列。
具体到你这个问题,我是这样解决的,首先你把这样格式的文本copy到word中,然后将逗号替换成制表符,再复制到excell中。你就可以达到你所要求的目的了。
然后我用你下面的文字试验,可以通过
黎 明,130000000, ,湖北省 武汉市 和平小区5号楼,420000
王魅力 , ,0537-1234567,山东省 济宁市 曲阜市 第十中学 ,273100
黎 明,130000000,0123-12345678, ,420000
王魅力 ,1306666777 ,0537-1234567,山东省 济宁市 曲阜市 第十中学
证明这种方法是可行的
参考资料:http://zhidao.baidu.com/question/39087850.html
热心网友
时间:2023-10-11 12:40
B1=MID(A1,1,FIND(",",A1,1)-1)
C1=MID(RIGHT(A1,LEN(A1)-LEN(B1)-1),1,FIND(",",RIGHT(A1,LEN(A1)-LEN(B1)-1))-1)
D1=MID(RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C2)-2),1,FIND(",",RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C2)-2))-1)
E1=MID(RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-LEN(D1)-3),1,FIND(",",RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-LEN(D1)-3))-1)
F1=RIGHT(A1,LEN(A1)-LEN(B1)-LEN(C1)-LEN(D1)-LEN(E1)-4)
后面的下拉,此公式有个缺点。当逗号少于四个时,后面会出错。。
热心网友
时间:2023-10-11 12:40
用分列的方法呀。
方法:
1\选择菜单数据----->分列;
2\然后选择分列的方式为分隔符号,下一步;
3\分隔符号选择其它,在后面的文本框中输入",",下一步;
4\设置每列的数据类型。
5\完成.