web-dev-qa-db-fra.com

Comment calculer un delta temporel dans mes feuilles de calcul Google?

J'ai un tableur Google qui ressemble à peu près à ceci:

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

En ce moment, si je remplis le nombre de minutes entre les deux heures de la journée à la main. Existe-t-il un moyen simple de calculer un delta horaire et de le faire par le tableur?

73
Stefano Palazzo

Google a ajouté un nouveau format de nombre appelé Durée. Définissez vos champs de début et de fin sur Format -> Number -> Time et votre champ de calcul sur Format -> Number -> Duration.

Une fois que vous avez fait cela, vous pouvez soustraire les champs pour obtenir la différence, comme l'a noté Stefano Palazzo dans sa réponse.

65
Jacob Hulse

Oui, si vos champs de temps sont correctement formatés (cliquez sur Format → Numéro → Heure), vous pouvez simplement ajouter et soustraire des heures:

=C2-B2

ou

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

Cela vous donnera le delta de temps sous la forme HH:MM:SS. Et si vous voulez calculer le nombre de minutes, vous pouvez utiliser les fonctions Hour(), Minute() et Second() de ce champ:

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

Bien sûr, s'il y a des secondes intercalaires, des changements de fuseau horaire ou si un événement dure plus de 24 heures, vous devrez quand même ajuster les résultats manuellement.

Un avertissement

Si un événement se prolonge après minuit, disons de 23h50 à 00h10, ce sera une heure négative!

Pour que ces événements soient gérés "correctement", vous pouvez soit mettre "24:10", soit scinder l'événement en deux.

Une meilleure façon

Même s'il est un peu plus difficile d'entrer des données, le moyen le plus fiable consiste à marquer le champ beinning et end comme "Date Time" et le champ delta comme "Heures", ce qui ressemblera à ceci:

Beginning          End                  Delta
8/1/2013 0:00:00   8/2/2013 12:30:00    36:30:00
50
Stefano Palazzo

Si vous ajoutez la formule suivante dans D2, les minutes sont calculées automatiquement:

Formule

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

A expliqué

La différence entre les heures, au format décimal, est exprimée en jours. Donc, multiplier par 24 fois 60 donnera des minutes

Remarque

Il y a un préalable: la colonne D doit être formatée comme "normale".

Exemple

Voir l'exemple de fichier que j'ai créé: Delta Time

9
Jacob Jan Tuinstra

Pour une solution plus robuste, nous utilisons une fonction personnalisée.

1. Ajout de la fonction personnalisée

Utilisation de l'éditeur de script (suivez les instructions de https://developers.google.com/apps-script/execution_custom_functions ) - écrit:

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

2. Ajouter un formulaire

Puis dans la cellule, écrit:

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

Ce qui convertit la différence en millisecondes Epoch en minutes.

7
sketchy

J'ai fait beaucoup d'expérimentation. C'est le moyen le plus simple de calculer un delta temporel dans Google Spreadsheets. Formatez la cellule contenant la formule comme ceci:

Formula cell formatting

Format> Nombre> Plus de formats> Plus de formats de date et d'heure, supprimez "deuxième" et :. Ensuite, formatez les cellules Heure de fin et Heure de début comme suit: h:mm am/pm.

Input time cell formatting

Utilisez la formule =abs(end time - start time). Cela vous donne une valeur absolue, il n'y aura donc pas de valeurs de temps négatives.

7
Natalie Kee

Tellement plus simple: regardez ce B2: 23:00 C2: 1:37 D2: = C2-B2 + (B2> C2)

Pourquoi cela fonctionne, le temps est une fraction de jour, la comparaison B2> C2 renvoie Vrai (1) ou Faux (0), si vrai 1 jour (24 heures) est ajouté. http://www.excelforum.com/Excel-general/471757-calculating-time-difference-over-midnight.html

5
Tom Elwood

Si vous voulez que votre delta temporel soit mesuré en jours, utilisez

=DAYS(end_date, start_date)
4
e18r

Vous pouvez aussi essayer TIMEVALUE().

Dans le cas ci-dessus, la solution serait:

(TIMEVALUE(End Time) - TIMEVALUE(Start Time))*24*60 vous donnera la différence de temps en MINUTES.

3
Sujeeth Ravindran

Dans Google Sheets, j'ai utilisé la formule ci-dessous

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

pour me donner la différence en heures décimales.

1
Vibhu

J'utilise cette formule:

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

ensuite

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