Consulta:como puedo sacar los 20 mejores valores consecutivos de una lista de 150 aproximadamente.Los datos son números .

Consulta:como puedo sacar los 20 mejores valores consecutivos de una lista de 150 celdas aproximadamente. Los datos son números todos seguidos y es para ver en que época tuve el mejor promedio. El promedio total lo tengo pero no me da la cabeza para sacar los 20 mejores seguidos. O sino tengo que ir celda por celda e ir viendo el promedio y logrando el mío voy a sacar los de mis compañeros también. No hay ninguna celda en blanco. Ya hice otra consulta pero no me supe explicar bien.

2 Respuestas

Respuesta

Lo más fácil es subir una pantalla de datos con tu información (puede ser inventada) y el resultado que esperas conseguir vi tu post anterior y aun no me queda claro que es lo que quieres.

Ahi el promedio es 7.14 en 48, es lo que entro en la pagina, algunos tiene hasta 130 datos. Yo necesito los 20 mejores seguidos(por ejemplo acá seria 7.20 de promedio  los 20 mejores seguidos desde la celda E1 hasta la X1) Gracias por su tiempo gente

Esta imagen, lo que ves e verde son los 20 números secuenciales con el promedio más alto, la macro funciona así lee primero la fila 1, luego descarta le nombre y empieza a hacer un recorrido secuencial de 20 números (no importa la cantidad de columnas puede ser más o menos), calculando el promedio y el rango que analizo, ya que termina, entonces busca el valor más alto de esos promedios y el rango al cual pertenece pintándolo de verde, ojo solo funciona para una fila puesto que no explicaste si había más de unay esta es la macro

Sub veinte_mejores_seguidos()
Set datos = Range("a1").CurrentRegion
With datos
    col = .Columns.Count
    filas = .Rows.Count
    Set datos = .Columns(2).Resize(filas, col)
    sectores = WorksheetFunction.Quotient(col, 20)
    Set promedios = .Rows(filas + 5).Resize(sectores, 2)
    For i = 1 To sectores
        If i = 1 Then Set numeros = .Resize(1, 20)
        If i > 1 Then Set numeros = numeros.Columns(21).Resize(1, 20)
        promedios.Cells(i, 1) = WorksheetFunction.Average(numeros)
        promedios.Cells(i, 2) = numeros.Address
    Next i
    maximo = WorksheetFunction.Max(promedios.Columns(1))
    indice = WorksheetFunction.Match(maximo, promedios.Columns(1), 0)
    rango = promedios.Cells(indice, 2)
    Range(rango).Interior.ColorIndex = 4
End With
Set datos = Nothing: Set promedios = Nothing: Set sectores = Nothing
End Sub
Respuesta

Lo que me confunde de tu pregunta son las palabras "consecutivos" y "seguidos".

Los 20 mejores valores consecutivos

Los 20 mejores seguidos

A ver, con el auto filtro hay un operador que es el xlTop10Items

Que aunque su nombre diga 10, sirve para sacar tanto el top 5, el top 10, el top 20 y el top que se te ocurra, poniendo el numero como el criterio.

Pero al decir "consecutivo" realmente me pierdo, porque quizás lo que quieres hacer es simplemente organizar de mayor a menor. Y eso ya no es lo mismo que el Top 20.

Aclara eso para poder ayudarte.

Andy M.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas