Você pode usar uma forma de matriz de TEXTJOIN:
=TEXTJOIN(" & ",TRUE,LEFT(TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",99)),(ROW($A$1:$A$10)-1)*99+1,99)),FIND(" ",TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",99)),(ROW($A$1:$A$10)-1)*99+1,99))&" ")-1))
Sendo uma fórmula de matriz, ela precisa ser confirmada com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição.
O TEXTJOIN foi introduzido no Office 365 Excel.
Afórmulasedivideno&
criandoumgrandeespaçoembrancoparaqueelesejacolocadoemloopporcadaseçãoeaparandoosresultados.
Emseguida,encontramosoprimeiroespaçoemcadaseçãoeretornamosaprimeirapalavraàesquerdadoprimeiroespaço.
Issosóretornaráaprimeirapalavraemcadaseção,entãoPeggySueSmith
setornaráPeggy
nãoPeggySue
Agora,sevocêpudergarantirquehaveráapenasdoisnomes,poderáusaressafórmula,independentementedaversão:
=LEFT(A1,FIND(" ",A1&" ")-1) & IF(ISNUMBER(FIND("&",A1))," & " & LEFT(TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",99)),99,99)),FIND(" ",TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",99)),99,99))&" ")-1),"")