
Fórmula genérica
=TRIM(LEFT(SUBSTITUTE(MID(txt,FIND("@",txt),LEN(txt))," ",REPT(" ",100)),100))
Resumo
Para extrair palavras que começam com um caractere específico, você pode usar uma fórmula baseada em seis funções: TRIM, LEFT, SUBSTITUTE, MID, LEN e REPT. Essa abordagem é útil se você precisar extrair coisas como um nome de usuário do Twitter de uma célula que contém outro texto.
No exemplo mostrado, a fórmula em C5 é:
=TRIM(LEFT(SUBSTITUTE(MID(B5,FIND("@",B5),LEN(B5))," ",REPT(" ",100)),100))
Explicação
Começando de dentro para fora, a função MID é usada para extrair todo o texto após "@":
MID(B5,FIND("@",B5),LEN(B5))
A função FIND fornece o ponto de partida e, para extrair o total de caracteres, apenas usamos LEN no texto original. Isso é um pouco desleixado, mas evita ter que calcular o número exato de caracteres a extrair. O MID não se importa se este número for maior do que os caracteres restantes, ele simplesmente extrai todo o texto após "@".
Em seguida, "inundamos" o texto restante com caracteres de espaço, substituindo qualquer espaço único por 100 espaços usando uma combinação de SUBSTITUTE e REPT:
SUBSTITUTE("@word and remaining text"," ",REPT(" ",100))
Isso parece loucura, mas a lógica fica clara a seguir.
Em seguida, para extrair apenas a palavra que queremos (ou seja, @palavra), usamos LEFT para extrair os primeiros 100 caracteres da esquerda. Isso nos dá "@word", além de muitos espaços extras. Para visualizar, os hífens abaixo representam espaços:
@palavra---------------------
Agora só precisamos remover todos os espaços extras. Para isso, usamos a função TRIM.
Nota: 100 representa a palavra mais longa que você espera encontrar que começa com o caractere especial. Aumente ou diminua para atender às suas necessidades.
Tem uma maneira melhor de fazer isso? Deixe-me saber nos comentários abaixo!