Autres Excel 2007 - Calcul de durée.

Paulle

XLDnaute Junior
Bonsoir,

Je tourne en rond et ne trouve pas les bonnes formules.
Je voudrai :

En A3et B3 entrer la date et l’heure de départ.
En C3 entrer le nombre d’heures à ajouter supérieur à 24:00
Et obtenir en D3 et E3 la date et l’heure de début + C3

Et

En E12 le nombre d’heures entre le DEBUT et la FIN.

Merci à vous.
 

Fichiers joints

sylvanu

XLDnaute Barbatruc
Supporter XLD
En fait XL ne calcule qu'en décimal. Ensuite il convertit suivant la mise en forme demandée.
Par exemple à cet instant il est : 19/02/2020 22:24:02 , mais si vous mettez en format standard vous obtenez : 43880,933359375 avec une résolution d'une seconde qui vaut
1/86400 = 0,0000115740740740741
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
En fait XL ne calcule qu'en décimal
En binaire voyons, en binaire !
En vigulre flottante double précision pour être exact:
64 bits: 1: signe + 11: exposant de puissance 2 + 52: mantisse.
Bit de poids fort non codé assumé 1 si code d'exposant non nul.
 

Marcel32

XLDnaute Accro
Bonjour,

Je tourne en rond et ne trouve pas les bonnes formules.

Je voudrai :

En A3et B3 entrer la date et l’heure de départ.
En C3 entrer le nombre d’heures à ajouter supérieur à 24:00
Et obtenir en D3 et E3 la date et l’heure de début + C3

Et

En E12 le nombre d’heures entre le DEBUT et la FIN.
Il faut savoir que sous Excel, les dates et heures sont codées sous forme d'un nombre décimal dont la partie entière représente la date (nombre de jours depuis le 31/12/1899) et la partie décimale représente l'heure (heures, minutes, secondes de la journée).

Exemples :
1 = 1 jour = 1er janvier 1900
1,5 = 1 jour et demi = 1 jour et 12 heures = 1er janvier 1900 à midi.

