Cómo extraer datos de celdas que contienen fecha y hora + UDF

Hoy cuento en ayudaexcel con un invitado: https://ayudaexcel.com/wp-content/uploads/2014/02/Validacion-datos-formulas-Excel-1.png Alejandro Campos, que nos va a dar la solución a un problema bastante común entre los usuarios de Excel.

¡Adelante!

A diario tengo que trabajar archivos que contienen fechas, pero las celdas que contienen fechas también contienen horas, lo cual, si has trabajado con archivos así, estarás de acuerdo conmigo que trabajar con filtros en esas columnas, ralentiza el trabajo y en muchas ocasiones las horas está demás.

En la imagen de deba hacemos un filtro de una columna con fechas y horas, pero como los filtros de Excel sólo muestran 10,000 elementos únicos, se muestra el mensaje “No se pueden mostrar todos los elementos”.

01-extraer-fechas-horas

Ver video Extraer fechas de celdas que contienen fecha y hora + UDF

Suscríbete al canal de EXCELeINFO para aprender más de Excel y macros.

Extraer fecha de una celda

Como vimos en la imagen anterior, tenemos celdas que contienen fecha y hora, pero ¿qué hacemos si sólo queremos tener la fecha en las celdas, excluyendo las horas?:

  1. Podemos dar formato a las celdas de dd/mm/aaaa, pero sólo sería formato y el filtro se seguiría tardando en mostrar los elementos.
  2. Usar funciones de tratamiento de fechas.

La opción 2 es más viable. Usaremos las siguientes funciones para extraer datos de la fecha:

  • AÑO: Devuelve el año de una celda, un número entero entre 1900 y 9999.
  • MES: Devuelve el mes, un número entero entre 1 (enero) y 12 (diciembre).
  • DIA: Devuelve el día, un número entero entre 1 y 31.
  • FECHA: Devuelve la fecha en base a 3 parámetros, el número de año, de mes y de día.

Haremos uso de las 4 funciones anteriores para devolver la fecha de las celdas con fecha y hora. Primero obtenemos el año, luego el mes y al final el día, para usarlo de parámetro en la función FECHA.

02-extraer-fechas-horas

También pudimos haber usado sólo una celda que contenta las 4 funciones:

=FECHA(AÑO(B3),MES(B3),DIA(B3))

Función UDF FechaE

Y como para casi todo en Excel está la parte larga y la parte corta, desarrollé una sencilla macro en forma de función UDF para hacer lo mismo que la función FECHA, a diferencia que el único parámetro que aceptará es la celda donde se encuentra la fecha y hora. La llamé FechaE.

TIP: Aprende a crear funciones UDF

El resultado que me devolverá la función es el número se serie correspondiente a la fecha. Hay que tomar en cuenta que Excel utiliza el Sistema de fechas 1900, es decir, el número de serie 1 equivale al 01/ene/1900.

03-extraer-fechas-horas

Nota: deberás darle formato de fecha a las celdas donde uses la función FechaE.

Macro de la función UDF

En un Módulo normal ingresamos el siguiente código.

'---------------------------------------------------------------------------------------
' Module : Módulo1
' Author : MVP, https://ayudaexcel.com/wp-content/uploads/2014/02/Validacion-datos-formulas-Excel-1.png Alejandro Campos
' Site : www.exceleinfo.com | youtube.com/user/sergioacamposh
'---------------------------------------------------------------------------------------

Option Explicit

Function FechaE(Celda As Range) As Date
    Application.Volatile
    FechaE = DateSerial(Year(Celda), Month(Celda), Day(Celda))
End Function

Descarga el archivo y la macro

Extraer fecha + UDF.rar