Hallar el valor más repetido en Excel ya sea este un número, texto o alfanumérico

La función UDF (User-Defined Function) llamada "IB·MODA" es una función desarrollada en Visual Basic for Applications (VBA) para ser utilizada en Microsoft Excel para encontrar la moda (valor más frecuente) en un rango de celdas especificado, el valor puede ser numérico, texto o alfanumérico, a diferencia de la función MODA que solo admite valores numéricos. Si hay varios valores con la misma frecuencia máxima, la función IB·MODA devolverá todos los valores empatados separados por punto y coma (;) en caso de empate.

Sintaxis: 

La sintaxis de la función "IB·MODA" es la siguiente:

= IB·MODA (Rango)

Parámetros:

La función tiene un parámetro: 
Rango (obligatorio): Representa el rango de celdas en el que se desea encontrar la moda.

Código: 

Function IB·MODA(Rango As Range) As Variant
    Dim x As Object, y As Range, z As Long, m As Variant, n As String
    Set x = CreateObject("Scripting.Dictionary")
    For Each y In Rango
        If Not IsEmpty(y.Value) Then
            If Not x.Exists(y.Value) Then
                x.Add y.Value, 1
            Else
                x(y.Value) = x(y.Value) + 1
            End If
            If x(y.Value) > z Then
                z = x(y.Value)
                m = y.Value
                n = y.Value
            ElseIf x(y.Value) = z Then
                n = n & ";" & y.Value
            End If
        End If
    Next y
    If Len(n) > 0 Then
        IB·MODA = n
    Else
        IB·MODA = m
    End If
End Function

Comentarios