Puisque 1 jour est représenté par le nombre 1,
alors 1 heure est représentée par 1/24 (puisqu'il y a 24 heures dans une journée),
et 1 minute est représentée par 1/24/60 = 1/1440 (puisqu'il y a 1440 minutes par jour),
et 1 seconde est représentée par 1/24/60/60 = 1/86400 (puisqu'il y a 86400 secondes par jour).

Tout ça pour dire qu'il te suffit de faire une addition pour obtenir ton résultat. ;)

En D3 tu additionnes simplement la date A3, l'heure B3 et la durée C3.
Tu obtiens alors tout simplement la date et l'heure de fin en D3.
Donc en D3 : =A3+B3+C3

Si tu veux ne garder que la date, tu ne gardes que la partie entière du résultat de l'addition.
Donc en D3 : =ENT(A3+B3+C3)

Si tu veux ne garder que l'heure, tu ne gardes que la partie décimale du résultat de l'addition.
Donc en E3 : =MOD(A3+B3+C3;1)


Remarque : pour que ça fonctionne, il faut que toutes les cellules soient au bon format :
A3 et D3 au format jj/mm/aaaa (date)
B3 et E3 au format hh:mm (heure)
C3 au format [h]:mm (durée)


Avec des formules aussi simples, tu es sûr d'obtenir le bon résultat.
Tu peux tester par exemple avec 30 heures en cellule C3 : ça te donne bien le 17/02/2020 à 00:54. ;)


[edit]
Remarque 2 : puisque A est un nombre entier, tu peux simplifier la formule en E3 avec =MOD(B3+C3;1) mais c'est peut-être moins clair... ;)
[/edit]
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Il faut savoir que sous Excel, les dates et heures sont codées sous forme d'un nombre décimal
je dois rectifier là aussi :
Comme valeurs de cellules, les dates et heures sont codées par Excel sous forme d'un nombre binaire virgule flottante double précision dont la partie entière détermine la date et la partie fractionnaire l'heure. L'unité de temps des durées est donc le jour.
 

Dranreb

XLDnaute Barbatruc
À titre d'exemple "20/02/2020 02:24:00" est affiché dans une cellule au format de nombre "jj/mm/aaaa hh:mm:ss", de valeur +&H1,56D2333333333 × 2^+&H00F soit 6030972461200179 / 2^37 ce qui vaut exactement 43881,0999999999985448084771633148193359375
 

Marcel32

XLDnaute Accro
Bonjour.
je dois rectifier là aussi :
Comme valeurs de cellules, les dates et heures sont codées par Excel sous forme d'un nombre binaire virgule flottante double précision dont la partie entière détermine la date et la partie fractionnaire l'heure. L'unité de temps des durées est donc le jour.
C'est bien gentil d'essayer de jouer sur les mots, mais d'une part le but ici est plutôt d'essayer d'expliquer la chose clairement au "demandeur" afin qu'il puisse se débrouiller tout seul par la suite, et d'autre part parler de nombre binaire à virgule est pour le moins troublant...

En effet, je pense qu'il est plus simple pour le "demandeur" de comprendre que, comme je l'ai dit plus haut, Excel code la date et l'heure sous forme d'un nombre décimal (dont la partie entière est la date, et la partie décimale l'heure).
Mais savoir que ce nombre décimal est codé par la machine sous forme binaire, même si c'est une évidence, c'est beaucoup moins important actuellement pour ledit "demandeur". ;)
 

Dranreb

XLDnaute Barbatruc
Je ne joue pas sur les mots, je dis ce qui est.
Le meilleurs investissement pour le demandeur est de faire tout ce qu'il peut pour comprendre ce qu'on lui dit quand c'est exact, quitte à poser des questions tant qu'il n'a pas compris. Dire que c'est décimal c'est peut être plus simple à priori mais c'est inexact, et le croire au pied de la lettre peut réserver de mauvaises surprises un jour ou l'autre.
Par exemple "0,1" est affiché dans une cellule au format de nombre "Standard", de valeur codée +&H1,999999999999A × 2^-&H004 soit 3602879701896397 / 2^55 ce qui vaut exactement 0,1000000000000000055511151231257827021181583404541015625
ce qui n'est d'ailleurs pas égal à "00/01/1900 02:24:00" qui est affiché dans une cellule au format de nombre "jj/mm/aaaa hh:mm:ss", de valeur codée +&H1,9999999999999 × 2^-&H004 soit 7205759403792793 / 2^56 ce qui vaut exactement 0,09999999999999999167332731531132594682276248931884765625
Quand à la valeur exprimée en décimal par 0,1, Excel est purement et simplement incapable de l'enregistrer en tant que valeur de cellule parce qu'il ne pratique pas les types de données numérique qui le permettraient, à savoir le Currency et le Variant/Decimal.
 
Dernière édition:

Paulle

XLDnaute Junior
Bonjour,
Merci Dranreb pour tes explications. Mais pour moi, c'est trop compliqué et je ne peux même pas te poser une question sur que je n'ai pas compris.
Les explications de Marcel sont plus à ma portée.
Cordialement.
 

Dranreb

XLDnaute Barbatruc
Vous y reviendrez peut être un jour quand vous aurez la surprise de ne pas trouver d'égalité de deux cellules affichant la même valeur mais l'obtenant par des voies différentes, même si ces calculs pourraient aboutir au même résultat s'ils étaient effectués en décimal …
 

Marcel32

XLDnaute Accro
Vous y reviendrez peut être un jour quand vous aurez la surprise de ne pas trouver d'égalité de deux cellules affichant la même valeur mais l'obtenant par des voies différentes, même si ces calculs pourraient aboutir au même résultat s'ils étaient effectués en décimal …
Ça en revanche c'est tout à fait exact.
Mais comme dit plus haut, je crois que ce n'est pas le souci actuel, et qu'il sera alors temps d'entrer dans les détails (que je serais bien incapable d'expliquer) quand le problème se posera (car c'est sûr, il se posera un jour !). ;)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas