RSS

Filtro Avanzado por Fechas

06 Jul

Imprimir

Hola Amigos y amigas. Anteriormente les había explicado lo que es un Filtro Avanzado. Muchos y muchas de seguro ya le han empezado a sacar provecho, pero a la vez algunos se estarán preguntando cómo hacer un filtro por Fechas, el cual me permita poner una Fecha Inicial y una Fecha Final, pues es muy sencillo.

He realizado un ejemplo que se puede bajar en el siguiente enlace:

Consideraciones

  Antes de empezar a filtrar por fechas debemos tener en cuenta que en las condiciones NO PODEMOS poner una fecha de la misma forma en que se introduce en el campo de Fecha. Excel no lo reconoce de esa forma, por lo que tenemos que recurrir a un pequeño truco para engañar a la máquina y de esa manera ya podemos ingresar una Fecha Inicial y Final. 

En el ejemplo que he subido he puesto una fecha inicial en la celda F1 y en G1 la fecha final. Ahora para crear las condiciones HE COPIADO EL CAMPO FECHA DOS VECES (celdas F2 y G2). Se hace de esa forma porque solo tenemos un Campo llamado FECHA. 

Ahora en la celda F3 pondremos la siguiente fórmula: =”>=”&F1 

Esto es para decirle a la máquina que nos filtre por la fecha Mayor o Igual a la que hemos puesto en F1. 

En la celda G3 pondremos la fórmula: =”<=”&G1 

Para decirle que filtre hasta la fecha Menor o igual a la que pusimos en G1. 

Nótese que he puesto =”>=”, esto porque si no encerramos entre comillas >=, Excel lo va a interpretar como si fuera un texto y no ejecutaría el filtro de la manera adecuada. Es por esa razón que se encierra entre comillas esa condición. 

Otro punto a notar es el símbolo “&”. Este me sirve para Concatenar datos. En nuestro caso hemos concatenado nuestra condición con la fecha que tengamos en F1 o G1. 

Una vez creada la fórmula notarán que Excel no pone la fecha de la misma forma que está en F1 o G1, sino que pone algo así como >=40179. Este último número es la fecha en el formato que lo reconoce Excel. 

Bueno ahora con esta pequeña explicación ya podemos poner una Fecha inicial en F1 y una Final en G1 y con la Concatenación evitamos tener que modificar la fórmula cada vez que querramos usarla. 

Aplicando la misma técnica que enseñé en Filtro Avanzado con Macro, podemos hacerlo más automatizado. Insertamos una AutoForma y le asignamos la macro y listo, ya tenemos nuestro Filtro Avanzado por Fechas y asignado a una macro. 

 
23 comentarios

Publicado por en 6 julio, 2010 en Filtro Avanzado

 

Etiquetas: ,

