Problema de filtro con celdas de diferentes tamaños en Excel

drakar3 Mensajes publicados 16 Estado Miembro -  
Theo.R Mensajes publicados 585 Estado Miembro -
Hola a todos,

Ya he visto esta pregunta planteada y tengo la impresión de que no existe solución, lo cual me parece sorprendente para un software como Excel.

He creado una clasificación por equipo de 2 a 4 corredores:
- cada corredor suma puntos para el equipo y la idea es filtrar en relación con el total de puntos del equipo.

Por lo tanto, deseo que el filtro desplace todas las celdas del equipo, que son, por supuesto, de tamaño diferente. Y, por supuesto, ¡Excel me dice que no es posible!

Así que me veo obligado a ingresar una fórmula a la derecha para clasificar en orden y luego cortar y pegar una por una las equipos en una nueva tabla... ¿Realmente no hay nada mejor que hacer en 2016 en Excel????

Muchas gracias de antemano,

6 respuestas

  1. drakar3 Mensajes publicados 16 Estado Miembro
     


    Aquí está el archivo correspondiente... :)
    0
  2. Vaucluse Mensajes publicados 27336 Fecha de registro   Estado Colaborador Última intervención   6 453
     
    Hola
    ¿qué entiende usted por celdas de diferentes tamaños? Si se trata de celdas fusionadas, ¡el filtro no funcionará!
    Pero en este caso, ¿qué les obliga a fusionarlas "bien lo sabe"?

    Espero su respuesta

    --
    La calidad de la respuesta depende sobre todo de la claridad de la pregunta, ¡gracias!
    0
  3. drakar3 Mensajes publicados 16 Estado Miembro
     
    En la imagen adjunta, hay un logo, luego a la derecha está la puntuación global (bajo puntos) y los nombres de los 4 corredores con su puntuación respectiva... sería necesario poder filtrar solo por la puntuación global...
    0
    1. Theo.R Mensajes publicados 585 Estado Miembro 31
       
      Hola,

      Creo que es posible, pero no a través de una solución "estándar" predefinida por Excel. Tengo en mente una macro que se podría ejecutar mediante un botón para regenerar la clasificación según los puntos de cada equipo.

      En sí, no es un código muy complicado, pero dadas las particularidades de su solicitud (tamaño de las celdas, etc.), preferiría recibir un documento de Excel de su parte y una petición precisa sobre lo que espera antes de comenzar con VBA :-)

      En resumen:
      - Gracias por enviar un documento base a través de www.cjoint.com
      - Gracias por listar sus expectativas PRECISAS (deseos, restricciones, etc.). Piensen especialmente en cómo van a llenar su documento. Esto definirá la manera en que deberemos concebir la solución ;)

      Atentamente,
      0
      1. drakar3 Mensajes publicados 16 Estado Miembro > Theo.R Mensajes publicados 585 Estado Miembro
         
        Es muy amable de su parte.
        Adjunto el documento.
        El principio es simple: después de cada prueba, se asignan puntos a los corredores.
        Estos puntos alimentan la casilla total.
        El objetivo es que la clasificación se actualice, de mayor a menor cantidad de puntos.
        Adjunto el archivo. :)
        Muchas gracias por adelantado,
        0
  4. drakar3 Mensajes publicados 16 Estado Miembro
     
    Aquí tiene el enlace:
    https://www.cjoint.com/c/FAspqTrS1ni

    Como verán, no todos los equipos están creados, y el total de puntos está, por lo tanto, en las 30 casillas situadas debajo de "Pts".
    0
    1. drakar3 Mensajes publicados 16 Estado Miembro
       
      Última precisión: la celda total aún no contiene la fórmula actualizada, pero eso no es importante. El objetivo es crear la macro que permitirá ordenar en orden descendente a partir de estos 30 totales, respetando el orden de los logos, nombres de equipos y corredores implicados. Gracias, :)
      0
    2. Theo.R Mensajes publicados 585 Estado Miembro 31
       
      ¿Harán TODOS los equipos el mismo número de líneas? (¿entonces de corredores?)
      0
    3. drakar3
       
      Efectivamente, un máximo de 4 corredores, incluyendo 4 líneas y 5 no del equipo.
      0
    4. Theo.R Mensajes publicados 585 Estado Miembro 31
       
      Otra pregunta: veo en el documento adjunto que hay varias tablas, ¿hay que mantenerlas separadas? ¿Solo se debe hacer una única clasificación o cada tabla constituye una clasificación independiente?
      0
    5. Theo.R Mensajes publicados 585 Estado Miembro 31
       
      ¿Otra pregunta mientras esperamos la respuesta a la última:

      ¿qué quieren hacer con los equipos que tienen la misma puntuación? ¿Mantenemos el empate y saltamos un puesto (para dos primeros empatados tendríamos: 1º - 1º - 3º...) o algo más?
      0
  5. drakar3 Mensajes publicados 16 Estado Miembro
     
    Hola Theo,

    De hecho, no encaja completamente:
    - la idea es que los 30 equipos estén clasificados en orden descendente: del 1º al 10º en la 1ª página (liga 1), del 11º al 20º en la 2ª página (liga 2) y del 21º al 30 en la 3ª página (liga 3).
    - teniendo en cuenta que he mejorado algunos aspectos del documento.
    - y que es posible que agregue una o dos ligas en el futuro (así que liga 4 y liga 5).

    ¿Te parece posible adaptar tu macro?
    Gracias de nuevo :)

    El documento: https://www.cjoint.com/c/FAuqjgSh3fi
    0
    1. Theo.R Mensajes publicados 585 Estado Miembro 31
       
      Hola,

      No hay problema con el tiempo de respuesta, lo único es que actualmente ya no tengo tiempo debido a mi trabajo para retomar mi código y adaptarlo a sus precisiones.

      Pero hay grandes posibilidades de que tengamos que empezar más o menos desde cero, mi código era específico para una situación con un procedimiento operativo preciso.

      En fin, lo siento, pero no podré atender su solicitud por el momento, espero que otros aficionados a las macros a medida vean este mensaje y puedan hacerse cargo ;)

      Buena continuación,

      PD: si el tema cae en los meandros del olvido, puede cerrarlo y abrir uno nuevo con una descripción sintética y completa de su solicitud ;)
      0
  6. Theo.R Mensajes publicados 585 Estado Miembro 31
     
    En ausencia de más detalles sobre la solicitud, a continuación el código que he podido realizar.

    Funcionamiento previo: - la hoja con los resultados debe ser nombrada "CLASIFICACIÓN"
    - Solo debe haber 10 equipos (celdas B6:B12 a B60:B64 en el ejemplo)
    - En caso de empate en la puntuación, el equipo que aparece primero en la lista ocupará el lugar superior (puede ser injusto, ¡pero bueno!)

    Buena continuación:

    Sub Clasificación()
    Application.ScreenUpdating = False

    For i = 6 To 60 Step 6
    Range("B" & i).Value = WorksheetFunction.Rank(Range("E" & i).Value, Range("E:E"))
    Next i

    For j = 60 To 6 Step -6
    If WorksheetFunction.CountIf(Range("B:B"), "=" & Range("B" & j).Value) = 1 Then
    Else
    Range("B" & j).Value = Range("B" & j).Value + 1
    End If
    Next j

    Set Originale = Sheets(2)
    Originale.Copy Before:=Sheets(2)
    Set Copie = Sheets(2)

    Originale.Select
    ActiveSheet.Pictures.Delete

    For k = 6 To 60 Step 6

    If Copie.Range("B" & k).Value = 1 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B6:B10").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 2 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B12:V16").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 3 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B18:V22").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 4 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B24:V28").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 5 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B30:V34").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 6 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B36:V40").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 7 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B42:V46").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 8 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B48:V52").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 9 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B54:V58").Select
    ActiveSheet.Paste
    End If

    If Copie.Range("B" & k).Value = 10 Then
    Copie.Select
    Range("B" & k & ":V" & k + 4).Select
    Selection.Copy
    Sheets("CLASIFICACIÓN").Select
    Range("B60:V64").Select
    ActiveSheet.Paste
    End If

    Next k
    Application.CutCopyMode = False
    Application.DisplayAlerts = False
    Originale.Range("B2").Select
    Copie.Select
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True

    Application.ScreenUpdating = True
    End Sub
    -1
    1. drakar3
       
      Hola Theo, disculpa por responder tarde pero no recibí una alerta de respuesta... voy a probar eso y te mantendré informado :)
      0