Este é testado e funciona (com base no post original de Brad):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Se suas strings originais pudessem conter um pipe "|" caractere, substitua os dois acima por outro caractere que não aparecerá na sua fonte. (Eu suspeito que o original de Brad estava quebrado porque um caractere não imprimível foi removido na tradução).
Bônus: Como funciona (da direita para a esquerda):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
- Contagem de espaços na cadeia original
SUBSTITUTE(A1," ","|", ... )
- Substitui apenas a final espaço por a |
FIND("|", ... )
- Encontra a posição absoluta da substituída |
(que era o espaço final)
Right(A1,LEN(A1) - ... ))
- Retorna todos os caracteres depois disso|
EDIT: para explicar o caso em que o texto de origem não contém espaços, adicione o seguinte ao início da fórmula:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
fazendo a fórmula inteira agora:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Ou você pode usar a =IF(COUNTIF(A1,"* *")
sintaxe da outra versão.
Quando a sequência original puder conter um espaço na última posição, adicione uma função de recorte ao contar todos os espaços: Tornando a função o seguinte:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))