¿Cómo calculo un delta de tiempo en mis hojas de cálculo de Google?

73

Tengo una hoja de cálculo de Google que se ve más o menos así:

 Date        | Start time  | End time    | Minutes
 ------------+-------------+-------------+-----------
 1/11/2012   | 11:39       | 12:41       | ?!
 ------------+-------------+-------------+-----------
             |             |             | 

En este momento si llevo a mano la cantidad de minutos entre las dos veces del día. ¿Hay una manera directa de calcular un delta de tiempo y que la hoja de cálculo lo haga por mí?

Stefano Palazzo
fuente

Respuestas:

65

Google ha agregado un nuevo formato de número llamado Duración. Establezca sus campos de inicio y fin en Format -> Number -> Timey su campo de cálculo enFormat -> Number -> Duration

Una vez que haya hecho eso, puede restar los campos para obtener la diferencia como señaló Stefano Palazzo en su respuesta.

Jacob Hulse
fuente
51

Sí, si sus campos de hora están formateados correctamente (haga clic en Formato → Número → Hora ) puede simplemente sumar y restar horas:

=C2-B2

o

21:58:00 - 20:44:00 = 1:14:00

Esto le dará el tiempo delta como HH:MM:SS. Y si se quiere calcular el número de minutos, puede utilizar el Hour(), Minute()y Second()funciones en ese campo:

=(Hour(D2) * 60) + Minute(D2) + (Second(D2) / 60)

Por supuesto, si hay segundos intercalares, cambios de zona horaria o si un evento demora más de 24 horas, aún tendrá que ajustar los resultados manualmente.

Una advertencia

Si un evento se extiende más allá de la medianoche, digamos de 23:50 a 00:10, ¡esto aparecerá como un tiempo negativo!

Para que estos eventos se manejen 'correctamente', puede poner "24:10" o dividir el evento en dos.

Una mejor manera

Aunque es un poco más difícil ingresar datos, la forma más confiable de hacerlo es marcar el campo inicial y final como "Fecha Hora" y el campo delta como "Horas", que se verá así:

Beginning          End                  Delta
8/1/2013 0:00:00   8/2/2013 12:30:00    36:30:00
Stefano Palazzo
fuente
Esto ya no parece funcionar. Creo que debe elegir Formato> Número> Horas (frente a tiempo). Obtengo un número decimal muy extraño cuando intento restar la diferencia horaria simple.
Elijah Lynn el
@ElijahLynn este número impar es el número de días. Multiplicar los tiempos 24 y 60 te dará la cantidad de minutos,
Jacob Jan Tuinstra
1
Si alguien quiere obtener la fecha y la hora en una celda, puede fusionarse simplemente agregando: A1 + B1.
wzbozon
9

Si agrega la siguiente fórmula D2, los minutos se calculan automáticamente:

Fórmula

=ARRAYFORMULA(IF(ISBLANK(B2:B)=FALSE,((C2:C-B2:B)*24*60),""))

Explicado

La diferencia entre los tiempos, según el formato decimal, se expresa en días. Por lo tanto, multiplicar por 24 por 60 producirá minutos

Observación

Hay un requisito previo: la columna D debe formatearse como 'normal'.

Ejemplo

Ver archivo de ejemplo que creé: Delta Time

Jacob Jan Tuinstra
fuente
7

Para una solución más robusta, utilizamos una función personalizada.

1. Agregar la función personalizada

Uso del Editor de secuencias de comandos (siga las instrucciones en https://developers.google.com/apps-script/execution_custom_functions ) - escribe:

function toEpoch (indate) {
  return indate.getTime();
}

2. Agregar formulario

Luego en la celda, escribe:

=(toEpoch(C2)-toEpoch(B2)) / 60*1000

Que convierten la diferencia en Epoch milisegundos en minutos.

incompleto
fuente
... Hice esto, para asegurarme de convertirlo y convertirlo a segundos (desde milisegundos): function toEpoch (data) { return new Date(data) / 1000; }
user1278519
7

He hecho mucha experimentación. Esta es la forma más fácil de calcular un delta de tiempo en las hojas de cálculo de Google. Formatee la celda que contiene la fórmula de esta manera:

Formato de celda de fórmula

Formato> Número> Más formatos> Más formatos de fecha y hora , elimine "segundo" y :. A continuación, dar formato a la hora de finalización y puesta en células momento como este: h:mm am/pm.

Formato de celda de tiempo de entrada

Usa la fórmula =abs(end time - start time). Esto le da un valor absoluto, por lo que no habrá valores de tiempo negativos.

Natalie Kee
fuente
4

Si desea que su tiempo delta se mida en días, use

=DAYS(end_date, start_date)
e18r
fuente
Es verdad. Sin embargo, vine aquí tratando de encontrar la diferencia en días (y volví más tarde para dar una respuesta cuando la encontré en otro lugar), lo que me lleva a suponer que mi respuesta podría beneficiar a otros en mi misma situación. Dado que es un tema tan relacionado, no pensé que valiera la pena abrir una nueva pregunta, especialmente porque el título no especifica la unidad de medida. Pero ese fue solo mi razonamiento. ¿Qué piensas?
e18r
@pnuts Si encuentra una respuesta útil pero ligeramente fuera del alcance de la pregunta, también puede editar la pregunta (en este caso, para decir minutos, horas, días o lo que sea). Solo soy un chico, la pregunta tiene 100.000 visitas.
Stefano Palazzo
3

Puedes intentarlo TIMEVALUE()también.

En el caso anterior, la solución sería:

(TIMEVALUE(End Time) - TIMEVALUE(Start Time))*24*60 le dará la diferencia horaria en MINUTOS.

Sujeeth Ravindran
fuente
Bienvenido Sujeeth! Buena respuesta, agregué algunos formatos para que sea más fácil de leer.
Vidar S. Ramdal
1

En Google Sheets, utilicé la fórmula de la siguiente manera

=Round((hour(A2-A1)*60 + minute(A2-A1))/60,2)

para darme la diferencia en horas decimales.

Vibhu
fuente
0

Yo uso esta fórmula:

=HOUR(C2-B2)*60+MINUTE(C2-B2)

entonces

Format -> Number -> More Formats -> Custom number format -> #,##0
Rahmat Ihsan
fuente
-1

=(C2-B1)*1440 luego establezca el formato en "Texto sin formato".

Eric
fuente
-1

Para mi aplicación personal:

StartTime (columnA)| EndTime(Column B)| Date (Column C)

Esto funcionó para mí:
=if(B4-A4<0,(B4+C4+1)-(A4+C4),B4-A4);formatee la celda como Formato \ Hora \ Duración.

Para una verdadera condición: fórmula inspirada en los comentarios de Stefano Palazzo.

Bob K
fuente
La fecha ps está asociada con StartTime incluso si StopTime se transfiere al día siguiente, por lo que agregué +1 a la fecha de EndTime. Si su EndTime se acumula por más de un día, +1 obviamente ya no funcionará.
Bob K
-2

Estoy de acuerdo en que el tiempo delta se expresa en días, así que para volver a decir minutos, debe multiplicar la diferencia por 1440, que es 24 x 60.

Tuve este problema hoy y pensé en mencionar que el otro método simple para obtener la hora actual en una hoja de cálculo de Google Docs es ingresar CONTROL:en la celda. Puede usar esto para las celdas de tiempos de inicio y fin.

Si necesita ingresar la fecha actual en una celda, esto se logra mediante CONTROL;

Barry Welford
fuente
1
Gracias por compartir, pero no es una respuesta a la pregunta. Lea más recorrido que en nuestro centro de ayuda . Bienvenido a las aplicaciones web !!
Jacob Jan Tuinstra