从字符串中提取两个名称

时间:2015-10-16 19:40:53

标签: string excel excel-formula worksheet-function

在Excel中,假设

A2 = Last_Name1 First_Name1 MI1;#8;#Last_Name2 First_Name2 MI2;#102

在B2中,我想查看列出的第一个人的姓氏,名字和中间名。所以我用这个:

=MID(A2,1,FIND(";",A2,1)-1)

结果:Last_Name1 First_Name1 MI1

在C2中,我需要写什么来查看列出的第二个人的姓氏,名字和中间名。

结果:Last_Name2 First_Name2 MI2

我的想法是从右边开始,在第二个“#”和“;”之间获取所有内容。 (#Last_Name2 First_Name2 MI2;)。

感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

在单元格C2中,输入以下公式:

=LEFT(MID(A2,2+FIND("|",SUBSTITUTE(A2,";","|",2)),99),LEN(MID(A2,2+FIND("|",SUBSTITUTE(A2,";","|",2)),99))-5)

由于@pnuts概念,我认为这个版本更好

=LEFT(MID(A2,1+FIND("|",SUBSTITUTE(A2,"#","|",2)),99),FIND(";",MID(A2,1+FIND("|",SUBSTITUTE(A2,"#","|",2)),99))-1)

答案 1 :(得分:1)

请尝试:

=LEFT(MID(A2,1+FIND("#",A2)+FIND("#",MID(A2,FIND("#",A2)+1,99)),99),FIND(";",MID(A2,1+FIND("#",A2)+FIND("#",MID(A2,FIND("#",A2)+1,99)),99))-1)

答案 2 :(得分:0)

这项工作适用于所有情况(即无论最后和名字组合的长度如何):

=MID(LEFT($A2,
-1+FIND("|",SUBSTITUTE($A2,";","|",3))),
1+FIND("|",SUBSTITUTE($A2,"#","|",2)),LEN($A2))