Problema de filtro con celdas de diferentes tamaños en Excel
drakar3
Mensajes publicados
16
Estado
Miembro
-
Theo.R Mensajes publicados 585 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,
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
-
-
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! -
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...
-
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,- 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,
-
-
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". -
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-
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 ;)
-
-
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
