2015-10-16 39 views
0

在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;)。

任何幫助表示讚賞。

+0

找到第二個「;」從那裏開始? – findwindow

回答

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) 
+0

因爲';#8'我猜想'#102'部分可能超過五個字符。 – pnuts

+0

看來我過分悲觀:) – pnuts

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) 
0

這在所有情況下工作(即不管最後的&名字combinati的長度上):

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