ordenar datos, pero en base a mas de 10 columnas.....???

21/01/2006 - 02:59 por J. Carlos Muñiz S. | Informe spam
ordenar datos, tengo cerca de 15 columnas, con diferentes datos, las ultimas
10 columnas son fechas, de como van caminando los expedientes por los
diferentes status.

necesito un reporte que me muestre la misma informacion, pero ordenada de la
ultima columna a la primera, y en forma descendente

alguien que me pueda ayudar

de antemano muchisimas gracias
 

Leer las respuestas

#1 Héctor Miguel
21/01/2006 - 03:27 | Informe spam
hola, J. Carlos !

ordenar datos, tengo cerca de 15 columnas, con diferentes datos, las ultimas 10 columnas son fechas
de como van caminando los expedientes por los diferentes status...
necesito un reporte que me muestre la misma informacion, pero ordenada de la ultima columna a la primera, y en forma descendente...



[creo que necesitas -un poquitin de- mas... 'paciencia'] :))
excel 'ofrece' [un maximo de] 3 criterios de ordenacion... ->por vez<-
-> si se trata de mas de 3 criterios...
1) seleccionas el rango completo y utilizas [menu] datos / ordenar...
2) ordena 'primero los ultimos' criterios [de derecha->izquierda / abajo->arriba]
3) continua ordenando los criterios 'pendientes' [SIN modificar la seleccion y de 3 en 3]
-> o si lo prefieres... utiliza una macro +/- como la que te expongo al final [es solamente un ejemplo]

saludos,
hector.
en un modulo de codigo 'normal' ==Sub OrdenarTodas()
Dim Cols() As String, Sig As Integer
With ActiveCell.CurrentRegion
ReDim Cols(.Columns.Count)
For Sig = 1 To .Columns.Count
With .Cells(1, Sig)
Cols(Sig) = Mid(.Address, 2, InStr(2, .Address, "$") - 2)
End With
Next
For Sig = .Columns.Count To 1 Step -3
If Sig = 1 Then
.Sort _
Key1:=.Columns(Cols(Sig)), Order1:=xlDescending
ElseIf Sig = 2 Then
.Sort _
Key1:=.Columns(Cols(Sig - 1)), Order1:=xlDescending, _
Key2:=.Columns(Cols(Sig)), Order2:=xlDescending
Else
.Sort _
Key1:=.Columns(Cols(Sig - 2)), Order1:=xlDescending, _
Key2:=.Columns(Cols(Sig - 1)), Order2:=xlDescending, _
Key3:=.Columns(Cols(Sig)), Order3:=xlDescending
End If
Next
End With
End Sub

Preguntas similares