Fórmulas y funciones UDF para contar palabras en Excel

En este artículo les comparto dos fórmulas que nos servirán para contar palabras de una celda, así como sus correspondientes funciones UDF en caso de que prefieran verse “cool” con el uso de macros.

Ver video Aprendamos UDF’s – Convertir fórmula a función personalizada

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Contar palabras en una celda

La siguiente fórmula nos servirá para contar todas las palabras incluídas en una celda. Nótese que por palabra se tomará cada caracter o conjunto de caracteres separados por espacio.

El texto que tomaremos de ejemplo es el siguiente:

Las patentes de software son monopolios de 20 años que conceden algunas oficinas de patentes en el mundo sobre funcionalidades, algoritmos, representaciones y otras acciones que se pueden llevar a cabo con una computadora. En la jerga se suele sustituir dicho término por la expresión “invención implementada por computadora” que incluye tanto las polémicas patentes de software como las generalmente aceptadas “invenciones por computadora”, esto es, las invenciones físicas tradicionales que incluyen software en su funcionamiento. Así, la Oficina Europea de Patentes (OEP) define generalmente una invención implementada en computadora como “expresión destinada a cubrir solicitudes que involucren computadoras, redes informáticas u otros aparatos programables convencionales por las características novedosas de la invención apropiada se manifiesten a través de uno o varios programas”

La siguiente fórmula nos ayudará a contar palabras:

=SI(LARGO(ESPACIOS(A1))=0,0,LARGO(ESPACIOS(A1))-LARGO(SUSTITUIR(A1,” “,””))+1)

Para la fórmula anterior les comparto la función UDF que tendremos que incluir en un módulo normal y podemos usarla en nuestros archivos como si fuera una función propia de Excel.

La función se llama ContarPalabras y como parámetro será la celda en la cual está el texto que deseamos contar sus palabras.

Contar palabras en Excel

Figura 1. Función UDF para contar palabras.

Contar ocurrencias de alguna palabra dentro una celda

Además de contar palabras también podremos necesitar el número de veces que una palabra se repite dentro de una celda.

La fórmula que podemos usar es:

=(LARGO(A6)-LARGO(SUSTITUIR(A6, B11, “”)))/LARGO(B11)

La función UDF correspondiente tiene como nombre ContarPalabrasEspecificas la cual tendrá como parámetros la celda donde está el texto y la palabra la cual deseamos saber sus repeticiones.

Contar palabras repetidas en celda de Excel

Figura 2. Uso de la función ContarPalabrasEspecificas.

En la figura 2 vemos el uso de la función y notamos que el primer parámetro del texto está en la celda A6 y en la celda B11 el texto que desamos saber sus repeticiones.´

Código vba de las funciones

El código que les comparto se deberá poner en un módulo normal. Se pueden guiar en estos artículos que he escrito sobre funciones UDF.

ContarPalabras

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : MVP Excel, Sergio Alejandro Campos
' Date      : 02/06/2014
' Purpose   : UDFs para conteo de texto
'---------------------------------------------------------------------------------------
'
Function ContarPalabras(Celda As Range)
'
Application.Volatile
'
With Application.WorksheetFunction
    '
    If Len(Trim(Celda)) = 0 Then
        ContarPalabras = 0
    Else
        ContarPalabras = Len(Trim(Celda)) - Len(.Substitute(Celda, " ", "")) + 1
    End If
End With
'
End Function

ContarPalabrasEspecificas

Function ContarPalabrasEspecificas(Celda As Range, Texto As Range)
'
Application.Volatile
'
With Application.WorksheetFunction
    '
    ContarPalabrasEspecificas = (Len(Celda) - Len(.Substitute(Celda, Texto, ""))) / Len(Texto)
    '
End With
End Function

Anexos

:: Descarga el ejemplo Fórmulas y funciones UDF para conteo de palabras.rar

You may also like...

1 Response

  1. Luis Antonio Cervantes says:

    para contar palabras… prefiero esta version que es mas practica y directa:

    Function contarpalabras(texto As String)
    contarpalabras = UBound(Split(texto)) + 1
    End Function

Leave a Reply

Your email address will not be published.

%d bloggers like this: