2015-10-16 4 views
0

В Excel, предположимИзвлечь два названия из строки

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

В В2, я хочу видеть, фамилию, имя и отчество первого лица в списке. Поэтому я использую это:

=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

Этот работать во всех ситуациях (т.е. независимо от длины последнего & First Names combinati на):

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