平时在excel中处理数据的时候,肯定会遇到在单元格提取信息的情况,比如在地址中提取省、市、地区等,如果数据源内容规整的话,可以直接使用left()、right()、mid()等函数直接提取,但是大多数情况下,数据源的内容比较混乱,这时的就提取需要一些函数的组合,比如下面这种:
上图中是一些地址,我们看到大部分还是按照省、市、区来排列的,但是其中有一些格式并不统一,比如第6行,如何解决,首先我们需要一个辅助列,这个辅助列表就是你希望提取出来的内容,比如我想提取城市,我就弄一个存储城市名的辅助列,如下图的B列
这个辅助列如果是地名的话,百度上可以直接下载,但是有时候需要根据自己的实际情况手工制作,这个是基础性的工作,因为如果不知道自己要提取的内容的话,是很难用公式批量处理的,辅助列有了之后,就可以使用公式来进行提取,如下:
上面使用的公式是:
{=MID(A2,SUM(IFERROR(FIND($B$2:$B$14,A2),0)),2)}
这个公式可以完成大部分的提取,也比较好理解,但是有个缺陷是:它假定地名都是2个字,如果碰到如哈尔滨等三个字的地名时,也只会提取前面两个字,下面对这个公式进行一下修改:
D列使用的公式是:
{=INDEX($B$1:$B$14,MIN(IF(ISERR(FIND($B$2:$B$14,A2)),"",ROW($B$2:$B$14))))}
这样一来,地名将不受字数限制,只要城市列表中存在的,都可以提取出来