高分求助Excel 提取姓名,手机,座机,地址,邮编 的公式

有很多地址数据,注意是在一个单元格的数据,如下格式,文字数量不等:
姓名,手机,固定电话,地址,邮编
具体点是:
黎 明,130000000,0123-12345678,湖北省 武汉市 和平小区5号楼,420000
王魅力 ,1306666777 ,0537-1234567,山东省 济宁市 曲阜市 第十中学 ,273100
数据是在A1单元格,然后把它们拆分成分开的单元格,分别在A2 A3 A4 A5 A6中,如果您能回答,定是高手,呵呵,尽量解答的清楚些,方便大家学习啊!
谢谢大家的好意,我要用这个数据自动生成快递单,每天都要不断的添加数据的,一天要添加几十次的哦,所以必须用函数公式。
你好!luosiyong朋友你还真是个高手啊,但是我试验时碰到了这样的问题,

就是2个逗号之间的是空格,如

黎 明,130000000, ,湖北省 武汉市 和平小区5号楼,420000
王魅力 , ,0537-1234567,山东省 济宁市 曲阜市 第十中学 ,273100
黎 明,130000000,0123-12345678, ,420000
王魅力 ,1306666777 ,0537-1234567,山东省 济宁市 曲阜市 第十中学 ,
然后公式就失效了,你看看如何解决呢,只有你的公式试验通过了

原来的数据放在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文件发送给你。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-06
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
第2个回答  2008-10-06
如果你完全是上面的格式是可以解决的。我是用你上面的一行文字试验,是可行的。我用你的文字的是
黎 明,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

第3个回答  2008-10-08
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)

后面的下拉,此公式有个缺点。当逗号少于四个时,后面会出错。。
第4个回答  2008-10-05
用分列的方法呀。
方法:
1\选择菜单数据----->分列;
2\然后选择分列的方式为分隔符号,下一步;
3\分隔符号选择其它,在后面的文本框中输入",",下一步;
4\设置每列的数据类型。
5\完成.

高分求助Excel 提取姓名,手机,座机,地址,邮编 的公式
=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...

excel高分求助,查找户口所在地问题。
在E2输入公式 =IF(COUNTIF(A$2:A$50000,A2)=SUMPRODUCT((A$2:A$50000=A2)*(D$2:D$50000=D6)),,"此户有不同地区户口")往下拉到最后即可

excel表格批处理提取最大数,高手请进,高分求助,粘贴党滚?
1、复制A列到C列,点“数据”,选C列,重复项,删除重复项,如图:2.选当前选定区域,删除重复项,如图:3.直接选删除重复项,如图:4.结果如图:5.D1输入公式:=IF(C1="","","有 "&COUNTIF(A:A,C1)&" 轨")或 =IF(C1="","","有 "&LOOKUP(C1,A:A,B:B)&" 轨")然后(不用...

excel数据提取问题 高分求助啊
在非筛选状态:借用一空白列,比如S列,在S2录入:=IF((F2="恒流放电")*(Q2=Q1)*(Q2<>Q3),"Y","")然后向下填充或复制至最后一行,这时所有符合你要求的数据行在S列会显示字符“Y”,在S列使用筛选功能,就可以把所有符合要求的数据行筛选出来 最后就是根据你的需要,复制粘贴到你需要的地方...

excel公式求助,高分
假如你在C3中输入 序号,1或者23或者其他 在旁边的C4中输入 =INDIRECT("sheet1!A"&C3)采用indirect函数很方便。

EXCEL 对比公式求高手!!高分回报。
如果只是将sheet2中已有名字的sheet1数据导入,即导入同名的数据。楼上的=VLOOKUP($B3,SHEET1!$A:$M,COLUMN(B1),0) 就可以了。如果是要将sheet2中不存在的名字的sheet1数据导入,即导入不同名的数据,则要index small countif 组合公式。

excel数据提取问题 高分求助啊
1、A294公式上拉! 然后筛选A列不为0的即可!( 最后一行是1000行的话,将公式中的294全部改为1000)2、选中E2后 按CTRL+向下箭头,直接可以定位到最后一份空单元格。中间有空白的话,可以连续按几次。 ctrl+向上箭头,是反向定位!=N(SUMPRODUCT((E294:$E$294=1)*(F294:$F$294="恒流...

高分求助excel函数公式的意思!!!
分解这个函数:LOOKUP($G16,--LEFT($A7:$B11,FIND("≤",$A7:$B11)-1),$C7:$C11)--LEFT($A7:$B11,FIND("≤",$A7:$B11)-1)在A7:B11区域内,从左起取数,截止以"≤"为准,比如A1数值为15≤A,则得到数值15,前面两个--符号,是负负得正的意思 LOOKUP函数的取值,是在以上面...

EXCEL中对数据自动进行排序并提取前5个数据。高分求助
B列公式=INDIRECT("E"&MATCH(C5,$F$5:$F$14,0)+4)C列公式=LARGE($F$6:$F$14,ROW(A1))思路如下:第一步:首先计算C列的排序,利用LARGE函数求一组数据的最大值,利用ROW函数来做LARGE的第二个参数,这个是返回第N大的值第二步:再利用MATCH来查找C列数据在F列数据的位置,+4是因为...

EXCEL。表格公式求助
EXCEL。B1出现“借”,后面B3就要等于A3(例如数字:8000)减去B2(例如数字500);B1出现“贷”,后面B3就要等于A3(例如数字:8000)加上B2(例如数字500)。求B3的那个怎么做公式... EXCEL。B1出现“借”,后面B3就要等于A3(例如数字:8000)减去B2(例如数字500);B1出现“贷”,后面B3就要等于A3(例如数字:8000)加上B2(...

相似回答
大家正在搜