以拆分地址为例-Excel拆分字符串应用示例 FIND( )和SUBSTITUTE( )函数的应用

上一次讲了用FIND( )和SUBSTITUTE( )分隔含特点字符的字符串,见《 Excel根据指定字符函数方法分割字符串》
今天再以地址拆分为例,讲一讲字符串拆分的另一种场景。

这里以FIND( )函数为主,SUBSTITUTE( )为辅。两个函数的语法见上一个链接。

思路:
1.首先在辅助列上求得 省(自治区),地市 (自治州),区/县,乡镇在地址字符串中的位置(下文“位置”均指相应字段在字符串中的位置);
2.如是直辖市,县级市,需单独处理,其中县级市判断方法:地址中含两个“市”;
3.最后用mid/left/right引用相应位置截取、分割地址字符串。

20160605-01
示例如下:

如A4列为地址,则:
省 位置:=IF(L4,3,IF(ISERROR(FIND(“省”,$A4)),IF(ISERROR(FIND(“自治区”,$A4)),0,FIND(“自治区”,$A4)+2),FIND(“省”,$A4)))
地市 位置:=IF(L4,0,IF(ISERROR(FIND(“市”,$A4,H4+1)),IF(ISERROR(FIND(“自治州”,$A4)),0,FIND(“自治州”,$A4)+2),FIND(“市”,$A4,H4+1)))
区县 位置:=IF(M4,FIND(“市”,$A4,MAX(H4:I4)+1),IF(ISERROR(FIND(“区”,$A4,MAX($H4:I4))),IF(ISERROR(FIND(“县”,$A4)),0,FIND(“县”,$A4)),FIND(“区”,$A4,MAX($H4:I4))))
……
判断是否县级市(用空格替代“市”后与原字符对比长度,减少的长度就是“市”出现的次数):
=IF(LEN(A4)-LEN(SUBSTITUTE(A4,”市”,””))>=2,1,0)

最后用用mid/left/right截取:
省: =LEFT($A4,H4)
市:=IF(I4,MID($A4,MAX($H4:H4)+1,I4-MAX($H4:H4)),””)
……
街道地址:=RIGHT(A4,LEN(A4)-MAX(H4:K4))

详细公式见文末附件示例文件
example_20160605

尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » 以拆分地址为例-Excel拆分字符串应用示例 FIND( )和SUBSTITUTE( )函数的应用

赞 (1)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址