Ordenar datos de forma automática

23/02/2004 - 12:51 por MG | Informe spam
Hola
tengo que ordenar datos de una tabla, segun 2 criterios y queria saber si se pude hacer con alguna funcion (no quiero hacerlo con una macro)

Mi tabla es algo así
Nombre Cantidad 1 Cantidad
P4 200 1201201
P6 100 666666
P2 400 100000
P1 1900 0
P3 300 100000
P5 150 16830

Quiero ordenar por la columna C1 en forma descendente y como segundo valor, C2 descendente tambien. El resultado es así

Nombre Cantidad 1 Cantidad
P1 1900 0
P2 400 100000
P3 300 100000
P4 200 120120
P5 150 16830
P6 100 666666

Gracias.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
23/02/2004 - 15:14 | Informe spam
Datos->Ordenar.

Un saludo.


Fernando Arroyo
MS MVP - Excel

"MG" escribió en el mensaje news:
Hola,
tengo que ordenar datos de una tabla, segun 2 criterios y queria saber si se pude hacer con alguna funcion (no quiero hacerlo con una macro).

Mi tabla es algo así :
Nombre Cantidad 1 Cantidad 2
P4 200 1201201
P6 100 6666667
P2 400 1000000
P1 1900 0
P3 300 1000000
P5 150 168303

Quiero ordenar por la columna C1 en forma descendente y como segundo valor, C2 descendente tambien. El resultado es así.

Nombre Cantidad 1 Cantidad 2
P1 1900 0
P2 400 1000000
P3 300 1000000
P4 200 1201201
P5 150 168303
P6 100 6666667

Gracias.
Respuesta Responder a este mensaje
#2 Víctor
23/02/2004 - 15:31 | Informe spam
Menú / Datos / Ordenar... Primer criterio: Cantidad1, descendente. Segundo criterio: Cantidad2, descendente

:-



Hola
tengo que ordenar datos de una tabla, segun 2 criterios y queria saber si se pude hacer con alguna funcion (no quiero hacerlo con una macro)

Mi tabla es algo así
Nombre Cantidad 1 Cantidad
P4 200 1201201
P6 100 666666
P2 400 100000
P1 1900 0
P3 300 100000
P5 150 16830

Quiero ordenar por la columna C1 en forma descendente y como segundo valor, C2 descendente tambien. El resultado es así

Nombre Cantidad 1 Cantidad
P1 1900 0
P2 400 100000
P3 300 100000
P4 200 120120
P5 150 16830
P6 100 666666

Gracias.
Respuesta Responder a este mensaje
#3 Ignacio Pérez
23/02/2004 - 17:24 | Informe spam
Hola MG:
Sin usar macros y sin acceder a este menú vas a ser muy complicado no?
si lo que no quieres es que la persona que imprime el grafico tenga que
accionar un botón ni nada parecido puedes ponerle una macro que se lance al
evento Activate de la hoja que contiene el grafico de modo que cada vez que
se seleccione esta hoja se recoloque el rango origen de los datos.
Un saludo.

"MG" escribió en el mensaje
news:
Hola,
así es como lo hago. Pero lo que quiero es algo automático, que sin hacer


ninguna manipulación se ordene para que la persona que lo va a manejar solo
tenga que imprimir un grafico que "tira" de estos datos.

Saludos.
Respuesta Responder a este mensaje
#4 Santi
29/02/2004 - 10:23 | Informe spam
MG escribió:

Hola, tengo que ordenar datos de una tabla, segun 2 criterios
y queria saber si se pude hacer con alguna funcion (no quiero
hacerlo con una macro).



Es posible hacerlo con la función JERARQUIA
He utilizado este sistema en una hoja que hice para obtener una
clasificación deportiva, de forma que al darle los resultados de los
partidos, asigne a cada equipo los puntos correspondientes, y después
ordene los equipos en función de los puntos, diferencia de goles, goles
a favor, y por último, por orden alfabético.

No recuerdo exactamente el procedimiento, pero intentaré detallarlo.

En la tabla de datos, haces una columna adicional en la que almacenarás
lo que te servirá para ordenarlas posteriormente.

Nombre Cantidad 1 Cantidad 2
P4 200 1201201
P6 100 666667
P2 400 1000000
P1 1900 0
P3 300 1000000
P5 150 168303



La cuarta columna (Columna D) debe tener la fórmula ²+(C2/10000000)

De esta forma, se almacena un número, que nos sirve para ordenar la
tabla según los dos criterios que quieres. La parte entera por el primer
criterio, y la parte decimal nos sirve para "desempatar" aplicando el
segundo criterio, cuando el primero sea igual en dos entradas.

Para evitar errores en el caso de que dos entradas sean idénticas en
ambos criterios, por ejemplo, si en la tabla se presenta:

P2 400 1000000
P9 400 1000000



En este caso, sería complicado ordenarlos con JERARQUIA, ya que en ambos
casos el resultado es el mismo, y no obtendrías el orden correcto.

Para solucionarlo, en la fórmula de la columna D puedes decidir que
extraiga el valor de la celda A1 y lo utilice como tercer criterio (doy
por supuesto que los numeritos después de la P son siempre diferentes).
De esa forma, ya nunca habrá dos datos iguales y siempre se podrá
ordenar.

El valor de P es =VALOR(DERECHA(A2;LARGO(A2)-1))

y como es el tercer criterio, tienes que ponérselos al número que
utilizas para ordenar en la parte decimal, pero más allá de los
decimales del segundo criterio, es decir... dividiendo por más ceros.

La fórmula definitiva queda así:
²+(C2/10000000)+(VALOR(DERECHA(A2;LARGO(A2)-1))/100000000000)

Una vez hecho esto, en la quinta columna debes utilizar la fórmula
JERARQUIA, de la siguiente forma: =JERARQUIA(D2;$D$2:$D$7), que es la
que te va a indicar el orden de cada registro de tu tabla.

Ahora, yo he añadido una sexta columna que tiene de nuevo el nombre del
elemento, es decir una fórmula simple ¢
Esto es porque para localizar el nombre con el número de orden, utilizo
la función BuscarV() que busca hacia la derecha. Hace unos días he leído
en este grupo cómo poder buscar un dato que está por detrás, sin
necesidad de tener que duplicar la columna entera, (creo que utilizando
la función INDIRECTO o DESREF, no recuerdo). Si quieres, puedes
localizar ese mensaje e intentarlo, o sino, duplicar la columna donde
tienes las P1, P2, etc. con esa fórmula ¢ que te puse antes.

Llegados a este punto, vamos a ocuparnos de presentar los datos
ordenados, y sin liarnos con todas esas columnas raras que hemos
añadido. Para ello utilizamos una hoja nueva, en la que pones en la fila
1 los encabezados de la base de datos, pero empezando desde la columna
B, reservando la columna A para el número de orden.

Escribe en la celda A2 el número 1, en A3 el 2, y así hasta el número de
filas que tengas que presentar (que en tu ejemplo son 6)

En la columna B, bajo el título, pon la siguiente fórmula:

=BUSCARV(A2;Hoja!$E$2:$F$7;2;FALSO)

Donde
A2 es el número 1, que has escrito antes
Hoja es el nombre de la hoja donde hemos estado trabajando antes
y el rango $F$2:$F$7 son las dos últimas columnas que hemos añadido, es
decir, el número de orden y la duplicación de la columna de las P

El resultado de esta fórmula en B2 será el nombre de la P que ocupa el
lugar 1 en la lista. En la celda B3 estará el nombre de la P que ocupa
el lugar 2... y así sucesivamente...

Ahora, utilizando la función BUSCARV, tienes que completar las dos
colummnas siguientes para cada P.

Y ya tienes en la segunda hoja, la tabla inicial, ordenada, sin darle a
ningún botón y sin utilizar ninguna macro.

Para finalizar, ocultas la primera hoja, que no necesita verse para
nada, y te queda lista para imprimir.

No se si se ha entendido o te has perdido entre tanta explicación.
La verdad es que a mi me ha resultado incomprensible algunas veces lo
que yo iba escribiendo para intentar explicarlo... o sea, que no se yo
si lo conseguirás. Espero que tengas suertes, y si algo no has
entendido, pregunta...

Hasta pronto
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida