Formule Excel: obtenir des heures de travail entre les dates -

Table des matières

Formule générique

=NETWORKDAYS(start,end,holidays)*hours

Sommaire

Pour calculer le nombre total d'heures de travail entre deux dates, vous pouvez utiliser une formule basée sur la fonction JOURS RÉSEAU, où "début" est la date de début, "fin" est la date de fin, "jours fériés" est une plage qui comprend des dates, et «heures» est le nombre d'heures de travail dans une journée de travail. Dans l'exemple illustré, la formule en D7 est:

=NETWORKDAYS(B7,C7,holidays)*8

où "vacances" est la plage nommée G6: G8.

Explication

Cette formule utilise la fonction JOURS RÉSEAU pour calculer le nombre total de jours ouvrables entre deux dates, en tenant compte des week-ends et (éventuellement) des jours fériés. Les jours fériés, s'ils sont fournis, doivent être une plage de dates Excel valides. Une fois que le nombre total de jours de travail est connu, il est simplement multiplié par un nombre fixe d'heures par jour, 8 dans l'exemple présenté.

La fonction JOURS RÉSEAU inclut à la fois la date de début et de fin dans le calcul et exclut le samedi et le dimanche par défaut. La fonction exclura également les jours fériés lorsqu'ils sont alors fournis comme argument "jours fériés" sous la forme d'une plage de dates valides.

Dans cet exemple illustré, les deux premières formules utilisent la fonction JOURS RÉSEAU.

D6=NETWORKDAYS(B6,C6)*8 // no holidays D7=NETWORKDAYS(B7,C7,holidays)*8 // holidays provided

Si votre semaine de travail comprend des jours autres que du lundi au vendredi, vous pouvez basculer vers la fonction NETWORKDAYS.INTL, qui fournit un argument "week-end" qui peut être utilisé pour définir quels jours de la semaine sont des jours ouvrés et des jours de week-end. NETWORKDAYS.INTL peut être configuré comme NETWORKDAYS, mais il fournit un argument supplémentaire appelé «weekend» pour contrôler quels jours de la semaine sont considérés comme des jours ouvrables.

Les 4 formules suivantes utilisent la fonction NETWORKDAYS.INTL:

D8=NETWORKDAYS.INTL(B8,C8)*8 // Mon-Fri, no holidays D9=NETWORKDAYS.INTL(B9,C9,11)*8 // Mon-Sat, no holidays D10=NETWORKDAYS.INTL(B10,C10)*8 // M-F, no holidays D11=NETWORKDAYS.INTL(B11,C11,1,holidays)*8 // M-F, w/ holidays

Cliquez sur les noms des fonctions ci-dessus pour en savoir plus sur les options de configuration.

Horaire de travail personnalisé

Cette formule suppose que tous les jours ouvrables ont le même nombre d'heures de travail. Si vous avez besoin de calculer les heures de travail avec un horaire personnalisé où les heures de travail varient en fonction du jour de la semaine, vous pouvez essayer une formule comme celle-ci:

=SUMPRODUCT(MID(schedule,WEEKDAY(ROW(INDIRECT(start&":"&end))),1)*ISNA(MATCH(ROW(INDIRECT(start&":"&end)),holidays,0)))

Vous pouvez trouver une explication ici.

Articles intéressants...