Macro para contar palabras en Excel

En esta ocasión crearemos una nueva función VBA para contar palabras en Excel y verás que la solución será muy sencilla. Sin embargo, si no deseas utilizar VBA, entonces te recomiendo utilizar la siguiente fórmula:

=LARGO(ESPACIOS(A1)) - LARGO(SUSTITUIR(ESPACIOS(A1), " ", "")) + 1

Para comprender mejor el desarrollo de esta fórmula te sugiero consultar el artículo Contar palabras en Excel. Un inconveniente de la fórmula anterior es su longitud y el cuidado que debemos tener al momento de utilizarla pero podemos evitar dichos inconvenientes si construimos nuestra propia función VBA la cual será mucho más sencilla de usar. Comenzaremos haciendo una breve revisión de las funciones VBA a utilizar.

La función Split

La función Split en VBA separa una cadena de texto en base al carácter delimitador indicado y nos devuelve un arreglo que contendrá cada una de las partes que se han separado. Por ejemplo, si tengo la cadena de texto “1-2-3-4-5” y utilizo la función Split de la siguiente manera:

Split("1-2-3-4-5", "-") = {"1","2","3","4","5"}

Obtendré como resultado un arreglo con 5 elementos que serán los números del 1 al 5 y que serán el resultado de dividir la cadena de texto original utilizando el guion medio “-“. El primer argumento de la función Split es la cadena de texto original y el segundo argumento es el carácter delimitador. Si se omite el segundo argumento entonces se utilizará por defecto el espacio en blanco. Por ejemplo, considera la siguiente instrucción:

Split("uno dos tres") = {"uno","dos","tres"}

Ya que no he especificado el carácter delimitador, la función Split utiliza el espacio en blanco y como resultado devuelve un arreglo con 3 elementos donde cada uno contiene una palabra  de la cadena de texto original. Es así como podemos separar cualquier cadena de texto en palabras y de esta manera nos acercamos a la solución de nuestro problema, solo nos falta  hacer la cuenta de los elementos del arreglo que nos ha devuelto la función Split.

La función UBound

Para obtener el número de elementos de un arreglo en VBA podemos utilizar la función UBound. El único argumento obligatorio de esta función es el arreglo del cual deseamos contar los elementos:

Dim arreglo(1 to 5) as Integer
UBound(arreglo)

En este ejemplo, la función Ubound devolverá el valor 5 ya que el arreglo está formado precisamente por cinco elementos. Con las dos funciones presentadas hasta ahora podemos solucionar el problema de contar palabras en Excel con VBA.

Contar palabras en Excel con VBA

Para crear nuestra función he agregado un nuevo módulo al proyecto VBA y he colocado el siguiente código:

Function CONTARPALABRAS(Texto As String)

Dim Espacios As String
Espacios = Application.WorksheetFunction.Trim(Texto)

CONTARPALABRAS = UBound(Split(Espacios)) + 1

End Function

La línea 3 define una variable que utilizaré para almacenar la misma cadena de texto original pero garantizando que no tenga espacios dobles y para lograrlo en la línea 4 he utilizado la función de Excel TRIM, que en español es la función ESPACIOS. Esta función garantizará que todas las palabras estén separadas por espacios sencillos. En la línea 6 hacemos uso de las funciones Split y UBound para regresar la cantidad de palabras en la cadena de texto original. En la siguiente imagen puedes observar el resultado de probar la nueva función:

Macro para contar palabras en Excel

Descarga el libro de trabajo y continúa experimentado con esta función VBA para contar palabras en Excel.

12 pensamientos en “Macro para contar palabras en Excel

  1. valentin

    disculpa, gracias por toda tu información, solo queria saber si existe un función para convertir un numero a texto por ejemplo 1450.00 un mil cuatrocientos cincuenta, ya que en otras paginas encontre un complemento que me servia para esto pero con la instalación del office 2010 dejo de funcionar.

    Gracias por tu ayuda

  2. delys

    muy bueno se aprende rapido

  3. Alejandro

    Gracias Moisés..! Moisés podrías mencionarme algunos ejemplos de Cuando poder utilizar esta función.??
    Pienso que es bueno conocer en que circunstancias más o menos me sería útil su aplicación, para así tenerla en mi abanico de opciones cuando este elaborando cualquier “formato”.. De nuevo Gracias por tu tiempo Moisés.

  4. Horacio Carmona

    Gracias Moy, muy buena macro y muy clara!!!

  5. Geovanni

    Excelente, sencillo.
    Tengo una duda, como se hace para guardar esta función y que este disponible en cualquier libro de Excel que quiera trabajar?

    Saludos.

  6. Carol

    Me sorprende todo lo que se puede aprender en excel. Mil bendiciones Moises…

    Saludos,

  7. Manuel

    Muy buena Moisés, justo es lo que estaba practicando en clases…

    Gracias.

  8. blanca martinez

    MUCHAS GRACIAS POR LA MACRO

  9. Rene Sanchez

    Hola Sr Moises, me interesa conocer ¿Como elaborar una macro? Por pasos. ¿Puede ayudarme por favor? Tengo OFFICE 2010 instalado.