工作中,经常会需要我们从一堆有规律的混合字符串中分离出我们所需的信息。那在这里给大家准备了一个案例,如图1,从A列分离出对应信息分别填入B列到H列。

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图1 处理混合字符串案例

现在,我们来对图1进行分析,我们可以看到A列单元格中,混合了很多信息:姓名,手机号,住址,身份证号。而B列到H列,需要我们分别填入从A列的提取出的对应信息。我们可能会采取从里面复制粘贴出来的方法,如果数据量不多的情况下,工作量还不大。但是如果其中的数据量是成百上千甚至于破万的话。这样的效率就极其低下,并且出错的可能性极高。这时,我们怎么解决呢?下面的方法可以为大家提供一个思路。

开始之前,我们把几个函数先简单的讲一下。如下图,

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图2 FIND函数

FIND函数用来对数据中某个字符串进行定位,返回位置。

第一个参数:查询的数据

第二个参数:给定的字符串

第三个参数:从参数二中查询参数一开始的位置,可省略,默认为1

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图3 LEFT函数

LEFT函数用来截取字符串左端的字符

第一个参数:给定的字符串

第二个参数:截取的字符数量

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图4 LEN函数

LEN函数获取给定字符串长度

参数:给定字符串

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图5 MID函数

MID函数从给定位置截取给定数量的字符

第一个参数:给定字符串

第二个参数:开始位置

第三个参数:截取字符的数量

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图6 RIGHT函数

RIGHT函数用来截取字符串右端的字符

第一个参数:给定的字符串

第二个参数:截取的字符数量

了解完函数的用法后。我们就有办法来处理图1中的需求了。

通过分析数据可知姓名后一位数字都是1,Find函数可以查找到1的位置,嵌套入Left函数来获取姓名。B2公式为=LEFT(A2,FIND(1,A2)-1),完成效果如图7所示:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图7 姓名列完成效果

通过分析数据,手机号都为11位数字。C2的手机号我们公式可以写成:=MID(A2,FIND(1,A2),11)

详解:公式中FIND(1,A2) 代表从A2中查找数字出现的位置,11表示截取的字符,也就是手机号位数。

完成效果如图8所示:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图8 手机列完成效果

同样,D列市和E列的公式我们可以写成:

D列公式为=MID(A2,FIND(1,A2) 11,FIND("市",A2)-FIND(1,A2)-11)

详解:1、公式中FIND(1,A2) 11 表示的是手机号结束的位置,也就是市开始的位置

2、FIND("市",A2) 表示的是字符“市”开始的位置,减去FIND(1,A2) 11 刚好是花果山的字符长度

完成效果如图:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图9 市列完成效果

同样,E列完成效果如图:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图10 区列完成效果

F列为身份证号,我们知道身份证号,一般都为18位或15位,这里都是18位,第一种我们可以直接公式为:=RIGHT(A2,18)效果如图:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图11 身份证号列完成效果1

但我们为了公式的可重用性,我们也可以写成:=RIGHT(A2,LEN(A2)-FIND("号",A2)) 效果图如下:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图12 身份证号列完成效果2

详解:LEN(A2) - FIND("号",A2) 表示字符串A2的长度减去字符“号”所出现的长度。

我们知道,15位身份证号从第7位开始是年月日但是年只有2位数字格式为yymmdd,而18位身份证号从第7位开始是年月日格式为yyyymmdd,这样我们就可以依据F列来获取生日信息,公式为:=TEXT(IF(LEN(F2)=18,DATE(MID(F2,7,4),MID(F2,11,2),MID(F2,13,2)),DATE("19"&MID(F2,7,2),MID(F2,9,2),MID(F2,11,2))),"yyyy-mm-dd")

完成效果如图:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图13 出生日期完成效果

最后一列,我们需要完成的是判断性别?我们知道15位身份证号倒数第1位数字和18位身份证号倒数第2位数字可以判断性别,单数为男,双数为女。由此,公式可以写为=IF(LEN(F2)=18,IF(MOD(MID(F2,17,1),2)=1,"男","女"),IF(MOD(RIGHT(F2,1),2)=1,"男","女")) 完成效果如图:

excel中如何从一堆有规律的混合字符串中分离出我们所需的信息?-趣帮office教程网

图14 性别判断完成效果

最后,感谢大家的观看,我是EK。今天给大家留了两个小问题,最后两列的公式是如何分析的,欢迎在评论去里告诉我。