vendredi 23 novembre 2018

Excel formule de calcule d'heure en prenant en compte les jours et heures ouvrées

Bonjour,

Etant donné que j'ai un peu galéré à sortir cette formule, je ne voulais pas quelle reste dans l'oubli, alors autant la partager.

Ce qu'on veut, c'est connaître le nombre d'heure entre deux dates.

ex: (au format hh:mm)
A2 : 30/10/2018 16h03
B2 : 07/11/2018 8h09

Réflexion : il faut définir 2 cas.

1-si l'écart de temps est sur la même journée, durée entre le début et la fin
2-si l'écart de temps est sur plus d'une journée,durée pour le 1er jour (section 2A)+ le nombre de jours complets (section 2B)+durée pour le dernier jour (section 2C)

Du coup, il faut connaître les horaires d'ouvertures, donc les renseigner dans des cellules cachés. (ici en format standard)
Z1: 8
(pour ouverture à 8h)
Z2: 17
(pour fermeture à 17h)
Z3: Z1+Z2
(pour le nombre d'heures ouvrés par jour)

Pour ne compter QUE les jours ouvrés, il existe une formule excel : NB.JOURS.OUVRES.INTL(A2,B2)
 où A2 est la date de début et B2 la date de fin.

Section 2A:
((1/24*Z2)-(A2-ENT(A2))
((1/24*Z2) = horaire de fin de service (Z2) de service au format Heure (*1/24)
A2-ENT(A2) = (date heure - date) pour obtenir juste l'horaire de début d'action
 donc
((1/24*Z2)-(A2-ENT(A2)) = heure de fin de service - heure de début d'action.



Section 2B :
NB.JOURS.OUVRES.INTL(A2;B2)-2)/24*Z3)
NB.JOURS.OUVRES.INTL(A2;B2) = le nombre de jours ouvrés entre les dates
 -2 = pour ne pas prendre en compte le 1er et dernier jours qui sont tronqués
/24 =pour remettre en nombre d'heure et pas en nombre de jour
*Z3 = le nombre d'heure ouvrés par jour
NB.JOURS.OUVRES.INTL(A2;B2)-2)/24*Z3) = le nombre de jours où la plage est complete entre les dates

Section 2C :
(B2-ENT(B2))-(1/24*Z1))
(B2-ENT(B2) = (date heure - date) pour obtenir juste l'horaire de fin d'action
(1/24*Z1)=horaire de début de service (Z1) de service au format Heure (*1/24) 
(B2-ENT(B2))-(1/24*Z1))= heure de fin d'action - heure d'ouverture de service


Section 3:
(1/24/60) =Les arrondis des différents calculs font perdre 1 minute, on la rajoute.

Donc on additionne le nombre d'heure travaillé sur le 1er jour + le dernier jour + les jours complets entre le 1er et dernier jour.

=(((1/24*Z1)-(A2-ENT(A2)))+(B2-ENT(B2))-(1/24*Z2))+(((NB.JOURS.OUVRES.INTL(A2;B2)-2)/24*Z3)+(1/24/60))

Aucun commentaire:

Enregistrer un commentaire