Encontrar él número mayor en excel

Quisiera ayuda con alguna fórmula o macros para encontrar él número de mayor denominación en excel, él problema es que es dentro de la misma celda, por ejemplo en A1 estaría de esta forma: 1,2,3.

Y lo que buscó es que en otra celda alguna fórmula como MAX o LARGO saque ese "3" de la celda.

Respuesta
1

Con una fórmula creo que se puede hacer, pero el problema es que hay que "decirle" a la fórmula cuál es el número más grande (+-) que puede haber en A1. Por ejemplo, si ese número más grande posible fuese el 10 la fórmula sería:

=MAX(ESNUMERO(HALLAR(FILA(INDIRECTO("1:10"));A1))*FILA(INDIRECTO("1:10")))

El número más alto posible no tiene porqué ser exacto. Por ejemplo, si fuese el 87 daría lo mismo que se pusiese 87 en vez de 10 o que se pusiese 100 ó 200.

2 respuestas más de otros expertos

Respuesta
1

Si los números están separados por coma "," así como dices en tu ejemplo, puedes usar la siguiente Función:

Function MaxNumber(rng As String) As Double
Dim splt() As String
Dim i&
splt = Split(rng, ",")
For i = LBound(splt) To UBound(splt)
    If IsNumeric(splt(i)) Then
        If splt(i) > MaxNumber Then
            MaxNumber = splt(i)
        End If
    End If
Next i
End Function

Luego en la celda donde quieres que aparezca el resultado, por ejemplo en B1, pegas lo siguiente: 

=MaxNumber(A1)

=MaxNumber(A1)

MaxNumber es el nombre de la función

A1 es la celda donde se encuentra la cadena de números, cambias el parámetro según donde estén los números en tu hoja.

Andy M.

Respuesta
1

El resultado de mi macro es este, como ves de cada renglón toma el valor más alto

y esta es la macro

Option Base 1
Sub dato_maximo()
Set datos = Range("a1").CurrentRegion
fltArr = Array(31, 15, 31, 52) 'Create the array
With datos
    filas = .Rows.Count
    For i = 1 To filas
        numeros = .Cells(i)
        separa = Split(numeros, ",")
        matriz = WorksheetFunction.Index(separa, 0, 0)
        For j = 1 To UBound(matriz)
            matriz(j) = Val(separa(j - 1))
        Next j
        maximo = WorksheetFunction.Large(matriz, 1)
        .Cells(i, 2) = maximo
    Next i
End With
Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas