Quiero ampliar rango de la fórmula

Mis saludos la presente formula me permite saber el orden de merito del mas destacado o de lo datos mas repetidos de una actividad determinada; el caso es que quiero que esta formula me permita ampliar el rango no solo en una columna sino en dos o tres columnas; también quiero saber si solo se puede utilizar con formato de número, quiero usarla con formato General. =INDICE(HOJA2!$I$12:$I$240;COINCIDIR(K.ESIMO.MAYOR(FRECUENCIA(HOJA2!$I$12:$I$240;HOJA2!$I$12:$I$240);1);FRECUENCIA(HOJA2!$I$12:$I$240;HOJA2!$I$12:$I$240);0))... Gracias por su tiempo, su opinión es importante.

2 respuestas

Respuesta
2

El problema de la fórmula es que si hay empate te regresa el mismo número.

Te anexo la macro para encontrar los primeros 5 lugares. También te envié el archivo para encontrar los primeros 5 lugar e insertar en automático la foto del primer lugar.

Dim numordenados As New Collection
Dim cuentaordenados As New Collection
Dim numeros As New Collection
Sub destacado()
'Por.Dante Amor
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("Hoja3")
    Set rango = h2.Range("I12:J240")
    c1 = 0: c2 = 0: c3 = 0: c4 = 0: c5 = 0
    For Each c In rango
        If c.Value <> "" Then agrega c.Value
    Next
    For i = 1 To numordenados.Count
        num = numordenados(i)
        c1 = Application.CountIf(rango, num)
        cuenta c1, num
    Next
    f = 13
    For i = cuentaordenados.Count To cuentaordenados.Count - 4 Step -1
        cantidad = cuentaordenados(i)
        numero = numeros(i)
        h3.Cells(f, "C") = numero
        f = f + 1
    Next
    'Inserta la foto del número 1
    ponerfoto
End Sub
Sub agrega(n)
'Por.Dante Amor
    For m = 1 To numordenados.Count
        If numordenados(m) > n Then
            'si el número almacenado es mayor lo almacena antes
            numordenados.Add n, before:=m
            Exit Sub
        ElseIf numordenados(m) = n Then Exit Sub
        End If
    Next
    numordenados.Add n 'si es el mayor de todos lo agrega al final
End Sub
Sub cuenta(n, y)
'Por.Dante Amor
    For m = 1 To cuentaordenados.Count
        If cuentaordenados(m) >= n Then
            cuentaordenados.Add n, before:=m
            numeros.Add y, before:=m
            Exit Sub
        End If
    Next
    cuentaordenados.Add n 'si es el mayor de todos lo agrega al final
    numeros.Add y
End Sub

Prueba el archivo que te envié.

Saludos. Dante Amor

Muy buena la Macro; en mi pregunta inicial yo también preguntaba si se puede utilizar en formato General. O ésta macro me lo permite???

Quiero saber en ese mismo archivo, ¿que Unidades Educativas son las mas visitadas por los Funcionarios? como podrás observar las UE las tengo registradas con códigos en la columna "E"; el caso es que el código que estoy utilizando es con números y letras!

Tanto en fórmulas como en la macro el formato no es considerado, ya que el formato solamente es una presentación del valor en la celda, lo que realmente se considera es valor de la celda.

Para la siguiente petición, podrías crear una nueva pregunta, envíame tu último archivo y me explicas con un ejemplo. Recuerda poner tu nombre en el asunto del correo.

Respuesta

La función coincidir no funciona cuando el rango de búsqueda es una matriz, nada más que ponga una de 2 por 2 ya no encuentra el valor buscado siendo que está y devuelva N/A.

Tienes una función muy fácil para hacer eso mismo de esa orden

= MODA(HOJA2!$I$12:$I$240)

Y con esta no tienes ningún problema para ampliar las columnas que quieras, por ejemplo 3 columnas

= MODA(HOJA2!$I$12:$K$240)

Lo malo es que no se puede usar más que con números. Además te devuelve N/A si no hay un valor que tenga al menos dos repeticiones. Eso lo puedes evitar haciendo que ponga el primer valor en esos casos

SI.ERROR(MODA(Hoja2!$I$12:$K$240);Hoja2!$I$12)

¡Que manía tiene el corrector ortográfico con cambiar el indicativo por el subjuntivo! Lo que yo escribí es

... Ya no encuentra el valor buscado siendo que está y devuelve N/A.

A ver si ahora no lo cambia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas