Calcul heure de nuit

Bonjour à tous,

Apres plusieurs recherche sur le forum, je n'arrive pas a trouver ou comprendre une formule qui pourrait m'aider.

je recherche une formule qui prendrais en compte plusieurs conditions.

La formule sera pour la colonne R.

En colonne B et C, ce sont mes heures de début de journée en fonction du service effectué. En colonne H mes fins de journée. Mes heures de nuit sont de 21h a 6h. celle ci sont répertorié en cellule T2 et U2. Ma formule fonctionne quand mes heures de nuit sont dans la même journée voir exemple en ligne 7 et 8. Par contre je ne trouve pas comment faire pour l'exemple de la ligne 9.

En ligne 9 ma journée commence a 18h et finis le lendemain a midi, le résultat espéré serait de 9h de nuit.

Et quand il n'y a aucune heure de nuit, j'aimerais que la cellule soit vide en colonne R.

Dans le tableau ci-joint, j'ai écrit en rouge les différentes heures a laquelle je suis susceptible de commencer et finir.

Merci d'avance pour votre aide.

26janvier2025.xlsx (20.10 Ko)

Bonjour,
Une proposition Lambda (HeuresJourNuit).
A adapter.
Cdlt.

23janvier2025.xlsx (22.75 Ko)

Bonjour,

Une autre proposition, à tester.

16janvier2025.xlsx (26.97 Ko)

Bonjour Jean-Eric,

Merci pour votre Réponse, j'aimerais réussir a comprendre comment vous avez fait pour avoir le bon résultat. C'est trop facile de faire un copié coller mais si je ne comprend pas, ça ne m'avance pas beaucoup.

HeureJourNuit est une fonction d'excel ?

Pascal(setraman49)

bonjour Jpbt84,

merci pour votre réponse.

Pouvez vous me détailler le cheminement pour arriver a cette formule et m'expliquer a quoi correspond les noms heuredebut, heurefin, debutnuit, finnuit, nuitsoir, nuitcomplete, nuitmatin, nuitsoir.

Ce sont des cellules que vous avez renommé ?

A quoi correspond la fonction LET et MAX ?

Pascal (setraman49)

Bonjour Pascal,

Voici donc la formule utilisée en cellule R4

=LET(heureDebut;MAX(B4:C4);heureFin;SI(H4<heureDebut;1+H4;H4);debutNuit;$T$2;finNuit;$U$2;nuitMatin;SI(ET(finNuit>heureDebut;heureDebut>0);finNuit-heureDebut;0);nuitSoir;SI(ET(H4>0;H4>$T$2);H4-$T$2;0);nuitComplete;SI(H4<heureDebut;1+$U$2-$T$2;0);heureNuit;nuitComplete+nuitMatin+nuitSoir;SI(heureNuit>0;heureNuit;""))

La fonction LET, va nous permettre de définir, par paire, une valeur à un nom de variable.

LET(nom1; valeur1; calcul ou nom2; valeur2;....)

Ici, je définis 8 variables:

heureDebut (contient 0.25, 6h00) = MAX(B4:C4), l'utilisation de la fonction MAX, est une des options pour récupérer une valeur parmi plusieurs cellules, vous avez deux cellules pouvant contenir 1 valeur, soit dans la colonne B, soit dans la colonne C, donc, cette fonction va récupérer la valeur saisie, j'aurais pu également utiliser MIN, peu importe, l'idée est de récupérer la valeur.

heureFin (contient 0.7916..., 19h00) = SI(H4<heureDebut;1+H4;H4), ici, je test si l'heure de fin de prestation est inférieur à l'heure de début de prestation, dans ce cas là, l'heure de fin, correspond à l'heure de fin +1jour, d'où le +1 (Il vous faut savoir comment fonctionne la gestion des dates et des heures dans Excel, si tel n'est pas le cas, plongez vous dans son apprentissage), sinon l'heure de fin est égal au contenu de la cellule H4, tout simplement.

debutNuit (contient 0.875, 21h00) = heure contenu dans la cellule T2

finNuit (contient 0.25, 6h00) = heure contenu dans la cellule U2

nuitMatin = SI(ET(finNuit>heureDebut;heureDebut>0);finNuit-heureDebut;0), ici, je test deux choses, qui doivent être vraie, il doit y avoir une heure de début différent de 0 et si l'heure de début de prestation est antérieur à l'heure de fin de la nuit (6h00), si tel est le cas, je calcul combien d'heure de nuit sont faite, la différence entre l'heure de début de prestation et 6h00 du matin, sinon, le nombre d'heure de nuit avant 6h00 sera égal à 0.

nuitSoir = SI(ET(H4>0;H4>$T$2);H4-$T$2;0), ici, je test 2 choses qui doivent être vrai, qu'il y ai bien une heure de fin de prestation et si si la personne a travaillé entre 21h00 et la fin de prestation, si tel est le cas, je calcul le nombre de d'heure de prestation, sinon, ce sera égal à 0.

nuitComplete = SI(H4<heureDebut;1+$U$2-$T$2;0), ici, je test si l'heure de début était le jour précédent, si tel est le cas, la personne à travaillé durant la nuit et je calcul donc la durée d'une nuit complète, sinon, ce sera égal à 0.

Maintenant que j'ai presque toutes mes variables, je peux faire le calcul du nombre d'heures de nuit, que je mets aussi dans une variable

heureNuit = nuitComplete + nuitMatin + nuitSoir, cela fera la somme des heures de nuits précédent calculé et affecté à ces variables.

Enfin, il ne me reste plus qu'à tester si le nombre d'heure de nuit est supérieur à 0, dans ce cas là, j'affiche le nombre d'heure de nuit, sinon, je n'affiche rien, pas 0, mais vide "".

SI(heureNuit > 0; heureNuit; "")

J'espère avoir été assez clair.

Cordialement

re bonjour jpbt84,

un grand merci pour ton explication, c'est super clair.

Je viens de constater une erreurs dans le calcul. si je commence ma journée vers 23h et que je la finis vers 7h il me compte 9h alors qu'il devrait trouver 8h et si je commence ma journée a 18h et que je finis a 3h, il me trouve 9h aussi alors qu'il faudrait 6h et si je commence a 23h et que je finis a 3h il me trouve aussi 9h au lieu de 4h.

Comment modifier la formule pour qu'elle prenne en compte toutes les situations ?

je te joins le tableau avec des nouveaux exemple d'horaire écrit en bleu.

cordialement

Bonsoir,

Citation

Je viens de constater une erreurs dans le calcul. si je commence ma journée vers 23h et que je la finis vers 7h il me compte 9h alors qu'il devrait trouver 8h et si je commence ma journée a 18h et que je finis a 3h, il me trouve 9h aussi alors qu'il faudrait 6h et si je commence a 23h et que je finis a 3h il me trouve aussi 9h au lieu de 4h.

Erreur de ta part puisque si je commence à 23h et fini à 7h il y a que 7heure et non 8h comme tu le prétends puisque l'heure de nuit est de 21h à 6h

Voir cet essai si fonctionnel à ta demande

Slts et bonne année 2025

Bonjour boss_68,

Exact grosse erreur de ma part !🤣

Je te remercie pour ton aide. cela fonctionne correctement. je vais pouvoir prendre mon temps à essayer de détailler chaque partie pour la comprendre et la reproduire pour d'autre situation.

bonne année 2025

cordialement

Rechercher des sujets similaires à "calcul heure nuit"