在excel中如何用函数把地址按省市分成三段

比如说单元格a1内容为浙江省杭州市庆春路18号,如何分别在b1,c1,d1单元格中显示浙江省 杭州市 庆春路18号

方法如下:

1、提取省份

(1)中国的省份、自治区、直辖市、特别行政区基本是固定的,名称最短的是2个字加“省”,而且名称不重复,最简单的方法就是全部罗列,然后查找匹配。

(2)公式=VLOOKUP(LEFT(A2,2)&"*",{"河北省";"山西省";"辽宁省";"吉林省";"黑龙江省";"江苏省";"浙江省";"安徽省";"福建省";"江西省";"山东省";"河南省";"湖北省";"湖南省";"广东省";"海南省";"四川省";"贵州省";"云南省";"陕西省";"甘肃省";"青海省";"台湾省";"北京市";"天津市";"上海市";"重庆市";"广西壮族自治区";"内蒙古自治区";"西藏自治区";"宁夏回族自治区";"新疆维吾尔自治区";"香港特别行政区";"澳门特别行政区"},1,0)

(3)先提取地址表中的前两个字,然后利用通配符“*”完成需要VLOOKUP中的第1个参数-查找值,将所有的省份全部罗列作为第2个参数查找区域,然后就在查找区域中找到对应的省份,即可完成匹配。

2、提取城市

省份提取结束后,需要提取地市了,这个时候我们就要用到SUBSTITUTE这个文本替换函数,只需要将地址表中的省份替换为空值即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-22
B1:
=LEFT(A1,FIND("省",A1))
C1:
=MID(A1,FIND("省",A1)+1,FIND("市",A1)-FIND("省",A1))
D1:
=RIGHT(A1,LEN(A1)-FIND("市",A1))
友情提示:上面公式只适合“省市”格式,如果有自治区等其他格式,会出错。本回答被网友采纳
第2个回答  2016-01-22
B1中输入
=LEFT(A1,FIND("省",A1))
C1
=MID(A1,LEN(B1)+1,FIND("市",A1)-LEN(B1))
D1
=SUBSTITUTE(A1,B1&C1,"")
第3个回答  2016-01-22
B1:
=LEFT(A1,FIND("省",A1))
C1:
=LEFT(SUBSTITUTE(A1,B1,""),FIND("市",SUBSTITUTE(A1,B1,"")))
D1:
=SUBSTITUTE(A1,B1&C1,"")
相似回答