Formule calcul d'heur de jour et de nuit

PAPOU78

XLDnaute Nouveau
Bonjour,

Je suis novice et je souhaiterais avoir de l'aide.

Je souhaite connaitre la formule qui me permet de définir les heures de jour et de nuit. A Savoir:

- de 6 heure à 21 h se sont des heures de jour.
- de 21 heure à 6 heure se sont des heures de nuit.


Exemple : 20h à 8h = 9h de nuit et 3h de jour
7h à 19 h = 12 heures de jour.

J'ai seulement trouvé une formule qui me donne les heures de nuit et depuis je galère.

Voici la formule des heures de nuit :
=SI(A4>=21;SI(B4>=21;B4-A4;SI(B4<=6;B4+24-A4;6+24-A4));SI(A4>6;SI(B4>=21;B4-21;SI(B4>6;SI(B4<A4;6+24-21;0);B4+3));SI(B4>6;6-A4;B4-A4)))
 

pitrack

XLDnaute Nouveau
Re : Formule calcul d'heur de jour et de nuit

Bonjour PAPOU78
Une proposition dans ce classeur. Peut-être vous conviendra-t-elle?​
ROGER2327
Message pour Roger.

Bonjour Roger,
Ta formule calcul très bien les heures jour/nuit mais avec 22h00- 5h00 pour la plage nuit.
Mon problème: calculer la plage nuit = 21h00-6h00.
Pour info mon message d'hier.
Nota: je suis débutant. Merci de votre compréhension pour mes lacunes.
 

ROGER2327

XLDnaute Barbatruc
Re : Formule calcul d'heur de jour et de nuit

Re...
Je ne comprends pas vraiment votre demande car la formule que j'utilise dans le classeur du message #2 calcule les heures de nuit comprise entre 21 h et 6 h le lendemain.
Mais je vais profiter de l'occasion pour détailler le calcul.
La formule générale que j'emploie pour calculer les heures de jour est celle-ci :
Code:
[COLOR="DarkSlateGray"][B]=(MAX(MIN(h_début_1;(B2<A2)+B2);h_fin_1)>MIN(MAX(h_fin_1;A2);h_début_1))*
(MAX(MIN(h_début_1;(B2<A2)+B2);h_fin_1)-MIN(MAX(h_fin_1;A2);h_début_1))+
(MAX(MIN(1+h_début_1;(B2<A2)+B2);1+h_fin_1)>MIN(MAX(1+h_fin_1;A2);1+h_début_1))*
(MAX(MIN(1+h_début_1;(B2<A2)+B2);1+h_fin_1)-MIN(MAX(1+h_fin_1;A2);1+h_début_1))[/B][/COLOR]
où :
  • A2 est l'heure de début de la vacation ;
  • B2 est l'heure de la fin de la vacation ;
  • h_début_1 est l'heure de début des heures de nuit ;
  • h_fin_1 est l'heure de fin des heures de nuit.
Les heures sont comptées en jours : cela signifie que 8:00 est compté comme 8/24 ou 1/3 ou 0,3333333....
Par conséquent, si on prend h_début_1 = 21:00 et h_fin_1 = 06:00, on doit remplacer :
  • h_début_1 par 21/24 ou, en simplifiant la fraction, par 7/8 ;
  • h_fin_1 par 6/24 ou, en simplifiant la fraction, par 1/4 ;
  • 1+h_début_1 par 1+21/24, soit 45/24, ou, en simplifiant la fraction, par 15/8 ;
  • 1+h_fin_1 par 1+6/24, soit 30/24, ou, en simplifiant la fraction, par 5/4.
On obtient alors
Code:
[COLOR="DarkSlateGray"][B]=(MAX(MIN(7/8;(B2<A2)+B2);1/4)>MIN(MAX(1/4;A2);7/8))*
(MAX(MIN(7/8;(B2<A2)+B2);1/4)-MIN(MAX(1/4;A2);7/8))+
(MAX(MIN(15/8;(B2<A2)+B2);5/4)>MIN(MAX(5/4;A2);15/8))*
(MAX(MIN(15/8;(B2<A2)+B2);5/4)-MIN(MAX(5/4;A2);15/8))[/B][/COLOR]
qui est la formule utilisée dans le classeur du message #2.

Si on voulait considérer que les heures de nuit commencent à 22 h pour s'achever à 5 h, il faudrait remplacer :
  • h_début_1 par 22/24 ;
  • h_fin_1 par 5/24 ;
  • 1+h_début_1 par 1+22/24, soit 46/24 ;
  • 1+h_fin_1 par 1+5/24, soit 29/24.
(Inutile ici de simplifier les fractions : on ne raccourcirait pas les formules.)

On obtiendrait alors
Code:
[COLOR="DarkSlateGray"][B]=(MAX(MIN(22/24;(B2<A2)+B2);5/24)>MIN(MAX(5/24;A2);22/24))*
(MAX(MIN(22/24;(B2<A2)+B2);5/24)-MIN(MAX(5/24;A2);22/24))+
(MAX(MIN(46/24;(B2<A2)+B2);29/24)>MIN(MAX(29/24;A2);46/24))*
(MAX(MIN(46/24;(B2<A2)+B2);29/24)-MIN(MAX(29/24;A2);46/24))[/B][/COLOR]
Dans tous les cas, les heures de nuit sont calculées par différence entre la durée de la vacation et les heures de jour.

Voyez la mise en œuvre de ces formules dans le classeur joint.​
ROGER2327
#2720
 

Pièces jointes

  • PAPOU78_jour_nuit_2720.zip
    4.8 KB · Affichages: 139

Discussions similaires