Jump to content
joanblanch

Contar palabras con excepciones de textos

Recommended Posts

Hola, muy buenas tengo que contar las palabras de una celda y lo hago con la siguiente formula

=LARGO(ESPACIOS(B2)) - LARGO(SUSTITUIR(ESPACIOS(B2); " "; "")) + 1

pero tengo celdas que tienen artículos como "en" "de" "el" "la" y no se como hacer que me cuente las palabras pero sin contar estos artículos.

 

Alguien tiene idea de cómo hacerlo?

 

Muchas gracias de antemano

 

 

Share this post


Link to post
Share on other sites

Hola @joanblanch, habrías de definir mejor lo de eliminar las preposiciones "en" y "de" y los artículos "el" y "la". No vaya a ser que después aparezca una nueva pregunta con los plurales y otras preposiciones. ¿Sólo estas cuatro palabras?

Saludos,

bfelix

Share this post


Link to post
Share on other sites

hola la verdad es que pudiera poner en una delda todas las palabras a eliminar y que la formula me agarrara estas palabras y no me las contara

O sea en una celda o en un grupo de celdas poner  "el, la, las, los, en, palabraloca" y que la fórmula agarrara de este grupo para no contarlas.

No se si lo estoy complicando o no, yo creo que con un VBscript se podría poner un array, lo que pasa es que no se como hacerlo

 

Saludos

Share this post


Link to post
Share on other sites
Hace 25 minutos , joanblanch dijo:

la verdad es que pudiera poner en una delda todas las palabras a eliminar y que la formula me agarrara estas palabras y no me las contara

Joan

Prueba con el adjunto y nos comentas

 

Saludos a ambos

Contar palabras con excepciones de textos_GP.rar

Share this post


Link to post
Share on other sites

¡Hola a todos! 

tu fórmula amigo @Gerson Pineda tiene un inconveniente cuando se repite la misma palabra en el rango.  Para este caso, prefiero usar una UDF para resolver el inconveniente:

Function ContarPalabras(R1 As Range, R2 As Range)
    Dim c As Range, f$
    
    f = " " & R1.Value2 & " "
    
    For Each c In R2
        f = Replace(f, " " & c & " ", " ", , , 1)
    Next c
    
    ContarPalabras = UBound(Split(Trim(f))) + 1
End Function

Nota: Tener cuidado con los signos de puntuación en las frases (hasta ahora no los tiene en cuenta la UDF).

Usé el archivo de Gerson para pruebas.  ¡Bendiciones!

Contar palabras con excepciones de textos_GP.xlsm

Share this post


Link to post
Share on other sites

Que tal Jhon es un placer coincidir

Una UDF mas

Public Function ContarTexto(Texto As Range, Excepciones As Range) As Long

If Texto <> "" Then
vcount = VBA.Len(Texto) - VBA.Len(VBA.Replace(Texto, " ", ""))
For Each cvt In VBA.Split(VBA.LCase(Texto), " ")
For Each cve In Excepciones
    If cve = cvt Then c = c + 1
Next
Next
ContarTexto = vcount - c + 1
End If

End Function

 

Saludos a los 3

Share this post


Link to post
Share on other sites
Hace 3 horas, Gerson Pineda dijo:

Joan

Prueba con el adjunto y nos comentas

 

Saludos a ambos

Contar palabras con excepciones de textos_GP.rar

Muchas gracias, la primera fórmula me sirvió.

 

Lo que no se que es es un UDF?  es una funcion creada con VBscritp?

Tiene que ser si o si un archivo con macros? o se puede aplicar a un xlsx normal y corriente?

Share this post


Link to post
Share on other sites
Hace 20 minutos , joanblanch dijo:

Lo que no se que es es un UDF?  es una funcion creada con VBscritp?

Tiene que ser si o si un archivo con macros? o se puede aplicar a un xlsx normal y corriente?

Para usar las Udfs el archivo se debe guardar como XLSM (habilitado para macros)

Para insertar la UDF, presionas al Alt + F11, y desde el menu, insertar un modulo estándar y pegarla

 

Saludos 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy