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


73

J'ai une feuille de calcul Google qui ressemble à peu près à ceci:

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

À l'heure actuelle, 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 temporel et de le faire par le tableur?

Réponses:


65

Google a ajouté un nouveau format de nombre appelé Durée. Définissez vos champs de début et de fin sur Format -> Number -> Timeet votre champ de calcul surFormat -> 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.


51

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

=C2-B2

ou

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

Cela vous donnera le delta de temps comme HH:MM:SS. Et si vous voulez calculer le nombre de minutes, vous pouvez utiliser les fonctions Hour(), Minute()et Second()sur 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

Cela ne semble plus fonctionner. Je pense que vous devez choisir Format> Nombre> Heures (en fonction du temps). J'obtiens un nombre décimal très étrange lorsque j'essaie de soustraire une simple différence horaire.
Elijah Lynn

@ ElijahLynn ce nombre impair est le nombre de jours. En multipliant les temps 24 et 60, vous obtiendrez le nombre de minutes,
Jacob Jan Tuinstra le

1
Si quelqu'un veut avoir la date et l'heure dans une cellule, il peut fusionner simplement par addition: A1 + B1.
wzbozon

9

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


7

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

1. Ajouter la fonction personnalisée

Utilisation de l'éditeur de script (suivez les instructions de la page 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.


... je l'ai fait, pour être sûr de le convertir et de le convertir en secondes déjà (en millisecondes): function toEpoch (data) { return new Date(data) / 1000; }
user1278519 le

7

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:

Formater une cellule de formule

Format> Nombre> Plus de formats> Plus de formats de date et heure , supprimez "seconde" et :. Ensuite, formater le temps de début et de fin cellules temps comme celui - ci: h:mm am/pm.

Format de cellule de temps d'entrée

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.


6

Tellement plus simple: regardez cette réponse de Excel Forum:

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 retourne Vrai (1) ou Faux (0), si vrai 1 jour (24 heures) est ajouté.


4

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

=DAYS(end_date, start_date)

C'est vrai. Cependant, je suis venu ici pour essayer de trouver la différence en jours (et suis revenu plus tard pour donner une réponse quand je l’ai trouvée ailleurs), ce qui m’a amené à supposer que ma réponse pourrait bénéficier à d’autres dans la même situation. Comme il s'agit d'un sujet tellement lié, je ne pensais pas qu'il valait la peine d'ouvrir une nouvelle question, d'autant plus que le titre ne précise pas l'unité de mesure. Mais c'était juste mon raisonnement. Qu'est-ce que tu penses?
e18r

@pnuts Si vous trouvez une réponse utile, mais légèrement en dehors du champ de la question, vous pouvez également la modifier (dans ce cas, dire minutes, heures ou jours, etc.). Je ne suis qu'un gars, la question a 100 000 vues.
Stefano Palazzo

3

Vous pouvez TIMEVALUE()aussi essayer .

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.


Bienvenue Sujeeth! Bonne réponse, j'ai ajouté un peu de formatage pour le rendre plus facile à lire.
Vidar S. Ramdal

1

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.


0

J'utilise cette formule:

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

ensuite

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

-1

=(C2-B1)*1440 puis définissez le format sur "Texte brut".


-1

Pour mon application personnelle:

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

Cela a fonctionné pour moi:
=if(B4-A4<0,(B4+C4+1)-(A4+C4),B4-A4);Formater la cellule comme Format \ Heure \ Durée.

Pour vrai condition: formule inspirée par les commentaires de Stefano Palazzo.


ps date est associée à StartTime même si StopTime est reporté au jour suivant, c'est pourquoi j'ai ajouté +1 à la date pour EndTime. Si votre heure de fin dure plus d'une journée, +1 ne fonctionnera évidemment plus.
Bob K

-2

Je conviens que le delta horaire est exprimé en jours, donc pour revenir en arrière, multipliez la différence par 1440, soit 24 x 60.

J'ai eu ce problème aujourd'hui et j'ai pensé que l'autre méthode simple pour obtenir l'heure actuelle dans un tableur Google Docs est d'entrer CONTROL:dans la cellule. Vous pouvez utiliser ceci pour les cellules de début et de fin.

Si vous devez entrer la date du jour dans une cellule, vous devez le faire en CONTROL;


1
Merci pour le partage, mais ce n'est pas une réponse à la question. Lire plus tournée que dans notre centre d'aide . Bienvenue dans les applications Web !!
Jacob Jan Tuinstra
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.