¿Cómo calcular el tiempo transcurrido —en días, meses o años— entre dos fechas y horas en Excel?
Al gestionar horarios, seguir cronogramas de proyectos o analizar registros de eventos en Excel, suele necesitar determinar cuánto tiempo ha transcurrido entre dos momentos específicos. Por ejemplo, si dispone de dos listas —una con horas de inicio y otra con horas de finalización—, podrá calcular rápidamente el tiempo transcurrido para cada par en la misma fila, tal como muestra la siguiente captura de pantalla. Esta funcionalidad resulta especialmente útil para informes de jornadas laborales, cálculos de antigüedad o seguimiento de plazos.
Calcular el tiempo transcurrido/días/meses/años con fórmula
Usar código VBA para calcular directamente el tiempo transcurrido
Calcular el tiempo transcurrido/días/meses/años con fórmula
Calcular el tiempo transcurrido
Excel facilita el cálculo de la diferencia entre dos horas, ideal para escenarios como el seguimiento de turnos de empleados, el cálculo de tiempos de respuesta o el control del avance de un proyecto. Para horas del mismo día, siga estos pasos:
1. Haga clic en una celda vacía donde desee que aparezca el tiempo transcurrido (por ejemplo, la celda C2) e introduzca la siguiente fórmula:
=IF(B2<A2,1+B2-A2, B2-A2)La celda A2 debe contener la hora de inicio y la B2, la hora de finalización. Esta fórmula gestiona los casos en que la hora de finalización sea anterior a la de inicio —por ejemplo, turnos que cruzan la medianoche— garantizando un cálculo siempre preciso.2. Tras introducir la fórmula, pulse Intro. Para aplicarla al resto de filas, utilice el controlador de relleno: haga clic en el pequeño cuadrado situado en la esquina inferior derecha de la celda y arrástrelo hacia abajo hasta cubrir los registros adicionales. ¡Así calculará los tiempos transcurridos para múltiples entradas en un instante!
3. Con las celdas de resultado seleccionadas, haz clic con el botón derecho para abrir el menú contextual y elige Establecer formato de celda. En el cuadro de diálogo Establecer formato de celda, en la pestaña Número, selecciona Hora en la lista de la izquierda. A la derecha, elige el formato de hora que prefieras (como hh:mm, h:mm:ss, etc.) para mostrar los resultados como tiempos transcurridos claros y legibles.
4. Haga clic en Aceptar para aplicar el formato. Los valores de tiempo se mostrarán ahora según su selección, lo que facilitará la interpretación de las duraciones totales.
Consejos adicionales:
- Asegúrese de que tanto las columnas de hora de inicio como las de hora de finalización estén formateadas como horas válidas en Excel para evitar errores.
- Si prevé que algunas horas de finalización correspondan al día siguiente (por ejemplo, en turnos nocturnos), la fórmula anterior lo tiene en cuenta sumando 1 —equivalente a un día completo— cuando sea necesario.
- Si aparece el error «#¡VALOR!», compruebe si hay celdas vacías o entradas con formato incorrecto en las celdas de origen.
Calcular días, meses o años transcurridos
Calcular el número de días, meses o años entre dos fechas es una tarea habitual en la planificación de proyectos, en la determinación de periodos de servicio o en cálculos de edad. A continuación, se presenta un enfoque eficaz para cada caso:
Para días transcurridos, haga clic en una celda vacía (por ejemplo, C2) e introduzca la fórmula:
=B2-A2Aquí, A2 es la fecha de inicio y B2 es la fecha de fin. Tras pulsar Intro, arrastre el controlador de relleno hacia abajo para aplicar el cálculo a filas adicionales.
Notas: Asegúrese de que ambas fechas utilicen el formato de fecha de Excel; de lo contrario, el resultado podría ser incorrecto. Si prefiere contar únicamente días completos (ignorando horas y minutos), esta fórmula es la adecuada.
Para calcular los meses entre dos fechas, introduzca en una celda vacía:
=DATEDIF(A2,B2,"m")Esta fórmula devuelve el número de meses completos transcurridos. Si los meses parciales son relevantes, también puede mostrar meses fraccionarios combinándolos con los días.Para años (incluyendo fracciones de año), use:
=DATEDIF(A2,B2,"y")Si desea los años en formato decimal, puede probar con =DATEDIF(A2,B2,"m")/12y formatea la celda de resultado como número para obtener una mayor precisión.Precauciones:
- Si la fecha de fin precede a la fecha de inicio, estas fórmulas devolverán valores negativos; considere añadir validación.
- Asegúrese de escribir DATEDIF con cuidado; un error ortográfico hará que Excel muestre el error «#¿NOMBRE?», ya que esta función no aparece en el menú estándar de funciones.
Calcular años, meses y días transcurridos en un formato combinado
Si su tarea requiere un desglose más detallado (por ejemplo, «2 años, 6 meses y 19 días»), Excel puede lograrlo mediante la función DATEDIF combinada. Esta solución es ideal para calcular la antigüedad de empleados, edades o cualquier escenario que exija una separación clara en años, meses y días.
Seleccione una celda vacía (por ejemplo, C2) e introduzca la siguiente fórmula:
=DATEDIF(A2,B2,"Y") & " Years, " & DATEDIF(A2,B2,"YM") & " Months, " & DATEDIF(A2,B2,"MD") & " Days"Luego pulse IntroEsto combina varios cálculos de DATEDIF para generar una cadena clara y legible que muestra con precisión el período de tiempo transcurrido.
Si necesita aplicar la fórmula a varias filas, utilice el controlador de relleno como antes. Le recomendamos formatear la columna resultante como «General» para asegurar que el texto se muestre correctamente.
Consejo útil: Si su cálculo incluye un año bisiesto o fechas con meses de distinta duración, puede estar seguro de que DATEDIF realiza los cálculos con precisión según los meses y años del calendario.
Solución de problemas y recordatorios:
- Revise siempre sus datos de origen en busca de celdas vacías o formatos de fecha y hora incorrectos.
- Si detecta errores, intente reformatear las columnas de entrada como «Fecha» u «Hora» para estandarizar los datos.
- Si las fórmulas no se actualizan después de editar la celda de origen, pulse F9 para forzar el recálculo o verifique que el cálculo automático esté activado en las opciones de Excel.
Código VBA para calcular el tiempo transcurrido entre dos fechas y horas
Si necesita automatizar cálculos o procesar grandes volúmenes de datos, VBA es una herramienta extremadamente útil. Por ejemplo, puede combinar los resultados del tiempo transcurrido en una sola celda o adaptar el cálculo a sus necesidades específicas.
1. Vaya a Herramientas para desarrolladores > Visual Basic; aparecerá una nueva ventana de Microsoft Visual Basic para Aplicaciones. Haga clic en Insertar > Módulo y pegue el siguiente código:
Sub CalcElapsedTimeBySelection()
Dim startRange As Range
Dim endRange As Range
Dim outputCell As Range
Dim ws As Worksheet
Dim i As Long
Dim rowCount As Long
Dim elapsedTime As Double
Dim startTime As Variant, endTime As Variant
Dim xTitleId As String
xTitleId = "Kutools for Excel"
On Error Resume Next
' Prompt user for ranges
Set startRange = Application.InputBox("Select the range for Start Time:", xTitleId, Type:=8)
If startRange Is Nothing Then Exit Sub
Set endRange = Application.InputBox("Select the range for End Time:", xTitleId, Type:=8)
If endRange Is Nothing Then Exit Sub
Set outputCell = Application.InputBox("Select the top-left cell for output results:", xTitleId, Type:=8)
If outputCell Is Nothing Then Exit Sub
On Error GoTo 0
' Check matching range sizes
If startRange.Rows.Count <> endRange.Rows.Count Then
MsgBox "The start and end time ranges must have the same number of rows.", vbExclamation, xTitleId
Exit Sub
End If
' Loop through rows
rowCount = startRange.Rows.Count
For i = 1 To rowCount
startTime = startRange.Cells(i, 1).Value
endTime = endRange.Cells(i, 1).Value
If IsNumeric(startTime) And IsNumeric(endTime) Then
elapsedTime = CDbl(endTime) - CDbl(startTime)
' Handle next-day (cross-midnight) case
If elapsedTime < 0 Then elapsedTime = elapsedTime + 1
outputCell.Offset(i - 1, 0).Value = elapsedTime
outputCell.Offset(i - 1, 0).NumberFormat = "[h]:mm:ss"
Else
outputCell.Offset(i - 1, 0).Value = "Invalid Time"
End If
Next i
MsgBox "Elapsed times calculated successfully for " & rowCount & " rows.", vbInformation, xTitleId
End Sub 2. Haga clic en el botón
para ejecutar el código. Se le pedirá que seleccione el rango de tiempo de inicio, el rango de tiempo de finalización y dónde desea que se muestre el tiempo transcurrido. El resultado aparecerá en formato de hora.
Este enfoque con VBA resulta especialmente eficaz cuando desea personalizar aún más el cálculo o el formato y ahorrar tiempo al trabajar con hojas de cálculo muy extensas.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos