ordenar matriz

11/12/2009 - 20:08 por bishop365 | Informe spam
Hola, trabajo en excel 2007.
Tengo que ordenar una matriz segun varios criterios, pero no logro hacerlo.

Esta es la martriz

ATLETA 1 2 3
a 2,6 2,2 2,7
b 2,7 2,5 3
c 2,8 2,6 3


Las filas las ordene con K.ESIMO.MAYOR(B2:D2;1), luego lo mismo pero
cambiando por 2 y 3.
Lo repito en las otras 2 filas, y queda asi :

ATLETA 1º 2º 3º
a 3 2,8 2,6
b 3 2,7 2,5
c 2,7 2,6 2,2


Luego debo 'detectar' que en la columna 1º hay un 'empate' y ordenar segun
el 2º resultado y si fuera necesario segun el 3º resultado, pero no lo
logro.

Y deberia quedar asi (lo ordene a 'mano' y no automaticamente).

ATLETA 1º 2º 3º
c 3 2,8 2,6
b 3 2,7 2,5
a 2,7 2,6 2,2


Para los atletas, esta es una tabla de salto en largo.Se ordena de mayor a
menor y si hay empate se mmira el 2º mejor salto y asi.

Que funcion debo usar para ordenar automaticamente ?

Gracias.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
14/12/2009 - 03:29 | Informe spam
hola (de nuevo), ????? (a ver si le atinamos)

OJO: corre esta macro sobre UNA COPIA de tu archivo
o cuando menos, guardalo ANTES de correr la macro y si no te gusta cierra SIN guardar y lo abres de nuevo
(ademas): debes dejar cuando menos UNA FILA Y UNA COLUMNA en blanco para "delimitar" la region actual
(finalmente): el codigo "asume" que la primera fila y la primer columna son titulos

Sub Clasifica()
Dim Fila As Integer, Col As Byte: On Error GoTo DoNothing
With Application.InputBox( _
Prompt:="Selecciona alguna celda de la BBDD", _
Title:="Clasificar...", _
Default:=ActiveCell.Address, _
Type:=8).CurrentRegion: Col = .Columns.Count - 1
For Fila = 1 To .Rows.Count - 1
With .Offset(Fila, 1).Resize(1, Col): .Value = _
Evaluate("transpose(large(" & .Address & ",row(a1:a" & Col & ")))")
End With: Next
.Sort Key1:=.Range("b2"), Order1:=xlDescending, _
Key2:=.Range("c2"), Order2:=xlDescending, _
Key3:=.Range("d2"), Order3:=xlDescending, Header:=xlYes
End With
DoNothing:
End Sub

saludos,
hector.

__ previos __
Gracias, pero en 'tiempo real' no puedo hacer esto.
Necesito una macro que me permita elegir un rango dado y que lo ordene automaticamente.
Gracias nuevamente.



ok, (creo que) cuando los requerimientos van cambiando de funciones de hoja de calculo a macros...
y/o de las consultas no se pueden desprender los detalles para (re)construir "el modelo" de forma clara...
hay que esperar a que se "asome" (por el grupo) alguien a quien ya le haya llegado su "bolita de cristal" :))
Respuesta Responder a este mensaje
#7 bishop365
14/12/2009 - 17:20 | Informe spam
GENIO !!!!!!

Yo sabía que lo ibas a lograr.Anda perfecto, lo unico que no entiendo porque
debo dejar una fila en blanco.
Queria hacerlo sin VBA inicialmente, pero no hay 'con que'.

Gracias nuevamente, desde Argentina.


"Héctor Miguel" escribió en el mensaje
news:
hola (de nuevo), ????? (a ver si le atinamos)

OJO: corre esta macro sobre UNA COPIA de tu archivo
o cuando menos, guardalo ANTES de correr la macro y si no te gusta
cierra SIN guardar y lo abres de nuevo
(ademas): debes dejar cuando menos UNA FILA Y UNA COLUMNA en blanco para
"delimitar" la region actual
(finalmente): el codigo "asume" que la primera fila y la primer columna
son titulos

Sub Clasifica()
Dim Fila As Integer, Col As Byte: On Error GoTo DoNothing
With Application.InputBox( _
Prompt:="Selecciona alguna celda de la BBDD", _
Title:="Clasificar...", _
Default:=ActiveCell.Address, _
Type:=8).CurrentRegion: Col = .Columns.Count - 1
For Fila = 1 To .Rows.Count - 1
With .Offset(Fila, 1).Resize(1, Col): .Value = _
Evaluate("transpose(large(" & .Address & ",row(a1:a" & Col & ")))")
End With: Next
.Sort Key1:=.Range("b2"), Order1:=xlDescending, _
Key2:=.Range("c2"), Order2:=xlDescending, _
Key3:=.Range("d2"), Order3:=xlDescending, Header:=xlYes
End With
DoNothing:
End Sub

saludos,
hector.

__ previos __
Gracias, pero en 'tiempo real' no puedo hacer esto.
Necesito una macro que me permita elegir un rango dado y que lo ordene
automaticamente.
Gracias nuevamente.



ok, (creo que) cuando los requerimientos van cambiando de funciones de
hoja de calculo a macros...
y/o de las consultas no se pueden desprender los detalles para
(re)construir "el modelo" de forma clara...
hay que esperar a que se "asome" (por el grupo) alguien a quien ya le
haya llegado su "bolita de cristal" :))




Respuesta Responder a este mensaje
#8 Héctor Miguel
14/12/2009 - 22:24 | Informe spam
hola, !

... lo unico que no entiendo porque debo dejar una fila en blanco...



porque desconociendo el arreglo real/completo/... de tus datos, tuve que asumir que existia la posibilidad...
de columnas adyacentes con otro tipo de datos que no quisieras ver involucradas en la (re)ordenacion (?)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida