Извлечь два имени из строки

Предположим, в 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;).

Любая помощь приветствуется.


person Jeremy F.    schedule 16.10.2015    source источник
comment
Найдите второй ; и начать с середины оттуда?   -  person findwindow    schedule 16.10.2015


Ответы (3)


В ячейку 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)
person Excel Hero    schedule 16.10.2015

Пожалуйста, попробуй:

=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)
person pnuts    schedule 16.10.2015

Это работает во всех ситуациях (т.е. независимо от длины комбинации фамилий и имен):

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