Formula Excel: ottieni ore di lavoro tra le date -

Sommario

Formula generica

=NETWORKDAYS(start,end,holidays)*hours

Sommario

Per calcolare il numero totale di ore lavorative tra due date, puoi utilizzare una formula basata sulla funzione NETWORKDAYS, dove "inizio" è la data di inizio, "fine" è la data di fine, "vacanze" è un intervallo che include date, e "ore" è il numero di ore lavorative in una giornata lavorativa. Nell'esempio mostrato, la formula in D7 è:

=NETWORKDAYS(B7,C7,holidays)*8

dove "vacanze" è l'intervallo denominato G6: G8.

Spiegazione

Questa formula utilizza la funzione GIORNI DI RETE per calcolare i giorni lavorativi totali tra due date, tenendo conto dei fine settimana e (facoltativamente) dei giorni festivi. Le vacanze, se fornite, devono essere un intervallo di date Excel valide. Una volta conosciuti i giorni lavorativi totali, vengono semplicemente moltiplicati per un numero fisso di ore giornaliere, 8 nell'esempio mostrato.

La funzione GIORNI RETE include la data di inizio e di fine nel calcolo ed esclude sia sabato che domenica per impostazione predefinita. La funzione escluderà anche le festività quando vengono fornite come argomento "festività" come intervallo di date valide.

In questo esempio mostrato, le prime due formule utilizzano la funzione GIORNI RETE.

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

Se la settimana lavorativa include giorni diversi dal lunedì al venerdì, è possibile passare alla funzione NETWORKDAYS.INTL, che fornisce un argomento "fine settimana" che può essere utilizzato per definire quali giorni della settimana sono giorni feriali e giorni del fine settimana. NETWORKDAYS.INTL può essere configurato proprio come NETWORKDAYS, ma fornisce un argomento aggiuntivo chiamato "weekend" per controllare quali giorni di una settimana sono considerati giorni lavorativi.

Le 4 formule successive utilizzano la funzione 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

Fare clic sui nomi delle funzioni sopra per saperne di più sulle opzioni di configurazione.

Orario di lavoro personalizzato

Questa formula presuppone che tutti i giorni lavorativi abbiano lo stesso numero di ore lavorative. Se devi calcolare le ore di lavoro con una pianificazione personalizzata in cui le ore di lavoro variano in base al giorno della settimana, puoi provare una formula come questa:

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

Puoi trovare una spiegazione qui.

Articoli interessanti...