Excel et Calc (Open Office) gèrent et affichent le temps de manière très particulière.

1. L’unité de temps est le jour
Par exemple 4,275 s’affiche :
- 102:36:00 au format [h]:mm:ss
- 06:36:00 au format hh:mm:ss
- 6156:00 au format [m]:ss
- 36:00 au format mm:ss
NB : dans certains formats , la valeur affichée n’est pas égale au vrai contenu de la cellule !

Il découle de ce qui précède que :
si A1 = 108:36:54 (c’est-à-dire 4,525625)
alors A2 = A1*24 donne 108,615 (108h36min54s = 108,615h).

2. Des durées gérées comme des dates
Quoiqu’il y paraisse, les cellules des colonnes A et B ci-dessous sont égales : celles de A sont
au format date jj/mm/aaaa hh:mm:ss et celles de B au format horaire.

  

Dans Excel, l'origine des dates est le 00/01/1900 (oui le zéro janvier 1900 et pas le
31décembre 1899 !). Par conséquent,
JOUR(00:00:00) --> 0
JOUR(24:00:00) --> 1, etc..
La même fonction JOUR() sert pour les dates et les durées (inférieures à 31 jours bien sûr ! ).

Bogue dans OpenOffice : le mauvais choix dans la date conduit à des aberrations.

3. Décomposer une durée
Soit par exemple A1 = 63:18:27,8 (c'est-à-dire 2,637821) au format [h]:mm:ss,0.

Dans Excel :
C1 = JOUR(A1) --> 2
C2 = HEURE(A1) --> 15
C3 = MINUTE(A1) --> 18
C4 = SECONDE(A1) --> 28
63 h 18 min 27,8 sec est arrondi à 2j15h18min28s

OpenOffice est bogué !
C2 = HEURE(A1) --> 24 !
La retenue n'étant pas reportée sur les jours, on peut donc encore à la rigueur faire
C1 = ENT(A1) --> 3
95 h 59 min 59,7 s sera alors arrondi à 3j24h00min00s, ce qui est un pis aller.

4. Afficher une durée sous la forme …j..h..min
On peut se contenter de faire :
A1 = CONCATENER(C1;"j ";C2;"h ";C3;"min") --> 4j 15h 38min
Ainsi par exemple A1 = 63:18:27,8 s’affiche 2j15h18min.
Par cette méthode les heures et les minutes inférieures à 10 s’affichent avec un seul caractère, ce qui peut nuire à la présentation.
Par exemple A1 = 51:08:27,8 s’affiche 2j3h8min.

Pour toujours afficher les heures et les minutes avec 2 chiffres, on peut utiliser la fonction TEXTE.
D1 = C1&"j"
D2 = TEXTE(C2;"00")&"h"
D3 = TEXTE(C3;"00")&"min"
A7 = D1&D2&D3
Par exemple :
A1 = 51:18:27,8 s’affiche 2j03h18min
A1 = 15:08:27,8 s’affiche 0j15h08min

Pour n’afficher ni les jours ni les heures pour les durées inférieures respectivement à 24h et à 60min, on peut faire
A7 = SI(D1="0j";SI(D2="00h";D3;D2&D3);D1&D2&D3)
De cette façon,
15:08:59,8 s’affiche 15h09min
00:13:52,8 s’affiche 13min

Patrick Bouzin