您的位置首页生活百科

如何从地址中提取固定镇(乡)和全部镇(乡)

如何从地址中提取固定镇(乡)和全部镇(乡)

的有关信息介绍如下:

如何从地址中提取固定镇(乡)和全部镇(乡)

做客户的地域需求分析时,我们想查看哪些镇对产品的需求量较多,然当我们对客户的地址进行归类,手动比较麻烦;本例主要介绍如何利用Excel从多个地址中提取固定的内容或者固定属性的内容(一般情况我们的地址分类为省、市、县(区)、镇(乡)、村等)

1.IF函数:IF(测试条件,真值,[假值]),即判断测试条件是否满足,满足返回真值,反之,返回另外一个值(假值);

2.ISNUMBER函数:ISNUMBER(值),该函数主要是检测括号中的值是否为数值,若是,返回TRUE,反之,返回FALSE

3.FIND函数:FIND(要查找的字符串,在哪里查找,从第几位开始查找),该函数主要是返回一个字符串在另一个字符串中出现的位置情况

4. MID函数:个人理解LEFT函数和RIGHT函数性质类似,均为截取某段的函数,MID-从中间向右侧开始截取;LEFT-从左侧向右侧开始截取; RIGHT-从右侧向左侧开始截取;MID(要截取的原始字符串,截取的开始位置,截取的字符串个数)

提取固定镇(乡)(本例提取马头镇、根思乡)

在B2单元格输“=IF(ISNUMBER(FIND("马头镇",A2,1)),"马头镇",IF(ISNUMBER(FIND("根思乡",A2,1)),"根思乡","其他"))”,按ENTER返回上图结果

B2单元格公式解读:从A2单元格第1个字符起查找”马头镇”的位置,没有找到对应的位置则显示非数值,故不能返回”马头镇”,则从A2单元格第1个字符起查找”根思乡”的位置,没有找到对应的位置则显示非数值,故不能返回”根思乡”,返回假值-其他

当从大量地址中找某一镇,可以通过筛选实现,而当查找多个镇地址时,一个个筛选相对来说较为缓慢,这时可以通过公式获取某些特定镇;(以上针对数据不多的固定镇,若数据较多,可全部提取,再利用VLOOKUP函数做相应匹配)

注意:生活中我们遇到的地址可能没有明显的标识镇(乡),所以在查找字符串时,我们可写不含镇的镇名,返回值包含镇;例如以马头镇为例,查找”马头”,返回"马头镇”,这样可能缺失的数据也会被提取出来

粗略提取所有镇(乡)

在C2单元格输“=IF(ISNUMBER(FIND("镇",A2,1)),MID(A2,FIND("镇",A2,1)-2,3),IF(ISNUMBER(FIND("乡",A2,1)),MID(A2,FIND("乡",A2,1)-2,3),"其他"))”,按ENTER返回上图结果

C2单元格解读:从A2单元格第1个字符起查找字符”镇”的位置,结果返回是镇的位置12,是数值,则IF判断结果返回为真值,结果输出:从A2单元格中的镇的前2位截取,一共截取3位数,最终返回结果为【远襄镇】

(1)优点:较为快速提取镇及不含镇的乡

(2)缺点:仅能提取含镇或不含镇的乡,且提取内容仅限2个字。若不含镇无法提取或镇不是2个字无法完整提取;例上图中红色字体的瑶湖镇,实际上是A6单元格中的陈瑶湖镇,在真正意义上的提取是不完整的

完整提取所有镇(乡)

在D2单元格输“=IF(ISNUMBER(FIND("县",A2,1)+FIND("镇",A2,1)),MID(A2,FIND("县",A2,1)+1,FIND("镇",A2,1)-FIND("县",A2,1)),IF(ISNUMBER(FIND("县",A2,1)+FIND("乡",A2,1)),MID(A2,FIND("县",A2,1)+1,FIND("乡",A2,1)-FIND("县",A2,1)),IF(ISNUMBER(FIND("区",A2,1)+FIND("镇",A2,1)),MID(A2,FIND("区",A2,1)+1,FIND("镇",A2,1)-FIND("区",A2,1)),IF(ISNUMBER(FIND("区",A2,1)+FIND("乡",A2,1)),MID(A2,FIND("区",A2,1)+1,FIND("乡",A2,1)-FIND("区",A2,1)),"其他"))))”,按ENTER返回上图结果

D2单元格解读:从A2单元格第1个字符起查找字符”县”和”镇”的位置,分别返回9和12,两者之和为21属于数值,则返回真值,即从A2单元格地址中截取中间的某一段,开始位置是县后面的1位起,截取的长度是镇所在的长度与县所在长度之差,即12-9=3位数,结果输出【远襄镇】

公式总体考虑的是我国地址的排列顺序,县(区)、镇(乡)共计4种组合具体为:县-镇;县-乡;区-镇;区-乡;

(1)优点:只要提取的镇(乡)均是完整的,例如上图中的陈瑶湖镇是完整提取

(2)缺点:仅能提取含镇或不含镇的乡,对于不含”镇”及”乡”或非固定排序的提取不一定能提取出来

注意上图黄色底色标注的”其他”理论意义上是缺失项,回归原始单元格看两个单元格地址归类是【省市市镇(乡)】无法查找县(区),而查找市在第一个市就会返回,处理方式共两种:

(1) 针对数目不多的情况可手动更改

(2)针对数据较多,我们将查找第一个市变成查找第二个市(从一个市后面第二个市前面中间的任意位置查找,下例是从第7个字符开始查找),即在完整提取所有镇(乡)时D2单元格公式将”其他”更换为

”IF(ISNUMBER(FIND("市",A2,7)+FIND("镇",A2,1)),MID(A2,FIND("市",A2,7)+1,FIND("镇",A2,1)-FIND("市",A2,7)),IF(ISNUMBER(FIND("市",A2,7)+FIND("乡",A2,1)),MID(A2,FIND("市",A2,7)+1,FIND("乡",A2,1)-FIND("市",A2,7)),"其他"))”,按ENTER即可提取相邻市的镇(乡)