jueves, marzo 08, 2007

Usando Filtro Avanzado en Excel

Autofiltro permite filtrar una lista de acuerdo a una serie de criterios. Por cada columna podemos elegir hasta dos criterios, combinándolos con los operadores Y (AND) u O (OR).
Autofiltro es una gran herramienta para filtrar datos, pero en ciertas ocasiones resulta limitada. En muchos de esos casos podemos utilizar Filtro Avanzado.




En una nota anterior en este blog he mostrado uno de los usos de Filtro Avanzado: extraer una lista de valores únicos.

En esta nota veremos otros usos de Filtro Avanzado. Empecemos por considerar esta lista de nombres con sus respectivas edades



Como pueden ver hemos dejado algunas líneas en blanco por encima de la lista. Esto es necesario para permitir introducir los criterios con los cuales queremos filtrar la lista.

Supongamos que queremos filtrar la lista de manera que vemos todas las personas mayores de 40 años o menores de 30 años. El primer paso consiste en copiar los encabezamientos de las columnas en la fila 1; luego escribimos los criterios en las celdas B2 y B3



Ahora abrimos el menú Datos—Filtro--Filtro Avanzado y señalamos la tabla de datos y el rango que contiene los criterios



Apretamos aceptar y Excel filtrará la lista



Para volver a mostrar todas las líneas usamos el menú Datos—Filtro—Mostrar todo



Al escribir los criterios en distintas líneas estamos indicando a Excel que queremos usar el operador O (OR). Si queremos usar el operador Y (AND) tenemos que poner los criterios en la misma línea. Por ejemplo, si queremos mostrar solo aquellos cuyo nombre empieza con la letra R y son mayores de 30 años






Nótese que usamos R* como criterio.

También podemos combinar operadores Y (AND) y O (OR)






También podemos usar fórmulas como criterio. Para esto deben cumplirse dos condiciones:
1 - que den como resultado un valor VERDADERO o FALSO.
2 – el encabezamiento del rango de criterios debe ser distinto del encabezamiento de la columna de datos

Por ejemplo, queremos mostrar sólo aquellos nombres cuya edad sea menor que la edad promedio de la lista. En el rango de criterios ponemos esta fórmula

=B6<PROMEDIO($B$6:$B$15)






Otro ejemplo sería mostrar aquellos nombres que aparecen más de una vez. Para eso usaremos la fórmula

=CONTAR.SI($A$6:$A$15,A6)>1






Otra gran ventaja de Filtro Avanzado es que nos permite copiar la lista filtrada a otra ubicación en la hoja. Volviendo sobre el ejemplo anterior, marcamos la posibilidad "Copiar a otro lugar", por ejemplo a D1






Como podemos ver, Filtro Avanzado permite filtrar listas de maneras que no serían posibles con Autofiltro.



Technorati Tags:

