domingo, enero 22, 2006

Como construir una lista de valores únicos en Excel

Los ejemplos en esta nota fueron desarrollados usando la versión inglesa de Excel. Por favor, lean esta nota.

Un uso frecuente es importar reportes del mainframe a Excel para luego elaborar allí los datos. Excel tiene muchas ventajas en este terreno sobre todos los sistemas centrales y esta es una de las razones principales de su éxito.
Supogamos que importamos a Excel un reporte de las ventas del período. Este informe tiene cuatro columnas: número de factura, nombre del cliente, fecha y monto. El informe tiene, supongamos, 12.000 líneas. Queremos saber cuáles son los clientes qué aparecen en el informe, es decir obtener una lista donde el nombre de cada cliente aparezca una sola vez.
Una solución es utilizar una tabla pivot. Pero digamos que no estamos familliarizados con esta técnica. Otro camino de obtener esta lista es utilizar el menú Data--->Filter--->Advanced Filter.
Nuestro informe una vez importado a Excel se ve así


Abrimos el menú Data--->Filter--->Advanced Filter


Ahora hay que hacer lo siguiente:

  1. Marcamos la opción "copy to another location"
  2. Seleccionamos el rango relevante en la ventanilla "list range", en nuestro ejemplo B1:B21
  3. Marcamos "unique records only"
  4. En la ventanilla "copy to" seleccionamos una celda en la misma hoja (no se puede copiar la lista directamente a otra hoja) por ejemplo F1


Apretamos OK y en la columna F aparecerá la lista con los nombres


Si te gustó esta nota anotala en del.icio.us


Technorati Tags: ,



Categorías: Manejo de Datos_, Varios_

15 comentarios:

  1. Hola muy interesante tu blog, es de mucha aduda, pero este tema de lista unica no me resulto hice todo lo que aparece tal cual y me copia toda la lista nuevamente sin el criterio unico del nombre no entiendo que puede estar fallando.

    ResponderBorrar
  2. Sorry amigo yo entendi mal
    (post anterior), todo bien a la perfección gracias por el dato muy util

    ResponderBorrar
  3. estimado amigo como puedo en una planilla de registros de ventas lograr sumar solo el valor de los productos entregados

    ResponderBorrar
  4. Necesitas crear una columna auxiliar donde cada venta esté calificada como entregada/no entregada. Luego puedes usar SUMAR.SI o tablas dinámicas para totalizar en forma condicional.

    ResponderBorrar
  5. hola saludos, aprovechando tu post queria saber si existe alguna forma de eliminar de un listado una serie de columnas comparandolas con otra columna conocida, es decir la operacion inversa de filtro avanzado en la busqueda de valores iguales.

    Saludos

    ResponderBorrar
  6. Si bien no queda del todo claro, la respuesta es si. Posiblemente tendrás qeu usar una macro.

    ResponderBorrar
  7. Jorge, basicamente es extraer datos conocidos a un listado.

    ej.
    datos conocidos
    1
    2

    listado
    1
    2
    3
    4
    5

    Resultado esperado
    3
    4
    5

    gracias por tu respuesta.

    ResponderBorrar
  8. Hay varias maneras. Puedes usar Autofiltro o Filtro Avanzado, si tienes que usar más de dos criterios.

    ResponderBorrar
  9. Hola Jaime. Tengo una base de datos con informacion de pedidos, contiene varias columnas como Cod. pedido, provedor, precio, fecha de entrega etc. y tiene tres columnas para modificaciones, las cuales se dejan en blanco si no hay cambios. necesito crear, en otras hojas, tablas que contengan solo los datos de los pedidos que tengan alguna modificacion (una tabla por cada tipo de modificacion). Es posible que hayan mas de un tipo de modificacion en un pedido, así que debe aparecer el pedido en todas las tablas correspondientes. Gracias de antemano por cualquier sugerencia.

    Cordial saludo y Que Dios los bendiga

    ResponderBorrar
  10. Hola
    el nombre es Jorge, no Jaime. De tu descripción creo que agregaría en la hoja de los pedidos una columna auxiliar que moniteree si hay modificaciones en el pedido. Luego pondría una tabla dinámica basada en la lista de los pedido que traiga sólo aquellas filas donde la columna auxiliar muestra que ha habido una modificación.

    ResponderBorrar
  11. Hola Jorge

    Esta nota está muy bien, pero quizás un usuario poco avanzado se pueda confundir y no se atreva a decir que no lo entendió. Cuando marcamos la celda del Copy to ("Copiar a" en el Excel en castellano) la celda F1 de tu ejemplo debería tener previamente escrito el texto Name (coincidente con el de la columna) para que saque los valores únicos y sin embargo en la imagen del ejemplo, F1 está en blanco.
    Un saludo y sigue así, que tu aportación es magnífica.
    SL

    ResponderBorrar
  12. De momento que ponemos el rango explícitamente (B1:B21 en nuestro ejemplo) incluyendo el nombre dle campor (B1), no hace falta poner el rótulo en forma explícita.

    ResponderBorrar
  13. Jorge:

    Perdona, tienes toda la razón. Creía que el rango era toda la lista (B1:D21) en cuyo caso sí que sería necesario poner en la celda del "Copy to" (en este cado F1) el valor Name antes de ejecutar el filtro.

    Un saludo,
    SL

    ResponderBorrar
  14. Hola Cuando aplico el filtro avanzado en una columna particular me sale el siguiente mensaje

    "el rango de extracción tiene un nombre de campo inexistente o no permitido"

    La columna anterior me filtró bien. La verdad no se que pasa, ya revisó para ver que puede ser, pero no encuentro nada raro, el contenido es alfanumérico.

    Gracias

    ResponderBorrar
  15. El mensaje se refiere a algún problema con los encabezados de los campos (falta alguno?) o tal vez con los campos de criterios (los encabezados del campo de criterios no coinciden con los de la tabla de datos).

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.