lundi 16 avril 2012

Utiliser les heures et temps dans Google Spreadsheet

0 commentaires
Google Spreadsheet permet de noter les temps sous la forme xx:xx:xx et en plus il ne limite pas la saisie à 24 heures ce qui fait que l'on peut donc noter 35:12:25 pour 1 jour 11 heures 12 minutes et 25 secondes.
Cependant si on souhaite utiliser ces temps pour faire des calculs cela peut devenir compliqué à utiliser et il est nécessaire de passer par quelques formules notamment pour le calcul des jours.
Ci dessous voici quelques explications sur comment utiliser les heures dans Google Spreadsheet.


Le premier tableau liste plusieurs temps (ligne 2 à 6) avec volontairement des temps très larges. Sur ce premier tableau on peut voir que la fonction hour() retourne toujours un nombre d'heures inférieur à 24, cette fonction dans Spreadsheet interprète directement 35:12:56 comme 1 jour et 11 heures.
Les fonctions minute() et second() fonctionnent parfaitement car le nombre de jour n'a pas d'impact.

Le second tableau tente de calculer le nombre de jour, pour cela la première colonne utilise simplement la fonction day() sur les heures des lignes 9 à 13 mais le résultat n'est pas juste. Spreadsheet doit associer l'heure à une journée (celle du jour ?) c'est pour cela que l'on a quelque chose de fantaisiste et en plus c'est peu stable car c'est dépendant du nombre de jour dans un mois.
Ensuite les deux autres colonnes tentent de fixer le jour en prenant comme point de départ le jour d'aujourd'hui mais cela va poser un problème de calcul quand on aura un nombre d'heure chevauchant deux mois. Voir l'exemple à 600 heures qui chevauche deux mois, c'est pour cela que l'on a -5. On voit qu'avec les fonctions now() et today() les résultats sont les mêmes.

Le troisième tableau utilise les nombres. Dans Spreadsheet une heure est aussi équivalente à un nombre, pour cela il faut aller dans le menu Format puis Nombre puis choisir Normal pour que les temps soient écrits avec un nombre. Dans ce troisième tableau j'ai laissé les heures au format nombre mais les formules fonctionnent aussi sur les heures au format heure.
Pour extraire la partie contenant le nombre de jour (la partie entière) on peut soit passer par la fonction int() ou la fonction floor(), pour la partie décimale on peut utiliser la fonction mod().
Une variante du premier tableau est la dernière colonne du troisième, on calcule le nombre de minutes avec la fonction minute() en l'appliquant à la fonction mod(). Cela revient au même mais c'est juste pour l'exemple.

Maintenant on peut décomposer un temps en jours, heures, minutes et secondes. Il est donc possible de transcrire toutes heures en un nombre de minutes, d'heures ou de secondes pour faire des calculs.

Leave a Reply