110 comentarios:

  1. Hola recibe un codial saludo.
    Necesito saber como evitar que cuando en una celda de excel se tenga una formula para dividir una celda por otra, si la correspondiente al divisor tiene como valor cero(0)me aparezca #DIV/0. Necesito que me aparezca cero(0)

    ResponderBorrar
  2. Hola Gilberto,
    tienes que usar la función SI para condicionar el resultado. Por ejemplo, si divides celdas en la columna A por las celdas correspondientes en la columna B, usas la fórmula =SI(B1=0;0;A1/B1).
    Una fórmula más sofisticada es
    =--SI(B1;A1/B1). Una explicación sobre esta fórmula puedes leer en esta nota.

    ResponderBorrar
  3. sólo doy las gracias por el documento ya que, me ha sido de gran utilidad.
    salu2 cordiales

    ResponderBorrar
  4. Hola, escribo poque tengo una lista de más d 3000 contactos en una hoja de Excel y necesito filtrarlos de tal manera que aparezcan solo las celdas que contienen una determinada palabra aunque dentro de la celda haya mas...... es decir quiero que me aparezcan las celdas que contienen la palabra "Academia" aunque dentro de la celda aparezca "Academia Morelos", esto se puede??? porque me urge

    ResponderBorrar
  5. Hola José,
    tienes que usar Datos--Filtro--Autofiltro; en el campo indicado usas Personalizar--Contiene y en la ventanilla pones la palabra que aparece en las celdas a ser exhibidas.

    ResponderBorrar
  6. Hola escribo porque necesito usar el filtro avanzado de acuerdo a los criterios de que cuando escoja la fecha comienzo y la fecha final, en la hoja me aparezcan los datos en el intervalo de estas dos fechas.

    ResponderBorrar
  7. Hola Muhammad
    para filtar datos de de acuerdo a un intervalo (de fechas) puedes usar también Autofiltro sencillo.

    ResponderBorrar
  8. hola. tengo la siguiente inquietud. en unas hojas tengo varias listas (estas pueden tener elementos repetidos) necesito en otra hoja un resumen de estas listas, teniendo solo los regitros una sola vez, sin repetir: Ejemplo:
    pera 5 manzana 10
    manzana 20 uva 4
    uva 10 uva 6

    y uqe en la otra hoja me quede:
    Pera 5
    Manzana 30
    Uva 20


    gracias por colaborarme

    ResponderBorrar
  9. Puedes usar tablas dinámicas con la opción rangos de consolidación múltiples, como muestro en esta nota

    ResponderBorrar
  10. Tengo un listado con varias ciudades y necesito filtrar solo aquellas ciudades que sean distintas a 3 en particular que me interesan. No se como poner la condicion de que sea distinta a esas ciudades usando filtro avanzado, podrias ayudarme?
    Muchas gracias!

    ResponderBorrar
  11. Hola Silvana
    el operador para simbolizar distinto es "<>"
    Para elegir todas las ciudades que no sean Buenos Aires, la condición sería

    <>Buenos Aires

    ResponderBorrar
  12. Hola Como puedo filtrar datos que sean fechas?....por ejemplo

    10/12/95
    12/01/98
    20/01/00
    15/01/00
    01/12/98
    10/01/00

    solo quiero que filtre aquellos q sean del año 2000 o 1998...sin importar de que mes o dia sean.......Gracias

    ResponderBorrar
  13. Hola Tito

    en tu caso hay que usar Filtro Avanzado. El tema de Autofiltro con fechas es "truculento" y le estaré dedicando una nota en breve.

    ResponderBorrar
  14. Hola otra vez...aun q eh intentado utilizar filtro avanzado ps nada..o derrepente no le estoy aplicando bien....de todas maneras gracias ...Jorge...

    ResponderBorrar
  15. hola Jorge,

    tengo una pregunta sobre el filtro avanzado: necesito filtrar por año en un campo fecha, es decir, tengo un campo donde almaceno fechas en formato dd-mm-aa, y necesito usar el filtro avanzado para obtener solo las que sean de un determinado año. Alguna sugerencia? Ah, no puedo agregar una columna más con el año...

    Saludos,

    Martín.

    ResponderBorrar
  16. Hola Martín
    como está indicado en la nota, puedes usar fórmulas como criterio, a condición de que den como resultado VERDADERO o FALSO.
    En tu caso, puedes usar la función AÑO (YEAR). Por ejemplo, si la fecha está en la columna A tienes que usar como criterio

    =AÑO(A5)=2008

    ResponderBorrar
  17. Muchas gracias por sus aportaciones Jorge, me han servido mucho.

    Mi problema es: tengo dos columnas una con saldo actual y otra con saldo vencido. Lo que quiero es filtrar los datos que tengan el saldo vencido MAYOR al saldo actual.

    puse la siguiente formula "=SI(AQ8:AQ3912>AO8:AO3912,VERDADERO(),FALSO())" en el criterio para usar el filtro avanzado no selecciono los saldos vencidos mayores.

    Me podría ayudar???

    ResponderBorrar
  18. Mari
    suponiendo que en la columna AQ tienes los saldos vencidos y en AO los actuales, la fórmula a usar sería

    =AQ98>AO98

    La fórmula da VERDADERO o FALSO sin necesidad de usar la función SI. Tampoco tienes que usar todo el rango de la lista, sólo la primer fila de datos de la tabla.

    ResponderBorrar
  19. Hola Jorge de nuevo yo...

    Muchas gracias por su pronta respuesta.

    cambie la fórmula como me indico, despues seleccione filtro avanzado, puse el rango de toda la base de datos y en criterio la celda donde puse la fórmula y aceptar.

    en la barra de estado sale "se encontraron 3905 de 3905 registros".

    y aún no consigo el resultado deseado.

    Habrá otro método para conseguir el resultado deseado??

    Gracias...

    ResponderBorrar
  20. disculpe usted Jorge...

    pero ya encontre mi error: al seleccionar el criterio, no incluía el rótulo del criterio, por eso no realizaba el filtro.

    disculpe usted las molestias.

    Y de nuevo gracias...

    Mari.

    ResponderBorrar
  21. MUCHAS GRACIAS ME ESTA ACLARANDO TODAS MIS DUDAS

    ResponderBorrar
  22. Buen día. Abusando de su generosa ayuda, acudo a usted solicitando orientación en lo siguiente: Trabajo con Excel 2003 en español. Tengo una base de datos con nombres y otros datos. Algunos de los nombres se repiten 2 veces, otros 3, otros se repiten 5 veces, otros se repiten 10 veces y otros no se repiten sino que son unicos. Como hago para filtrar de esa base sólo los nombres que se repiten 2 veces o los que se repiten 5 veces o los que se repiten 4 veces, etc. Mil gracias de antemano.

    ResponderBorrar
  23. Usando la función CONTAR.SI en una columna auxiliar y filtrando de acuerdo a esa columna.
    Suponiendo que la lista de nombres está en el rango A2:A100, se puede crear la columna auxiliar esta fórmula

    =CONTAR.SI($A$2:$A$100;A2)

    Esto permite filtrar la lista de acuerdo a la frecuencia de cada nombre.
    Luego se puede usar filtro avanzado con la opción Valores Únicos.

    ResponderBorrar
  24. Perfecto Sr. Dunkelman, mil y mil gracias !!!!

    ResponderBorrar
  25. Hola!!
    Como puedo hacer lo siguiente: Tengo un rango de celdas por decir A2:Z100
    En la columna C hay codigos de una clave por ejem. ATN23RC23
    Tengo en la columna R solo 20 de las mismas claves, lo que quiero es que me filtre las filas que tengan los registros de la columna R igual a los de la columna C, sin tener que hacerlo con Autofiltro y tener que meter las 20 claves por que luego pueden cambiar. Muchas Gracias por su pronta Respuesta.

    ResponderBorrar
  26. Creando una columna auxiliar con una fórmula (lo mas corriente es con la función =O)qur de VERDADERO si el código de la celda evaluada existen en el rango de los veinte códigos.
    Luego se filtra con un sólo criterio (VERDADERO) de esa columna.

    ResponderBorrar
  27. Buenos dias..
    Gracias por la informacion que muestra...Es de gran ayuda.
    Solo una duda, queria filtrar en una tabla, donde uno de los espacios es la fecha de nacimiento. Mi idea es filtrarla por ano (1995, 1980, etc) Pero no lo logro..
    Como podre hacerlo??
    Gracias de antemano

    ResponderBorrar
  28. Fijate en mi comentario del 24 de julio de este año en respuesta a la consulta de Martín

    ResponderBorrar
  29. holaaa
    me parece muy bueno tu blog, te felicito
    tengo un problemilla en excel no se como arreglarlo
    resulta que trabajo practicamente con excel en todo y tengo algunos libros de excel en que al filtrar me cuenta por ejem cuantas coincidencias encontro (ejem: se encontraron 8 de 90 registros) sin embargo en otros libros no lo hace y tengo que estar contando uno por uno
    como arreglo esto?? para que en todos los libros al hacer filtro me cuente las coincidencias (me ahorraria tiempo y trabajo con eso jeje) espero me puedas ayudar
    un saludo muy cordial para ti

    ResponderBorrar
  30. Hola
    lo que te sugiero es que uses la función SUBTOTALES. La puedes ubicar por encima de los encabezamientos de las columnas o al final de la tabla, dejando una fila en blanco.
    Excel muestra un mensaje, al pie de la hoja en la parte izquierda; pero este desaparece en el momento que haces algún movimiento u operación en la hoja. Por eso lo más recomendable es usar SUBTOTALES.

    ResponderBorrar
  31. Jorge,
    Hace un par de semanas que estoy consultando tu blog para conseguir nuevas formulas, te agradezco profundamente el aporte.
    Te escribo para consultarte lo siguiente: quiero hacer que en una hoja2 me muestre solo las filas de una hoja1 (base de datos dinámica) que cumplan con cierto criterio, la forma rápida que se me ocurre para actualizar mi filtro de la hoja2 es hacer una tabla dinámica con referencia desref, pero no quiero aumentar el peso de mi archivo con una tabla dinámica. Estoy probando con un filtro avanzado referenciado con una función desref pero el filtro no se actualiza. ¿Existe alguna forma para que el filtro se actualice? O ¿Alguna fórmula que me recomiendes para solucionar mi problema?.
    Saludos Cordiales
    Rodrigo

    ResponderBorrar
  32. Podrías forzar la actualización con una macro, más precisamente programando un evento.

    ResponderBorrar
  33. Hola, qué tal.

    Estoy complicado con el uso de filtro avanzado, tengo 6 valores como criterios, y en mi base de datos en esa columna, los registros tienen esos valores, pero también existen otros, distintos a esos 6.

    Entonces, lo que quiero es filtrar la base de datos para que me muestre sólo los registros que tengan valores distintos a los del criterio. Por ejemplo, probé con colocar <>55, en la siguiente fila de esa columna puse <>200, después <>100, y así con otros valores. Al final no me filtra nada, mostrándome toda la lista original.

    Lo curioso es que cuando pongo sólo una condición, por ejemplo <>55 y nada más, ahí funciona y me muestra el listado con valores distintos a 55. Pero al colocar más criterios no funciona. ¿Qué estoy haciendo mal?

    Espero puedan ayudarme con esto.

    Saludos.

    ResponderBorrar
  34. Hola, me llamo, david, me ha servido de mucho este blog, pero tengo una duda, quiero hacer un filtro avanzado sobre unos datos, por ejemplo tengo un listado de departamentos y sus sueldos. Quiero por ejemplo los ingenieros, pero de estos el que tiene el salario mas alto, pero no consigo que funcione... me puedes ayudar...

    =B6>max($B$6:$B$15)


    Gracias

    ResponderBorrar
  35. La fórmula tendría que ser

    =B6=max($B$6:$B$15)

    ResponderBorrar
  36. Gracias, Jorge L. Dunkelman, me funciona siempre y cuando solo quiera mirar el salario maximo de todos, pero si le pongo otra condicion no me funciona, osea, esto: ingenieros y en otra columna la formula =B6=max($B$6:$B$15), hay solución ?? pq lo que necesito, son las dos condiciones...

    Gracias por tu ayuda...

    ResponderBorrar
  37. Hola Jorge como siempre muy buenos tus aportes para el aprendizaje de Excel. Tengo un problema con el filtro avanzado. Para el rango de criterios valide la celda mediante una lista, pero al cambiar el criterio no me actualiza la tabla, solo si voy hasta el menú datos filtro y filtro avanzado y selecciono nuevamente los rangos me muestra el cambio.
    Filtro avanzado no permite que cuando se cambie el criterio automaticamente cambien los resultados, si no es así como podria hacerlo, muchas gracias Jorge.

    ResponderBorrar
  38. Tendrías que programar un evento, de manera que cuando cambies algún parámetro de los criterios se dispera una macro que actualice el filtro

    ResponderBorrar
  39. David
    en la nota está esplicado como filtrar con más de una condición.

    ResponderBorrar
  40. Estimado JH Project
    el error consiste en que estás poniendo las condiciones una debajo de la otra en la mima columna, es decir que estan usando el criterio O cuando deberías estar usando Y.
    Al filtrar la fila Excel mira la celda y compara si ésta cumple con los criterios. En tu caso si la celda contiene, digamos 55, Excel ve esta condición se cumple, pero la siguiente, <>100, no se cumple y por eso no filtra la fila.
    Tienes que poner los criterios en celdas contiguas de la misma fila. Por ejemplo, si el rango de criterios está en las filas 1 y 2, en A1 y en A2 pones el nombre del campo a filtrar y en B1 pones <>55, en B2 <>100.
    De esta manera Excel verá que la celda que contiene 55 no cumple con ninguno de los criterios y por lo tanto será filtrada.

    ResponderBorrar
  41. Hola Jorge, muchas gracias por la respuesta, programé un evento para la celda validada, pero me surge un inconveniente, los datos filtrados están asociados con unos valores para los cuales necesito el promedio de los mismos, para ello utilicé la función subtotales, pero esta no calcula con filtro avanzado. Que debo hacer para que pueda calcular automaticamente?
    Gracias

    ResponderBorrar
  42. Tendría que ver tu archivo para poder hacerme una idea más precisa de tu problema.

    ResponderBorrar
  43. hola soy marcos, mira te consulto ya que este si es un buen foro y veo que estan tocando el tema que me intereza... te pregunto como puedo hacer para que el filtro avanzado que cree en otra hoja del mismo libro de excel se actualice automaticamente si modifico algun dato en la otra hoja q no esta filtrada, se que haciendo una macro por medio de una tarea programada pero lo q no se, es como hacerla. muchas gracias por hacer un foro tan bueno.-

    ResponderBorrar
  44. La única forma de lograr que un autofiltro se actualice autmáticamente es programando un evento. Puedes consultar mis entradas sobre eventos en el blog.

    ResponderBorrar
  45. Hola, Jorge.
    Mi problema no es usando el filtro avanzado sino justo lo contrario: tratando de evitarlo. Tengo una hoja protegida y con ello quedan desactivadas muchas opciones de los menús, pero resulta que el Filtro Avanzado sigue activo y no sé como evitarlo porque me ha dado problemas con su uso indiscriminado (lo quiero quitar no sólo en mi PC sino en cualquiera que abra ests hoja).
    ¿Haya alguna forma sencilla de hacerlo o a menos no demasiado complicada?

    ResponderBorrar
  46. Hola Javier
    no conocía este problema. Estuve viendo la base de informaciónes de Microsoft y veo que la cuestión existe desde la versión 2000 de Excel. Estoy estudiando el problema y veré que remedio hay, si es que existe, a esta situación.
    En cuanto tenga algo lo estaré publicando en el blog.

    ResponderBorrar
  47. Hola de nuevo, Jorge.
    Te comento un problema que he detectado con el Filtro Avanzado para ver si tienes alguna información de ayuda.
    Yo uso mucho el Filtro Avanzado para hacer filtros personalizados en hojas protegidas (pongo un desplegable con los valores y lo enlazo a una macro que rellena las celdas de criterios y llama al Filtro Avanzado) y me ha funcionado perfectamente en Excel 2000 y 2002, pero al probarlo en PC's con Excel 2003 me han salido resultados muy raros y he visto que es debido a que Excel 2003 tiene un rendimiento muchísimo peor que los anteriores al quitar un filtro o cambiarlo. No se aprecia en tablas de pocas filas y sin muchas fórmulas pero en cuanto hay unos cuantos cientos y con fórmulas, lo que antes era instantáneo en 2003 se eterniza y muchas veces acaba por fallar (filtra mal) o la hoja se queda colgada.
    Para borrar el filtro antes usaba el mismo filtro avanzado con criterios vacíos pero en 2003 esto va de pena.
    Lo he solucionado de momento borrando siempre el filtro (con mostrar todo) antes de ejecutar otro, pero me gustaría saber si tienes noticias de este problema y alguna otra solución, y si sabes si en excel 2007 la cosa va como en 2003 o como antes.

    En cualquier caso muchas gracias por tu blog.

    ResponderBorrar
  48. No estaba al tanto del problema. Veré si puedo investigar algo sobre el tema.

    ResponderBorrar
  49. bueno gracias por la pagina mucha me fue de gran utuilidad

    ResponderBorrar
  50. ¡Hola, buenos dias!

    Llevo un buen rato peleándome con Filtro avanzado y un gráfico y no logro llegar donde deseo, a ver si con su inestimable ayuda llego a buen ppuerto.
    Tengo un cuadro combinado en el que selecciono un Producto; el resultado de esa selección está vinculado a una celda, que quiero utilizar, mediante filtro avanzado, para mostrar los datos que me interesan de un rango.
    El problema está en que, si cambio la selección del cuadro combinado, me cambia el valor de la celda vinculada, pero no el resultado del Filtro Avanzado. ¿Hay alguna manera para que, a la que cambie el criterio, automáticamente, me cambie el Filtrado?

    ¡Muchísimas gracias!

    ResponderBorrar
  51. Javier,
    para disparar el filtro avanzado al cambiar el valor de una celda tienes que programar un evento (macro). Si no estás familiarizado con el tema puedes hacer una búsqueda en el blog sobre el tema "eventos", bajo la etiqueta Macros.
    Si necesitas más orientación, ponte en contacto conmigo por mail.

    ResponderBorrar
  52. Hola de nuevo,

    tal como indicaste, grabé una macro haciendo los pasos que quería y me funciona perfectamente.

    ¡Muchas gracias!
    Javier

    ResponderBorrar
  53. NECESITO AYUDA..... URGENTE....

    TENGO UNA TABLA CON PAIS, CIUDAD, HOMBRES Y MUJERES.

    NECESITO PLANTEAR UN CRITERIO PARA TENER SOLO CIUDADES DE ARGENTINA Y NO HOMBRES, MUJERES Y DEMAS.

    ES DECIR SOLO FILTRAR LA COLUMNA CIUDAD.


    AYUDAAAAAAAAAAAAAA

    ResponderBorrar
  54. Angel,
    ¿por que no usás Autofiltro en la columna de las ciudades? ¿O querés filtar sólo la columna dejando el resto visible? Esto último es imposible ya que al filtrar estás ocultando filas, no celdas de una columna.

    Si necesitás ayuda URGENTE podés leer la nota en el enlace Ayuda en el encabezamiento del blog para ver como consultarme.

    ResponderBorrar
  55. hola gracias por querer darme una mano.....
    el tema es el siguiente tengo una tabla con paises, ciudad, superficie, hombres y mujeres.

    necesito solo con filtro avanzado, filtrar la columna ciudad, que coincida con pais argentina.

    es decir que al momento de querer pegar el resultado del filtro (tercera opcion luego de seleccionar criterios), solo me muestre la columna ciudades de argentina y no el resto de las columnas.


    agradezco ayuda.

    ResponderBorrar
  56. ängel, sigo sin entender dónde está tu problema. Autofiltro o Filtro avanzado actúa ocualtando filas, no columnas.
    Si tenés una columna con ciudades y al lado otra con el país de la ciudad, al filtrar segun países ves sólo las ciudades de ese país.
    ¿Leiste lo que escribí en el enlace Ayuda?

    ResponderBorrar
  57. NECESITO UNA AYUDA, COMO PUEDO CONTAR EL NUMERO DE DECIMALES DE UN NUMERO EN EXCEL.

    GRACIAS POR LA AYUDA.

    ResponderBorrar
  58. Hola Andrés,
    con una combinación de las funciones DERECHA, HALLAR y LARGO. Tu consulta no está relacionada con el tema de la nota. Ten en cuenta que esto es un blog, no un foro.
    Por favor, fijate cómo comunicarse conmigo en la pestaña Ayuda.

    ResponderBorrar
  59. Hola estimado Sr., antes que todo, quiero dar las gracias por compartir sus conocimientos con todo el mundo, el blog es excelente !- Ahora la consulta: quiero filtrar con el método avanzado un rango por 2 condiciones, una de las cuales quiero que verifique solo que las celdas estén vacías. Ejemplo: Criterio 1: Columna Fechas de un mes en particular, Criterio 2: Columna Fechas del mes anterior y ademas otra Columna que estén vacíos. Se que con Autofiltro se puede filtrar x vacío, pero no se la manera con filtro avanzado. Gracias otra vez.

    ResponderBorrar
  60. Rubén,
    en el rango de los criterios usamos la fórmula

    =ESBLANCO(A5)

    donde A5 es la primer celda de valores de la columna a evaluar. La fórmula la ponemos en A2 y dejamos A1 vacía. En Filtro avanzado definimos el rango de criterios A1:A2
    Esto filtrará la lista dejando visibles sólo las filas donde la celdas vacías de la columna A.

    ResponderBorrar
  61. Hola,

    Tengo una lista de excel enorme, y quiero sacar sólo los correos electrónicos, pues en la misma columna tengo los datos de nombre, correo,.. pero sin criterio uno debajo de otro.
    Gracias

    ResponderBorrar
  62. Olvido,

    no te olvides !:) que uno de los principios básicos en el manejo de datos es "no mezclar la hacienda". Cada columna debe contener datos del mismo tipo.
    Pero si ya te encuentras en esa situación puedes usar como criterio para filtrar la lista el símbolo @ (arroba) con la esperanza que sòlo aparezca en las direcciones de correos electrónicos.

    ResponderBorrar
  63. necesito sacar promedio de alumnos y hago la formula pero como hay celdas que contienen cero, por ejemplo tengo 10 notas, en algunos ramos solo tiene 6 notas ingresadas pero al sacar el promedio cuenta las 10 celdas y da mas bajo el resultado es ahi donde no puedo..... mi formula es esta =SI(C12:L12="";"";PROMEDIO(C12:L12)) ojala me ayuden gracias!

    ResponderBorrar
  64. Hola Jorge:
    Si filtro una columna a los efectos de eliminar un rango, por ej productos con cero de existencia, y los elimino, me elimina todas las filas intermedias, esto me pasa en el 2007; no me pasaba en el 2003, pero lo curioso es que a veces no lo hace.
    ¿De qué no me doy cuenta?
    Gracias
    Rubén

    ResponderBorrar
  65. Se trata de un problema específico de Excel 2007 cuando se aplica autofiltro seleccionanado los encabezados de las columnas. Puedes fijarte en este artículo publicado por Microsoft.
    Estaré publicando una nota sobre el tema.

    ResponderBorrar
  66. Jorge
    Como siempre muy atento y certero.
    Muchísimas gracias

    Rubén

    ResponderBorrar
  67. HOla.. quisiera saber q criterio poner en un rango de fechas (filtro avanzado)... por ejemplo: cuya fecha de compra fue entre el 1 de Enero del 2000 hasta 27 de febrero del 2000..


    gracias de antemano ^^!..

    ResponderBorrar
  68. Filtrar una lista usando fechas tiene ciertas peculiaridades. Estaré publicando una nota con los detalles.

    ResponderBorrar
  69. Hola quisiera saber como es el operador en Excel para filtrar datos (filtro avanzado. Necesito que me muestre determinados valores entre un determinado ran de numeros, por ejemplo de una lista que solo me muestre las personas comprendidas enter 20 y 30 años de edad. Desde ya muchas gracias

    ResponderBorrar
  70. hola me gustaria saber como usar el filtro avanzado en una tabla de datos de varias filas y columnas, donde cada celda es un numero (entre cero y cien),para que NO me muestre los ceros en ninguna columna (conservando todos los valores de las columnas adyacentes al filtrar los ceros)

    ResponderBorrar
  71. Filtro Avanzado (o Autofiltro) oculta filas, no celdas individuales. Lo que puedes hacer es usar formato personalizado de números que no muestre el cero o cambiar la opción Ver-Valores cero en Herramientas-Opciones (Excel 2003) o Opciones de Excel-Avanzadas (Excel 2007)

    ResponderBorrar
  72. Muchas gracias Jorge por tu comentario, tenia la esperanza que hubiera algun truquillo para que no escondiera las filas sino las celdas...gracias igual, Gabriela.

    ResponderBorrar
  73. Estimado Jorge muchas gracias, tenia un problema similar al de J.H.Project, 04 febrero, 2009 14:46, con tu respuesta logre solucionarlo


    Guillermo

    ResponderBorrar
  74. Hola me gustaria saber como realizo lo siguiente:

    Tengo una lista de estudiantes, y deseo filtrar aquellos que su apellido aparece mas de una vez.... es decir que aparescan solo los estudiantes con apellidos repetidos mas de una ves.......

    POr favor ayudenme

    ResponderBorrar
  75. Tu caso es exactamente lo que muestro en el ejemplo de la nota. Por favor, lee la nota con atención

    ResponderBorrar
  76. Hola.
    Estoy usando filtros avanzados en combinación con listas desplegables y macros, todo esto para tener un efecto dinámico de reportes, ahora mi pregunta. Hay alguna manera que el resultado del filtro este en una hoja, mientras mi macros este en otra?

    ResponderBorrar
  77. No me queda clara tu consulta. Las macros no están en una hoja específica sino en un módulo del editor de Vb.¿Tal vez te refieres a un evento programado en el módulo de una página específica?
    Estás invitado a consultarme directamente por mail (fijate las condiciones en el enlace Ayuda en la parte superior del blog).

    ResponderBorrar
  78. Saludos Jorge:

    Por favor disculpa que mi inquietud que no se relaciona exactamente con el tema expuesto en este aparte, pero la traigo a colación por lo de los filtros y es la siguiente:

    -En la "Hoja1" tengo un ComboBox1 (cuadro combinado del cuadro de controles) que ofrece para escoger al usuario 100 nombres de negocios.
    -Seleccionado el nombre de un negocio, una función BUSCARV() localiza el nombre seleccionado y devuelve el código de la actividad empresarial del negocio, en la "Hoja2"
    -En la "Hoja3" esta la base de datos de las 100 empresas, con un Autofiltro en la columna F (que contiene los códigos de actividad empresariale).
    Ahora bien, ¿se puede conseguir que con solo seleccionar el nombre del negocio en la "Hoja1", un código ComboBox1_Change(), active automaticamente el Autofiltro de la "Hoja3", usando como único criterio el código empresarial devuelto en la "Hoja2"?

    Como siempre, gracias anticipadas a ti y a tus lectores por la atención que les merezca mi nota.

    Cordial saludo,

    ElProfe

    ResponderBorrar
  79. Si. Habría que programar un evento (macro) que al cambiar el valor en la combobox dispare una macro que active el autofiltro.

    ResponderBorrar
  80. Hola, buen día.

    Existe la manera de filtrar una columna, por lo que es formula y lo que es texto???

    Muchas gracias.

    ResponderBorrar
  81. Luis,
    se puede pero primero hay que crear una UDF (función definida por el usuario) que de VERDADERO si la celda contiene una fórmula. Luego podemos usar esa función para crear un criterio lógico que filtre todas las filas donde las celdas de la columna correspondiente contienen fórmulas.

    ResponderBorrar
  82. hola tengo una lista de nombres y me piden que solo aparezza la ultima letra a por ejemplo tengo a a JHOANA, JUANA y a OTILIA pero como hago para que solo aparezca OTILIA

    ResponderBorrar
  83. Necesito que seas un poco más explicito. ¿Necesitas extraer el último nombre de la lista en orden alfabético o todos los nombres que empiezan con la última letra, en orden alfabético, en la lista?

    ResponderBorrar
  84. Hola a todos. Favor su colaboracion. Tengo en una columna el numero de un documento (Pedido) que puede repetirse varias veces, en otra columna hay un valor(vencimiento) que varia. Requiero filtrar o identificar el numero mayor de cada pedido. Es decir el pedido 1508 tiene vencimientos 4, 5 y 6, el pedido 1510 tiene vencimientos 20, 15, 35 y 22, requiero que del 1508 solo se visualice el 6 y del pedido 1510 solo se visualice el 35. Gracias por su ayuda.

    ResponderBorrar
  85. Hola de nuevo. Encontré la solucion, es para idenficar el valor maximo de un conjunto de datos, la posteo por si a alguien le sirve. Suponiendo que el numero del pedido está en la columna C, el valor a evaluar en la D y los datos van de la fila 6 hasta la 500:
    =MAX(INDIRECTO("D"&FILA()-CONTAR.SI.CONJUNTO(C$6:C8,C8)+1&":"&"D"&FILA()-CONTAR.SI.CONJUNTO(C$6:C8,C8)+1+CONTAR.SI.CONJUNTO(C$6:C$500,C8)-1))
    Esta formula es el ejemplo de la fila 8.
    Saludos.

    ResponderBorrar
  86. Edwin,
    esto es un blog, no un foro. Te será más productivo dirigir tu consulta a uno de los muchos y buenos foros de Excel que hay en la red.
    En cuanto a tu consulta, una buena solución sería usar una tabla dinámica con la operación MAX en el área de los datos.
    SI no estás familiarizado con el tema puedes ver las notas sobre tablas dinámicas en el blog.

    ResponderBorrar
  87. OK., hice la consulta pensando en la relacion con los filtros que era el tema. Gracias de todas maneras.

    ResponderBorrar
  88. Edwin,
    gracias por postear tu solución. Mencioné la de las tablas dinámicas por ser más sencilla, en mi opinión, y más flexible (por ejemplo, no requiere preocuparse por adaptar fórmulas a los rangos de los datos).

    ResponderBorrar
  89. Efectivamente la tabla dinamica es más sencilla.
    Gracias de nuevo.

    ResponderBorrar
  90. Hola, como puedo hacer para que excel me muestre la informacion donde en cada fila exista al menos una celda en blanco, o sea que tenga datos faltantes.

    Gracias

    ResponderBorrar
  91. Con Filtro Avanzado puedes usar la técnica con fórmulas que mmuestro en esta nota. La fórmula sería =ESBLANCO(B5), suponiendo que B5 es la primer celda en el rango.

    ResponderBorrar
  92. soy mario
    hola jorge, debo utilizar fitro avanzado; pero con una particularidad, no necesito ver todos los campos de la base de datos filtrada; es decir tengo una lista NOMBRE APELLIDO EDAD TELEFONO y lo que necesito es ver NOMBRE y TELEFONO, mi pregunta es si se puede hacer. Lo que consigo con el filtro avanzado es ver todos los datos.gracias

    ResponderBorrar
  93. Mario,
    tenés que usar la opción "copiar a otro lugar". En el rango donde querés obtener los resultado copiás los encabezamientos de los campos requeridos.
    En tu caso si suponemos que la base de datos está en el rango A5:D1000, empezar por poner NOMBRE en F5 y TELEFONO en G5. Después definís el filtro con "copiar a" = F5:G5

    ResponderBorrar
  94. Hola a todos,
    Tengo una duda sobre una consulta que intento hacer con un filtro avanzado.
    Tengo una lista, donde se repiten las iniciales de algunas celdas,por ejemplo:
    AP
    AP1
    AP11
    ---- Actualmente, si en la consulta le digo que me muestre los datos de la fila AP, me muestra los datos de todas las filas que comienzan por AP, es decir, me muestra los de AP, AP1, ,,, ¿Sabeis alguna forma de hacer que solo aparezca la fila de AP solo?

    Muchas Gracias

    ResponderBorrar
  95. Una solución es usar Autofiltro en lugar de Filtro Avanzado.
    Si usamos filtro avanzado hay que hacer un pequeño truco. Supongamos que la lista está en el rango A4:A100. Dejamos en blanco la celda A1 y en la celda A2 ponemos esta fórmula

    =A5="AP"

    (la celda A4 contiene el título de la columna)
    Esta fórmula da como resultado o VERDADERO o FALSO.
    Ahora aplicamos el filtro avanzado definiendo el rango de los criterios como A1:A2

    ResponderBorrar
  96. Hola Jorge,

    Estuve viendo el caso planteado por el anónimo del 13 de septiembre en el que quería filtrar celdas en blanco de cualquier fila y tu respuesta con el uso de ESBLANCO(B5) (si B5 es la primera celda del rango).
    La cuestión es que esto funciona sólo para encontrar blancos en la misma columna ya que en este caso la referencia relativa B5 se desplaza sólo por fila pero no por columna. Una celda en blanco que se hallara en las columnas C, D, etc. no las localizaría y por lo tanto no las filtraría.
    Una manera de resolverlo sería (si no hay muchas columnas) algo así:
    =O(ESBLANCO(B5);ESBLANCO(C5);ESBLANCO(D5))
    Habría que pensar en otra alternativa si fueran muchas las columnas a evaluar.
    Un abrazo,
    Sergio

    ResponderBorrar
  97. Si tienes muchas columnas lo más fácil sería agregar una columna auxiliar a la tabla con la fórmula =CONTAR.BLANCO(A5:Z5)>0 (suponiendo que la tabla va de la columna A a la columna Z).
    Si hay alguna celda en blanco en la fila, el resultado es VERDADERO y sólo las filas con celdas en blanco quedarán visibles.

    ResponderBorrar
  98. Sí, es mucha mejor solución que usar la función O, que tiene un carácter limitado para esto.
    Gracias

    ResponderBorrar
  99. Quisiera que un filtro avanzado se ejecutara automáticamente, esto es, que cuando cambie el dato en la celda que contiene la condición, ejecute directamente el filtro.

    ¿Es posible?

    ResponderBorrar
  100. Tendrías que usar un evento (macro). En el blog hay varias notas sobre el uso de eventos.

    ResponderBorrar
  101. Hola Jorge, he estado leyendo las consultas y de verdad te felicito por tu trabajo.

    Mi duda es la siguiente: quisiera filtrar 5 columnas que contienen códigos numéricos, sin embargo estos aparecen en diferentes orden en cada fila, por ejemplo:

    12 25 30 45 10
    25 12 30 10 45

    quisiera obtener la frecuencia de aparición de cada combinación sin importar el orden en el que estén. Lo intenté con tablas dinámicas pero me fue imposible.

    Agradecería inmensamente la ayuda

    Saludos,

    Mariana

    ResponderBorrar
  102. Mariana,

    no tango claro a que te refieres con "cada combinación". Te sugiero que te pongas en contacto conmigo por mail privado (fijate en el enlace Ayuda).

    ResponderBorrar
  103. hola que tal, tengo una duda tengo una base de datos con diferentes columnas donde hay diferentes criterios, ejemplo: edad, nombre, sexo, deporte.
    como hago si despues de hacer el filtro quiero que me bote solamente los nombres y no toda la informacion

    ResponderBorrar
  104. Usando la opción "Copiar a". Supongamos que tu tabla usa el rango A5:D200 (las primeras cuatro filas contienen los criterios).

    En la celda F5 ponés el el título del campo (columna) que te interesa, en tu caso "nombre".
    En "Copiar a" ponés F5. En la columan F aparecerán sólo los nombres que cumplen con el o los criterios.

    ResponderBorrar
  105. Que tal Jorge, me gustaria limitar mi cantidad de resultados con una fórmula pero la verdad me esta costando trabajo hacerlo me podrías ayudar?
    Mi idea es usar una fórmula parecida al CONTAR.SI que utilizas para que te muestre valores que aparecen mas de una vez. En tu ejemplo (si quiero 10 resultados) seria algo asi =CONTARA($A$6:$A$15)<10 pero no funciona. La solución sería usar una columna auxiliar pero me gustaria hacerlo con una formula y un filtro avanzado

    ResponderBorrar
  106. Armando,
    no se puede limitar la cantidad de resultados con fórmulas, de la misma manera que no se puede hacer cambios en la hoja con fórmulas. Con fórmulas se puede sólo una cosa: calcular.
    Así que, como dices, la solución es usar una columna auxiliar, lo cual en mi opinión no tiene ninguna desventaja.
    Otra posiblidad es usar tablas dinámicas, donde tienes la posiblidad de mostrar los n mejores o n peores (mejores y peores en el sentido numérico).
    Esta posiblidad también existe en el Autofiltro de Excel 2007.

    ResponderBorrar
  107. Sr. DunKelman

    Felicidades por su vocación de enseñar. Tengo una duda sobre filtro avanzado cuando el encabezado tiene dos filas y por tanto hay celdas combinadas. Al aplicar el filtro, deja información sin aplicarlo.

    Gracias

    ResponderBorrar
  108. Hay que evitar el uso de celdas combinadas tanto como sea posible (es decir, casi siempre). Te sugiero que leas esta nota sobre el tema.
    Hay que poner los encabezados en una única celda. Para separar líneas dentro de la celda puedes usar Alt+Enter o usar la opción Ajustar texto en Formato de celdas-Alineación.

    ResponderBorrar