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

Respuestas

  1. ¡Hola!

    En el ejemplo, también pudieron usar =ENTERO(b2) ó =TRUNCAR(B2) y cambiar formato.

    ¡Saludos y Bendiciones!

  2. Hola
    Esta información me ayudó bastante ya que tenía que separar estos datos vía el procedimiento “Texto en Columnas”, pero de la manera que la aprendí hoy, es mucho mejor!!!

    Agradezco la información.

    Excelente tema!!!

    Buenas noches

  3. igual te hubiese servido =izquierda(), o eso creo, gracias por los tutos

    1. Edder, con IZQUIERDA no es posible extraer la fecha, ya que se almacena internamente como un número de serie. Si pruebas a extraer tres dígitos de la fecha 15/05/18, verás que el resultado que se mostraría es 432, que corresponde a los tres primeros caracteres del número de serie.

  4. buenas tardes
    necesito saber cual es la formula si existe para hallar la oportunidad de respuesta entre la fecha y hora de solicitud y la fecha y hora de respuesta

    1. Hola Pilar!
      Si te he entendido bien, una simple resta serviría. Debes modificar el formato de número de la celda para mostrar el resultado como desees.

  5. Hola Sergio,
    Cómo puedo hacer para que, al extraer el més con la función =mes(), me devuelva el formato 05 para mayo, en lugar de 5
    Gracias por anticipado

    1. Hola Luis!
      En el cuadro Formato de número (Ctrl + 1), selecciona la categoría Personalizada y, en el cuadro de texto introduce la máscara 00.

  6. perfecto muchas gracias… es sencillo el asunto es saber que existe esa funcion y como usarla.. excelente ayuda me sirvio para el trabajo y quedar en alto con mi jefe.

Los comentarios están cerrados.