23 Respuestas a “Filtro Avanzado por Fechas

  1. Freddy Sánchez (@FREDDi117)

    25 enero, 2014 at 11:44 PM

    Hola, una pregunta, si en lugar de que el usuario proporcione el rango de fecha a filtrar, quiero que este rango sea fijo, como puedo indicarle en el editor de VB este rango fijo?

     
    • jcgonzalez3165

      26 enero, 2014 at 8:15 AM

      Para hacerlo pueden haber dos formas:
      1- MiRango = [D1] Con esto siempre toma esa celda.
      2- MiRango = Range(“$D$1”).Value Cumple la misma función del anterior.

       
      • Freddy Sánchez (@FREDDi117)

        26 enero, 2014 at 1:03 PM

        Hola de nuevo, estoy intentando hacerlo de esta forma, pero me marca error en el Range del objeto global

        Sub FiltraFechas()

        Dim rango1 As Date
        rango1 = 1 / 1 / 2012
        Dim rango2 As Date
        rango2 = 1 / 1 / 2013
        Range(“A1:C29000”).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range(“rango1:rango2”), CopyToRange:=Range(“I1:K1”), Unique:=False

        End Sub

         
      • jcgonzalez3165

        26 enero, 2014 at 3:52 PM

        Hola Freddy. Para crear Filtros Avanzados los encabezados tienen que ser los mismos que la tabla principal, por lo que me parece que te falta esa parte. Es mejor si pones en H1:I1 el título de Fecha y en H2:I2 las fechas iniciales y finales. De esa forma funcionaría mejor y quedaría así:
        Sub FiltraFechas()

        Range(“A1:C29000″).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range(“H1:I2″), CopyToRange:=Range(“I1:K1″), Unique:=False

        End Sub

         
  2. Carlos Daniel

    23 julio, 2012 at 8:19 PM

    Hola, estoy tratando de hacer el filtro pero no me lo hace bien, sino que me filtra cosas que no quiero, para ver si te puedo enviar mi archivo, gracias

     
    • jcgonzalez3165

      24 julio, 2012 at 5:59 AM

      Hola amigo, claro que me puede enviar su archivo. jcgonzalez3165@gmail.com

       
    • Carlos Daniel

      25 julio, 2012 at 11:01 AM

      segun ya lo hace el problema es que me borra todos los datos de la celdas que esta debajo de donde copia el filtro avanzado, es decir si filtro 40 filas de una tabla copiandolas a otro lado de una tabla que tiene 40 filas tambien a la tabla de mas abajo de 40 filas me las borra dejando la tabla pero sin datos

       
      • jcgonzalez3165

        25 julio, 2012 at 12:12 PM

        Hola amigo. A como me manda su archivo ya no estamos hablando de un simple Filtro Avanzado, tendrías que definir varios filtros avanzados y acomodar las hojas de las semanas de manera horizontal por departamento. Otra forma sería crear código para que aplique el primer filtro, luego copie los encabezados debajo y luego copie los datos del siguiente departamento, y así sucesivamente.

        Recuerda que el Filtro Avanzado es para filtrar datos en x columna(s) y los que había se borra. Por eso para lo que quiere se requiere más programación o utilizar Access.

         
      • Carlos Daniel

        25 julio, 2012 at 12:14 PM

        te lo amndé a tu Email nose que hice pero ya esta funcionando solo el detalla de la fehca como lo tengo en formato con todo y hora pues los ecimales no me los contaba es decir, <=4 y si tenia 4.1 pues no me lo ponia je gracias.

         
      • jcgonzalez3165

        26 julio, 2012 at 5:50 AM

        Me alegra que ya le funcione y espero le sirva bastante tiempo.

         
  3. jorge

    19 enero, 2012 at 10:57 PM

    intente hacer con otra plantilla pero no me sale

     
    • jcgonzalez3165

      20 enero, 2012 at 9:43 AM

      Hola Jorge. No se cuánto sabes de programación VBA, pero si no te sale es porque no has cambiado ciertas cosas. Si gustas me mandas tu archivo y trato de ver tu error y orientarte para que te quede bien. Fíjate que estés poniendo los rangos bien, los nombres de hojas y los parámetros en la hoja.

      Saludos

       
  4. maria

    3 febrero, 2011 at 5:17 AM

    Hola Juan carlos, una última pregunta.
    Hay posibilidad que cuando pincho sobre F1/G1 aparezca un calendario para seleccionar la fecha del tipo Userform

    Reitero, eres genial he guardado este sitio en mis favoritos!

     
    • jcgonzalez3165

      3 febrero, 2011 at 6:47 AM

      Hola María. Si es posible hacerlo de esa forma, pero yo lo he dejado así porque el ControlCalendar ya desaparece en la versión 2010 de Excel. Esto me evita tener que programar uno y se le facilita al usuario poder escoger fechas válidas.

       
      • maria

        3 febrero, 2011 at 12:37 PM

        Y me podrías decir cómo porfavor.
        gracias

         
      • maria

        4 febrero, 2011 at 3:27 AM

        sabes porque lo necesito, porque a la gente le resulta muy incómodo poner primero el mes y luego el día. me arman cada lios en la hoja tremendos

         
      • jcgonzalez3165

        4 febrero, 2011 at 7:22 AM

        Hola María. Si sabes algo de programación VBA puedes ver el ejemplo que subí “Validar fechas con ComboBox”. En ese ejemplo viene primero el día, pero puedes cambiar el orden sin ningún problema modificando un poquito la posición de los controles.

         
      • maria

        24 marzo, 2011 at 7:21 AM

        Buenos Días: tengo el macro que te indico más abajo, me gustaría que se copie en la hoja del maro el mismo formato que la ficha de incidencias. Es posible?

        Gracias

        Private Sub Filtrar()

        Application.ScreenUpdating = False
        uf = Sheets(“FICHA INCIDENCIAS”).Range(“A” & Cells.Rows.Count).End(xlUp).Row
        Sheets(“FICHA INCIDENCIAS”).Range(“A1:K” & uf).AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range(“A21:A22”), CopyToRange:=Range(“A24:K24”), Unique:=False
        Application.ScreenUpdating = True
        End Sub

         
      • jcgonzalez3165

        25 marzo, 2011 at 6:44 AM

        Hola María. No conozco el formato que tienes en tu otra hoja. Lo que puedes hacer es crear una nueva macro para copiar los formatos. Los pasos son:
        1- Activas la grabadora de macros.
        2- Te vas a tu hoja principal y marcas el rango a copiar y lo copias.
        3- te vas a la otra hoja y si tienes excel 2003 te vas al menú Edición (Edit) y escoges Pegado Especial, en la pantalla que te sale marcas la casilla de formatos.
        4- Apagas la grabadora de macro y listo. Ya solo quedaría hacer pocos cambios y listo.

        Cualquier cosa me puedes enviar tu archivo para analizarlo bien. Saludos.

         
  5. maria

    2 febrero, 2011 at 1:45 PM

    muchas gracias por el post es de gran ayuda.
    Sólo una pregunta. Cómo puedo hacer si la tabla en donde se pegan los datos está en otra hoja.
    Es decir en tu ejemplo que las columnas I hasta K estén en la hoja 2.
    Muchas gracias
    saludos

     
  6. Osmel

    9 julio, 2010 at 12:49 AM

    Excelente voy a ponerlo en practica, gracias

     
    • maria

      2 febrero, 2011 at 1:57 PM

      Muchas gracias por el post es de gran ayuda.
      Una pregunta, cómo puedo hacer para que los datos de la consulta se peguen en otra hoja. en tu ejemplo que las columnas I:K estén en la hoja 2.

      Muchas gracias
      saludos

       
      • jcgonzalez3165

        2 febrero, 2011 at 2:15 PM

        Hola María. Si desea desplegar los datos en otra hoja, la modificación es muy sencilla. Por favor observe el Post que hice algunos días llamado “Filtro Avanzado en Otra Hoja”. En él se explica paso a paso lo que hay que modificar y está basado en este otro para no perder la secuencia.

        Muchas gracias y espero te sirva.

         

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: