miércoles, 14 de octubre de 2009

La ordenación avanzada en Excel.

Revisaremos una manera avanzada de ordenar nuestras bases de datos en Excel, lo haremos sobre la versión Excel 2007. aunque para versiones Excel 2003 o anteriores es muy similar.
Comenzamos con la disposición de nuestra Base de datos:


Normalmente estamos acostumbrados a realizar la ordenación empleando los iconos directos de orden de A a Z o bien el contrario de Z a A, es decir en orden ascendente o descendente:


Sin duda es la opción más cómoda y rápida, pero en ocasiones necesitamos realizar una ordenación sobre distintos campos de nuestra base de datos, dando prioridad a unos sobre el resto, para estas ocasiones es cuando empleamos el Ordenar avanzado:


Esta ordenación nos permitirá aplicar una prioridad en nuestra Base de datos. Seleccionamos nuestro origen de datos en Excel, y desde el menú Datos > Ordenar


En este cuadro diálogo configuraremos nuestros criterios de orden. En primer lugar es muy importante que marquemos la opción de Mis datos tienen encabezado, ya que de este modo no se incluirán los títulos de los campos en la ordenación; si no fuera el caso, habría que desmarcarlo. Ahora tan sólo deberemos ir seleccionando la prioridad de campos en la ordenación, seleccionando en la sección columna dicho campo. En la siguiente sección de la ventana de diálogo seleccionaremos la naturaleza de esta ordenación, es decir, si queremos ordenarlo siguiendo el valor de las celdas, el color de la fuente o del fondo de la celda (esta es una opción que sólo existe para la versión Excel 2007). Por último, para cada campo seleccionado, le indicaremos cuál es el criterio, ascendente o descendente o personalizado, por el que será ordenado el campo. Una vez configurados los tres elementos, podremos Agregar un nuevo nivel en la ordenación, esto es, darle una segunda prioridad para la ordenación total de la Base de datos.
En nuestro ejemplo, supongamos que queremos tener ordenada nuestra base de datos, en primer lugar, en orden ascendente (de menor a mayor), siguiendo el valor de las celdas, por el campo 'Fecha operación'; como segundo nivel, ordenaremos dependiendo del valor de cada celda, de mayor a menor, por el campo 'Precio unitario'; y por último, utilizaremos el campo 'descuento' para ordenar los registros de nuestra base de datos de menor a mayor.


Vemos el resultado de la ordenación:


Lo que ha ocurrido en nuestra base de datos es que se han ordenado todos los registros, respetando la cabecera o títulos con los nombres de los campos, dando prioridad en primer lugar a las fechas de cada operación, si hubieram habido coincidencias en alguna fecha de varios registros, hubiera aplicado inmediantamente el segundo nivel de prioridad, es decir, el del campo 'Precio unitario', ordenando esos registros coincidentes por el campo 'Precio unitario' con una ordenación descendente; de igual forma, si nos encontraramos con coincidencias de registros también al aplicar este segundo nivel, aplicaría el tercer nivel definido.

8 comentarios:

  1. Hola, tengo un gran problema, necesito hacer un libro índice; tengo una Hoja llamada “índice general” con estas categorías (A1 apellido paterno, A2 apellido materno, A3 nombres y A4 numero interno) y necesito que conforme se llene los datos en la hoja "indice general" se redirijan a las pestañas de cada letra del alfabeto (comenzando por apellido paterno es decir, tengo otra Hoja llamada “A” otra “B” y asi sucesivamente), que puedo hacer??

    ResponderEliminar
  2. este ejemplo si me interesa solo que los datos que manejo son demasiados y el insertar filas para ordenar son insuficientes encontré otro ejemplo pero solo lo hace de arriba abajo es con esta formila se podrá hacer de izq a derecha también =K.ESIMO.MENOR($A$5:$A$25,FILA()-4) Israel.rf7@gmail.com

    ResponderEliminar
    Respuestas
    1. Hola Israel, que tal?
      Discúlpame pero no entiendo cuál es tu problema y a qué te refieres con esa fórmula...

      Un cordial saludo para ti también

      Eliminar
  3. Hola Ismael,

    No sé si es el lugar adecuado dentro de este foro para la pregunta que quiero plantear, si no es asis te ruego que me disculpes.

    Tengo la siguiente cuestión:

    Tengo un conjunto de datos, ordenados en dos columnas, cada fila corresponde a un dato, la primera columna seria p.e. la distancia a un origen, y la segunda una cota de este punto

    de la siguiente manera:

    DIST 1 COTA 1
    DIST 2 COTA 2
    ...

    necesitaria ordenar los datos de la siguiente manera:

    DIST 1
    COTA 1
    DIST 2
    COTA 2
    ...


    Hay alguna manera de poderlo hacer mas o menos ràpida cuando trabajamos con un conjunto de datos grande ?

    Muchas grácias.

    Lluís Gorgorió

    ResponderEliminar
    Respuestas
    1. Hola Lluís,
      si solo necesitas la 'conversión', sin ninguna otra pretensión inmediata, podrías crear una tabla dinámica sobre esas dos columnas, llevando al área de filas ambos campos, y eliminando los subtotales. Permanece en le estilo de diseño compacto y ya tienes el listado...
      podrás copiarlo y pegarlo como valores para posteriores tratamientos.
      Esto sería lo más sencillo y rápido.
      Saludos

      Eliminar
  4. Muchisimas gracias Ismael.

    Es justo lo que necesitaba.

    Lluis

    ResponderEliminar