Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función DateDiff

| 13 comentarios

¿Qué es la función DateDiff?

Es una función de VBA que devuelve un valor numérico en función de 3 parámetros, el cual corresponde a la diferencia entre dos fechas, la cual puede ser expresada en meses, días, horas, u otras unidades.

¿Cómo usar esta función?

Se usa de la siguiente manera:

DateDiff(Parametro, Fecha Inicial, Fecha Final,[Fecha Inicio Semana], [Fecha Inicio Año])

Donde:

Parámetro: Permite definir qué es lo que se va a calcular, sea  días, horas, minutos, hasta años, es decir es la unidad de medida en la que se encuentra el número que la función DateDiff entregará.

Fecha Inicial: Es la fecha desde donde se empezará el cálculo.

Fecha Final: Es la fecha donde finalizará el cálculo.

Fecha Inicio Semana: Permite definir el día de inicio de semana, por default Excel toma como domingo el primer día de semana. Es un parámetro opcional

Fecha Inicio Año: Permite definir el día de fin de semana, por default Excel toma como el 1ro de Enero el primer día de semana. Es un parámetro opcional.

 

¿Qué es lo que hace?

Devuelve un valor que  resulta ser la diferencia de Fecha Final y Fecha Inicial, según sea el parámetro que se especifique.

Esta función es muy importante en el cálculo de tiempo, ya que Excel toma los valores de fecha como número y lo que en verdad se muestra es un formato de esa serie de números. Al usar la fórmula, Excel  toma el valor del formato mostrado ( es decir, si se coloca 40940, Excel tomará el valor en fechas de ese número que viene a ser el 01/02/2012 a las 12:00 am).

Ejemplo de la Función DateDiff:

Función Datediff 01

Código VBA:

Sub PruebaDateDiff()

'Notar la definición de variables locales

Dim a As Date

Dim b As Date

Dim Parametro As String

Dim Mensaje As Long

Fecha1 = Range("B1")

'Fecha1 es la Fecha Inicial

Fecha2 = Range("B2")

'Fecha2 es la fecha Final

Parametro = Range("B3")

 

Mensaje = DateDiff(Parametro, Fecha1, Fecha2)

MsgBox Mensaje

 

End Sub

 

Descargar ejemplo completo: Función DateDiff en Excel

 

Elaborado por: Jesús Tapia

13 comentarios

  1. Con la función DateDiff, podría hacer reportes de ventas en forma trimestral.

  2. Me parece que existe una redundancia en las Fechas Inicio Semana, la segunda debe ser Fecha Inicio Año:

    Fecha Inicio Semana: Permite definir el día de inicio de semana, por default Excel toma como domingo el primer día de semana. Es un parámetro opcional

    Fecha Inicio Semana: Permite definir el día de fin de semana, por default Excel toma como el 1ro de Enero el primer día de semana. Es un parámetro opcional.

  3. Esta función me resulta util para programar proyectos y cartas gantt. En el calculo de tiempo para financiamientos y en la determinación de trabajo efectivamente realizado para una obra (horas hombre).

  4. Yo le encuentro aplicacion en el calculo de las edades, esto en combinacion con la funcion Now. En la tabla solo se ingresaria la fecha de nacimiento y con esta funcion obtendriamos la edad.

  5. Esta función podría servir para observar por ejemplo los días que restan para el pago de una cuota de un préstamo o la cancelación de una deuda. Asimismo, permitiría programar una lista de actividades como el numero de días restantes para diversas citas o reuniones. En general, para establecer una agenda bastante especifica.

  6. Esta función tiene diversas aplicaciones para comparar fechas límite con la actual (p.e. tiempo restante para pagar a proveedores, para un cumpleaños, entre otras), sin que sea necesario ingresarla manualmente a diario. Para ello, se podría incluir la función Now, de la siguiente manera:

    DateDiff(Parametro, Now, Fecha_limite)

    El caso inverso puede emplearse de manera similar, (p.e. duración de un proyecto hasta el día actual), de la siguiente manera:

    DateDiff(Parametro, Fecha_inicio, Now)

  7. La definición de variables (a y b) no se relaciona con las variables empleadas en el ejemplo. Considero que lo mejor hubiera sido declarar:

    Dim Fecha1 as Date
    Dim Fecha2 as Date

  8. Buenas noches:

    Esta función es perfecta si se trabaja en el área de logística, puesto que se calcularía el tiempo que toma en salir la mercadería del almacén desde su ingreso y con ello pronosticar correctamente las siguientes mercaderías.

    Saludos,

  9. Esta función puede ser útil para hacer cuenta atrás de fechas o de tiempo.

  10. Esta funcion puede servir para poder saber cuanto tiempo falta para el vencimiento de algun pago importante, especificando el dia de hoy y el dia de vencimiento del pago. Mientras los dias pasen, se ira actualizando los dias restantes.

  11. Esta función es útil en las empresas, por ejemplo en el rubro automotriz para conocer cuanto tiempo falta para que el carro llegue a la empresa y este listo para la entrega al cliente. Colocando en fecha de inicio el día de hoy ( usaría la función =HOY() )y como fecha de fin, la fecha estimada de entrega.

  12. código correcto

    Sub PruebaDateDiff()
    'Notar la definicion de variables locales
    Dim a As Date
    Dim b As Date
    Dim Parametro As String
    Dim Mensaje As Long
    a = Hoja1.Cells(1, 2)
    'a es la Fecha Inicial
    b = Hoja1.Cells(2, 2)
    'b es la fecha Final
    Parametro = Hoja1.Cells(3, 2)
    Hoja1.Cells(4, 2) = DateDiff(Parametro, a, b)
    End Sub

  13. Disculpa tengo una duda para una macro que quiero usar para un arrendamineto de maquinaria. Como seria el código si quiero sumarle días a una fecha de salida para que en una celda especifica me arroje la fecha de entrega:

    En la celda "F13" tengo la fecha de salida.
    En la celda "F11" tengo la cantidad en numero por ejemplo 20 que son los días en que se va prestar la maquina.
    y en la celda "P18" quiero que aparezca la suma de la fecha de salida mas los "n" días en este caso 20 y obviamente con formato de fecha.

    Saludos y Gracias.

Deja una respuesta

Los campos requeridos estan marcados con *.