Fórmula de Excel: cuente el total de palabras en una celda -

Tabla de contenido

Fórmula genérica

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

Resumen

Para contar el total de palabras en una celda, puede usar una fórmula basada en las funciones LEN y SUBSTITUTE, con la ayuda de la función TRIM. En el ejemplo que se muestra, la fórmula en la celda C5, copiada, es:

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

La fórmula devuelve el recuento de palabras en la celda B5.

Explicación

Excel no tiene una función dedicada para contar palabras en una celda. Sin embargo, con un poco de ingenio, puede crear dicha fórmula utilizando las funciones SUBSTITUTE y LEN, con la ayuda de TRIM, como se muestra en el ejemplo. En un nivel alto, esta fórmula usa la función LEN para contar el número de caracteres en la celda, con y sin espacios, luego usa la diferencia para calcular el recuento de palabras. Esto funciona, porque el recuento de palabras es igual al número de espacios + 1, siempre que haya un espacio entre cada palabra.

La primera parte de la fórmula cuenta los caracteres en la celda B5, después de eliminar el espacio adicional:

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

Dentro de LEN, la función TRIM primero elimina los espacios adicionales entre las palabras, o al principio o al final del texto. Esto es importante, ya que cualquier espacio adicional eliminará el recuento de palabras. En este caso, no hay caracteres de espacio adicionales, por lo que TRIM devuelve el texto original directamente a la función LEN, que devuelve 30:

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

En este punto, tenemos:

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

A continuación, usamos la función SUSTITUIR para eliminar todos los caracteres de espacio del texto:

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

Observe que SUBSTITUTE está configurado para buscar un carácter de espacio ("") y reemplazarlo con una cadena vacía (""). Por defecto, SUBSTITUTE reemplazará todos los espacios. El resultado se envía directamente a la función LEN, que devuelve el recuento:

LEN("AllQuietontheWesternFront") // returns 25

LEN devuelve 25, el número de caracteres que quedan después de eliminar todo el espacio. Ahora podemos simplificar la fórmula para:

=30-25+1 // returns 6

que devuelve 6 como resultado final, el número de palabras en la celda B5.

Tratar con celdas en blanco

La fórmula del ejemplo devolverá 1 incluso si una celda está vacía o solo contiene espacio. Esto sucede porque estamos sumando 1 incondicionalmente, después de contar los espacios entre palabras. Para protegerse contra este problema, puede adaptar la fórmula como se muestra a continuación:

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

Observe que reemplazamos 1 con esta expresión:

LEN(TRIM(B5))>0

Este código primero recorta B5, luego verifica la longitud. Si B5 contiene texto, LEN devuelve un número positivo y la expresión devuelve VERDADERO. Si B5 está vacío o contiene solo espacio, TRIM devuelve una cadena vacía ("") a LEN. En ese caso, LEN devuelve cero (0) y la expresión devuelve FALSE. El truco es que VERDADERO y FALSO se evalúan como 1 y cero, respectivamente, cuando están involucrados en cualquier operación matemática. Como resultado, la expresión solo agrega 1 cuando hay texto en B5. De lo contrario, agrega cero (0). Esta lógica también podría escribirse con la declaración de función IF como esta:

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

y el resultado sería el mismo. La expresión anterior es simplemente más compacta.

Articulos interesantes...