背景:
朋友工作需要经常用EXCEL把各上海用户收货地址中的区提取出来,之前一直手动处理,希望我帮忙用EXCEL公式直接提取处理。
数据样式:
中国上海市浦东新区A小区
上海徐汇区B小区
中国,上海,浦东新区,C小区
原方法:
- 全局替换“中国”、“上海”、“上海市”等行政区前缀词
- 用LEFT()函数取前三个字符作为行政区
公式方法:
- 确认上海共有哪些行政区,在EXCEL中列一列出来,如下图【ALL行政区】列
- 每个行政区生成子公式,来查找地址中是否包含该行政区,包含则输出该行政区,不包含则输出空
- 拼接所有子公式,通过复制【子公式】列,转置粘贴成一行,进行拼接
- 拼接成的公式输入【行政区】列,下拉,取出【地址】里的行政区
- 拼接出的公式如下:
=IF(ISERROR(FIND(C2,A2)),"",C2)&IF(ISERROR(FIND(C3,A2)),"",C3)&IF(ISERROR(FIND(C4,A2)),"",C4)&IF(ISERROR(FIND(C5,A2)),"",C5)&IF(ISERROR(FIND(C6,A2)),"",C6)&IF(ISERROR(FIND(C7,A2)),"",C7)&IF(ISERROR(FIND(C8,A2)),"",C8)&IF(ISERROR(FIND(C9,A2)),"",C9)&IF(ISERROR(FIND(C10,A2)),"",C10)&IF(ISERROR(FIND(C11,A2)),"",C11)&IF(ISERROR(FIND(C12,A2)),"",C12)&IF(ISERROR(FIND(C13,A2)),"",C13)&IF(ISERROR(FIND(C14,A2)),"",C14)&IF(ISERROR(FIND(C15,A2)),"",C15)&IF(ISERROR(FIND(C16,A2)),"",C16)&IF(ISERROR(FIND(C17,A2)),"",C17)