martes, julio 13, 2010

Filtro Avanzado – valores únicos en otra hoja

Ya hemos mencionado en el pasado la posibilidad de extraer valores únicos de una lista con Filtro Avanzado.

En Excel 2007 usamos Datos-Ordenar y Filtrar-Avanzadas



El problema con este método, tanto con Excel Clásico como con Excel 2007, es que aparentemente podemos extraer la lista de valores únicos sólo a la hoja que contiene la lista



Pero si leemos con atención el mensaje de Excel, vemos que dice "Sólo se puede copiar los datos filtrados a la hoja activa". Y remarco "hoja activa", ya que esta es la clave para resolver el "problema".

Cuando queremos copiar valores únicos de una lista a una hoja distinta de la hoja que contiene los datos, sencillamente activamos el Filtro Avanzado desde la hoja que recibirá la lista de valores únicos. De esta manera la hoja activa es la que recibirá los valores únicos.

Veamos el caso en nuestro ejemplo. La lista de nombres, con varios valores repetidos, está en la hoja "lista"; nuestro objetivo es copiar la lista de valores únicos en la hoja "únicos".

Elegimos la celda de la hoja "únicos" donde queremos poner los valores únicos (A1 en nuestro caso) y activamos Filtro Avanzado y ponemos todas las definiciones excepto "Rango de la lista"



Ahora señalamos el rango de la lista



Al apretar "Aceptar" los valores únicos serán copiados al rango deseado.
Antes de descubrir esta solución (y supongo que no soy el primero en descubrirla) me había embarcado a escribir una macro para hacer la tarea. Moraleja: dedicar siempre unos segundos para evaluar si entendemos lo que nos dicen.

