![](https://cdn.wiki-base.com/1075715/excel_formula_trim_text_to_n_words__2.png.webp)
Fórmula genérica
=LEFT(txt,FIND("#",SUBSTITUTE(txt," ","#",n))-1)
Resumo
Para cortar o texto para um determinado número de palavras, você pode usar uma fórmula baseada nas funções SUBSTITUIR, ENCONTRAR e ESQUERDA. No exemplo mostrado, a fórmula em xxx é:
=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)
Explicação
Precisamos de uma maneira de dividir o texto em um determinado marcador que corresponda a um certo número de palavras. O Excel não tem uma função incorporada para analisar texto por palavra, então use o argumento "instância" da função SUBSTITUTE para substituir um "enésimo espaço" pelo sinal de libra (#) e, em seguida, use FIND e LEFT para descartar todos texto após o marcador.
Trabalhando de dentro para fora, SUBSTITUTE é configurado para substituir a enésima ocorrência de um caractere de espaço, onde n vem da coluna C, o texto vem da coluna B e "#" é codificado.
=SUBSTITUTE(B5," ","#",C5) =SUBSTITUTE("The cat sat on the mat."," ","#",3) ="The cat sat#on the mat."
A string resultante é retornada à função FIND, configurada para procurar "#".
=FIND("#","The cat sat#on the mat.)
Como o "#" é o 12º caractere no texto, FIND retorna 12. Não queremos incluir o caractere de espaço propriamente dito, então subtraímos 1:
=LEFT(B5,12-1) =LEFT(B5,11)
LEFT retorna o resultado final da fórmula, "O gato sentou".
Observação: o caractere cerquilha ("#") é arbitrário e pode ser substituído por qualquer caractere que não apareça no texto.
Adicionar elipses ou outro caractere
Para adicionar "…" ao final do texto cortado, use a concatenação como esta:
=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)&"… "
Você pode substituir "…" por qualquer coisa que desejar.