Fórmula do Excel: contar o total de palavras em uma célula -

Índice

Fórmula genérica

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Resumo

Para contar o total de palavras em uma célula, você pode usar uma fórmula baseada nas funções LEN e SUBSTITUTE, com a ajuda da função TRIM. No exemplo mostrado, a fórmula na célula C5, copiada, é:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+1

A fórmula retorna a contagem de palavras na célula B5.

Explicação

O Excel não tem uma função dedicada para contar palavras em uma célula. No entanto, com um pouco de engenhosidade, você pode criar tal fórmula usando as funções SUBSTITUTE e LEN, com a ajuda de TRIM, como mostrado no exemplo. Em um nível superior, esta fórmula usa a função LEN para contar o número de caracteres na célula, com e sem espaços, então usa a diferença para descobrir a contagem de palavras. Isso funciona porque a contagem de palavras é igual ao número de espaços + 1, desde que haja um espaço entre cada palavra.

A primeira parte da fórmula conta os caracteres na célula B5, depois de remover o espaço extra:

=LEN(TRIM(B5)) // normalize space, count characters

Dentro de LEN, a função TRIM primeiro remove quaisquer espaços extras entre palavras, ou no início ou no final do texto. Isso é importante, pois quaisquer espaços extras prejudicarão a contagem de palavras. Nesse caso, não há caracteres de espaço extras, então TRIM retorna o texto original diretamente para a função LEN, que retorna 30:

LEN("All Quiet on the Western Front") // returns 30

Neste ponto, temos:

=30-LEN(SUBSTITUTE(B5," ",""))+1

Em seguida, usamos a função SUBSTITUTE para remover todos os caracteres de espaço do texto:

SUBSTITUTE(B5," ","") // strip all space

Observe que SUBSTITUTE está configurado para procurar um caractere de espaço ("") e substituí-lo por uma string vazia (""). Por padrão, SUBSTITUTE substituirá todos os espaços. O resultado é entregue diretamente à função LEN, que retorna a contagem:

LEN("AllQuietontheWesternFront") // returns 25

LEN retorna 25, o número de caracteres restantes depois que todo o espaço foi removido. Agora podemos simplificar a fórmula para:

=30-25+1 // returns 6

que retorna 6 como resultado final, o número de palavras na célula B5.

Lidando com células em branco

A fórmula no exemplo retornará 1 mesmo se a célula estiver vazia ou contiver apenas espaço. Isso acontece porque estamos adicionando 1 incondicionalmente, após contar os caracteres de espaço entre as palavras. Para se proteger contra esse problema, você pode adaptar a fórmula conforme mostrado abaixo:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Observe que substituímos 1 por esta expressão:

LEN(TRIM(B5))>0

Este código primeiro corta B5 e, em seguida, verifica o comprimento. Se B5 contiver texto, LEN retornará um número positivo e a expressão retornará TRUE. Se B5 estiver vazio ou contiver apenas espaço, TRIM retornará uma string vazia ("") para LEN. Nesse caso, LEN retorna zero (0) e a expressão retorna FALSE. O truque é que VERDADEIRO e FALSO são avaliados como 1 e zero, respectivamente, quando envolvidos em qualquer operação matemática. Como resultado, a expressão apenas adiciona 1 quando há texto em B5. Caso contrário, adiciona zero (0). Essa lógica também pode ser escrita com a instrução da função IF como esta:

IF(LEN(TRIM(B5))>0,1,0)

e o resultado seria o mesmo. A expressão acima é simplesmente mais compacta.

Artigos interessantes...