33 comentarios:

  1. Jorge, una observación brillante la tuya.

    Como me pasaba esto con cierta frecuencia, descubrí que si en realidad usás rangos nombrados (y mejor aún, si los hacés dinámicos), este problema se resuelve más fácilmente, y de una manera más correcta quizás.

    ResponderBorrar
  2. Buen día. Tengo una inquietud, me gustaria saber si existe una manera de resaltar o señalar de alguna forma, las celdas que dentro de una base de datos, contengan formulas. Es que tengo una base de datos de más de 50 columnas y más de 300 filas y necesito saber cuales son las celdas que contienen alguna formula, pero no se la forma de descubrirlas o que queden resaltadas de algun color para poderlas ver sin problemas. Muchas gracias.

    ResponderBorrar
  3. hola Jorge es interesante el metodo, pero una consulta que tan importante es el nombre del campo (es decir el titulo nombres) ya que hice la prueba sin poner el titulo y me sale uno repetido pero si le pongo el titulo ahi recien muestra sin repetir. porque??

    ResponderBorrar
  4. Podés usar esta técnica: seleccionás el rango relevante (o toda la tabla con Ctrl+*) y apretas F5 para abrir el diálogo de Ir A. Apretás el botón Especial; marcás la opción "Celdas con fórmulas" y apretás Aceptar. Esto selecciona todas las celdas del rango que contienen fórmulas. Ahora podes poner un fondo de color de una vez a todas las celdas seleccionadas.

    ResponderBorrar
  5. Lucio,
    cuando no incluís el título en el rango Excel supone que el primer valor de la lista es el título. Si el segundo valor es igual al primero, éste sale repetido.

    ResponderBorrar
  6. Hola Jorge, gracias de antemano por tu esfuerzo y paciencia.
    Somos un centro de formación de idiomas a empresas, tenemos varios profesores que van a dar esa formación y, como es lógico, tienen que pasar lista y con ello cubrir una hoja de asistencia. En esa hoja, entre otras cosas hay una celda que define el campo EMPRESA. El caso es que a final de mes, los profesores me envían los archivos y yo necesito automatizar la selección de las asistencias de cada una de las empresas para enviarselas a las compañías. Resumiendo, como puedo filtrar para que me aparezcan las hojas de una determinada empresa y así puedo guardar esa selección y enviarla por correo.

    Gracias de antemano

    p.d.: me he atrevido a poner esta consulta aquí, y no tengo muy claro si es el sitio adecuado.

    ResponderBorrar
  7. Antonio, por favor, fijate en los enlaces "Ayuda" o "Consultoría" en la parte superior del blog

    ResponderBorrar
  8. OYE GRACIAS POR TU INFO ME SIRVIO DE MUCHO, YA QUE HOY TENGO MI PARCIAL DE INFORMATICA Y TELEMATICA Y ESTO DE FILTROS ES LO QUE NOS VAN A PREGUNTAR Y NO SABIA COMO HACERLO, HE MIRADO EN VIDEOS Y EN OTROS LADOS PERO MAS CLARO QUE EL TUYO NO HABIA PODIDO ENCONTRAR.

    ResponderBorrar
  9. Hola

    Jorge, que barbaridad. De nuevo felicidades y gracias

    Te pido el favor me orientes en estas dos dudas

    La primera:
    Como funciona este ejemplo con una lista con 2 campos (Mes y Nombre). Ejemplo: Extraer los registros de enero y vendidos por Juan. Yo estoy concatenado los dados, sin embargo como tu lo mencionas en la moraleja en otra nota " es mejor tomarse unos minutos ...."

    La segunda:
    Como extraido el complemento. Ejemplo como extraer los registros de enero y NO vendidos por Juan.

    ResponderBorrar
  10. José

    tienes que poner los encabezamientos de las columnas que te interesan en el rango donde vas a copiar los datos y usar criterios (fijate en esta nota)

    ResponderBorrar
  11. Jorge....

    Solo agradecieminto y admiración

    Gracias por tu guia

    ResponderBorrar
  12. Amigo, muchas gracias. La comunidad se alimenta de información gracias a ti y a muchos otros. Ahora que estoy haciendo clases me doy cuenta de lo importante que es transmitir el conocimiento.

    ResponderBorrar
  13. Jorge:

    Pido tu ayuda, para resolver un conflicto, como puedo extraer datos que coincidan con un criterio si estan en dos columnas diferentes?

    Gracias de antemano.

    ResponderBorrar
  14. Ale,

    una solución sería poner todos los datos en una única columna. Otra sería realizar la tarea en dos etapas. Pero si queremos realizar la tarea en una única operación, no veo otra salida que programar una macro.

    ResponderBorrar
  15. Hola!
    me gustaria hacer una copia (mirror) de una hoja (hoja 1) a otra (hoja 2). Con la dificultad que: si inserto una fila en la hoja 1, me aparezca tambien en la hoja 2. Porque en condiciones normales, si inserto una fila en la hoja 1 entre la fila 4 i la 5, lo que me pasa en la hoja 2 es que en la fila 5 queda copiada la fila 6 de la hoja 1.
    no se si me he explicado bien.
    simplement quiero un espejo de la hoja 1.

    Gracias

    Anna

    ResponderBorrar
  16. Para que los cambios en la estructura de una hoja se reflejen de la misma manera en otra (suponiendo que son idénticas) tienes que seleccionar ambas hojas (apretar Ctrl apuntando a la pestaña de la segunda hoja) antes de realizar el cambio.

    ResponderBorrar
  17. Hola, Jorge necesito de tu ayuda.

    necesito generar una consulta en una hoja de excel a raiz de otra hoja base, la informacion la alimento en la base y en la consulta quiero que salgan todos los registros relacionados según un criterio

    ResponderBorrar
  18. Hay varias formas de hacerlo. Te sugiero que veas esta nota donde muestro un uso posible de MS Query.

    ResponderBorrar
  19. Hola, uso la version 2010, y si trato de comenzar el filtro avanzado desde la hoja en donde quiero el resultado, no funciona, me dice que debo tener una tabla.

    ResponderBorrar
  20. Funciona de la misma manera en Excel 2010. Un detalle importante, que me parece es tu problema, es que la celda por encima de la cual queremos traer los datos debe estar vacía. Es decir, no hay que poner un encabezamiento al rango donde queremos quye aparezcan los valores filtrados.

    ResponderBorrar
  21. Muchas gracias Jorge!
    Estuve mucho tiempo tratando de filtrar datos, sin éxito, de una hoja a otra... hasta hoy!

    ResponderBorrar
  22. Gracias, Jorge.

    De verdad, es muy apreciable lo que tu haces, al ayudar a personas que necesitamos encontrar soluciones de este tipo.

    ResponderBorrar
  23. como podria colocar en otra celda como titulo el valor de por el cual se esta filtrando

    ResponderBorrar
  24. Jorge estupendo tutorial, me ha ayudado muchísimo en el trabajo y ahorrado un montón de tiempo. En el hacer de la tabla se me ha ocurrido una idea, la cual te agradecería un montón que me aclararás como hacer (en caso de ser posible).
    Tengo una tabla en el libro 1, a la cual le aplico autofiltros y deseo que esos autofiltros estén disponibles en el Libro 2, pero solo el filtro (no todos los datos de la tabla) es posible?, Es decir que yo en el Libro 2 tenga celdas filtradas de los datos provenientes del Libro 1 :) Está un poco complicado, pero espero haberme expresado bien

    ResponderBorrar
  25. Hola Arianne,
    no creo haber entendido. ¿Qué quiere decir que los filtros del libro 1 estén disponibles en el libro 2? Podés usar la técnica que muestro en la nota, aplicando criterios para filtrar, y llevar los resultados a otro libro.

    ResponderBorrar
  26. Gracias, la has sacado del estadio con esa ayuda!

    ResponderBorrar
  27. Me sacaste de un gran apuro! eres un crack.

    ResponderBorrar
  28. Ayer hice este ejercio y me funciono y hoy llevo un rato siguiendo los pasos pero la lista no se copia, pq?

    ResponderBorrar
    Respuestas
    1. Estimado, si funcionó ayer no hay ninguna razón para que no funcione hoy. Te sugiero revisar que estás haciendo distinto hoy.

      Borrar
    2. Lo q ocurre es que si en la casilla de Rango de la lista lo pongo en formato, Tabla1[Pr/nom], si lo pongo en formato cogiendo toda la columna, DatBan!$AF:$AF, entonces si funciona

      Eso pq es?

      Borrar
    3. Lo que ocurre es que Excel no interpreta "Tabla1[Pr/nom]" como rango. Tendrías que crear un nombre definido que se refiera a la columna de la tabla (por ejemplo mi_rango=Tabla1[Pr/nom]) o poner el rango explícito (digamos $AF1:$AF120).

      Borrar

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