Fórmula do Excel: cortar texto em n palavras -

Índice

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.

Artigos interessantes...