EXCEL VBA texto más repetido en un rango

Estimados Expertos,

¿Cómo podría extraer el nombre (texto) más repetido de una columna de datos?

Gracias.

Respuesta
1

¿Y tiene que ser usando VBA? Porque si por ejemplo los textos están en A1:A10 la fórmula

=INDICE(A1:A10;MODA(COINCIDIR(A1:A10;A1:A10;0)))

hace el trabajo.

El problema es que, a priori, no se sabe el número de filas que tendrá la lista, además es normal añadir o borrar datos, con una macro, por lo que esa fórmula dá error, si se borra algún dato del rango.

Se podría crear un rango dinámico y utilizarlo en la fórmula, pero en cualquier caso, si se quiere hacer desde VBA se puede usar el método Evaluate, por ejemplo para averiguar el texto más repetido en Hoja1! A1:A10:

Sub prueba()
    Dim rngR As Range
    Set rngR = Worksheets("Hoja1").Range("A1:A10")
    MsgBox Evaluate("=INDEX(" & rngR.Address & ",MODE(MATCH(" & rngR.Address & "," & rngR.Address & ",0)))")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas