Excel - Ordenar Matriz

 
Vista:

Ordenar Matriz

Publicado por MacMac (16 intervenciones) el 29/11/2006 21:01:35
Alguien podria ayudarme a buscar una formula para ordenar los datos de una Matriz, por ejemplo:

Antes Despues
A | B | C | A | B | C |
1 5 2 1 0 4 7
2 4 9 0 1 5 8
3 8 6 7 2 6 9
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar Matriz

Publicado por José Luis (700 intervenciones) el 30/11/2006 16:19:34
¿Puedes ponerlos de otra forma? No se entiende nada

seis columnas A B C A B C ?
siete columnas 1 5 2 1 0 4 7 ?
¿sobra la última?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar Matriz

Publicado por Mac Mac (16 intervenciones) el 01/12/2006 02:32:39
es una Matriz digamos de 3 por 3 estan los numeros del 1...9 en desorden, y lo que necesito es que se ordenen asi

1 4 7
2 5 8
3 6 9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ordenar Matriz

Publicado por ricaurtem (206 intervenciones) el 01/12/2006 13:49:56
Bueno pero no especificas si quieres que se ordenen vertical u horizontal, pero eso no es problema.

Mira se me ocurre, cargar los datos de la matriz en un vector, algo asi:

Ej.

digamos ya tienes una matriz 3x3 que se llama M

Dim M( 1 to 3, 1 to 3) as Single

Asignamos los valores, etc

y para el vector si lo dimensionamos seria de la longitud de 3x3=9 datos

Dim V() as single (o como quieras)

Redim V( 1 to Ubound(M,1)*Ubound(M,2))

Contador=0
For i = 1 to filas
For j= 1 to columnas
Contador=contador +1
V(contador) = M(i,j)
next
next

luego de eso ordenas el vector.

y luego lo vuelves a poner en la matriz.

Fijate que aqui esta al revez para que se llene columna por columna, si fuera como antes se llenaria por filas
Contador=0
For i=1 to Columnas
For j = 1 to filas
Contador=contador+1
M(i,j)=V(contador)
next
next

la idea es esa.

PD. la parte de ordenar el vector te la debo :P, si se me ocurre algo, te lo pongo aqui., pero creo que se hace que primero determinas el menor y luego no se, me parece que yo tenia un codigo que hacia eso pero no recuerdo bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ordenar Matriz

Publicado por ricaurtem (206 intervenciones) el 01/12/2006 13:57:18
Ah mira lo que se me ocurrio una vez, ya que eso es medio engorroso, es simple cargar los datos en un listbox, y en la propiedad le pongo sorted = true, asi el lo ordena automaticamente, y los vuelvo a cargar.

o sea solo pones los datos de la matriz en el listbox, el lo ordena y luego los vuelves a cargar en la matriz, y facil, nada mas, ten el listbox en visible=false.

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ordenar Matriz

Publicado por ricaurtem (206 intervenciones) el 01/12/2006 14:00:53
espera me corrigo, eso se puede hacer en VB6, en excel no existe esa propiedad, pero puedes usar el ordenador del mismo excel, pones los datos en una hoja, los ordenas y los cargas.

y bueno no se que mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar