Calcolatore Giorni Lavorativi Excel
Calcola i giorni lavorativi tra due date escludendo festivi e weekend secondo le formule Excel NETWORKDAYS e NETWORKDAYS.INTL
Guida Completa: Formula Excel per Calcolo Giorni Lavorativi tra Due Date
Il calcolo dei giorni lavorativi tra due date è un’operazione fondamentale in ambito aziendale, soprattutto per la gestione di progetti, scadenze contrattuali e pianificazione delle risorse. Excel offre due funzioni principali per questo scopo: NETWORKDAYS e NETWORKDAYS.INTL, ognuna con caratteristiche specifiche che le rendono adatte a diversi scenari.
Differenze tra NETWORKDAYS e NETWORKDAYS.INTL
| Caratteristica | NETWORKDAYS | NETWORKDAYS.INTL |
|---|---|---|
| Giorni weekend predefiniti | Sabato e Domenica (fisso) | Configurabile tramite parametro |
| Flessibilità | Limitata ai weekend standard | Alta (può escludere qualsiasi combinazione di giorni) |
| Parametri | start_date, end_date, [holidays] | start_date, end_date, [weekend], [holidays] |
| Compatibilità | Tutte le versioni di Excel | Excel 2010 e successive |
| Uso tipico | Calcoli standard con weekend sabato/domenica | Scenario con weekend non standard (es. venerdì/sabato) |
Sintassi Dettagliata delle Funzioni
1. Funzione NETWORKDAYS
La sintassi base è:
=NETWORKDAYS(data_inizio; data_fine; [festivi])
- data_inizio: Data di inizio del periodo (obbligatorio)
- data_fine: Data di fine del periodo (obbligatorio)
- festivi: Intervallo opzionale contenente le date dei giorni festivi da escludere
Esempio pratico:
=NETWORKDAYS("01/01/2023"; "31/01/2023"; B2:B10)
Dove B2:B10 contiene l’elenco dei giorni festivi di gennaio.
2. Funzione NETWORKDAYS.INTL
La sintassi estesa è:
=NETWORKDAYS.INTL(data_inizio; data_fine; [fine_settimana]; [festivi])
- data_inizio e data_fine: Come nella funzione standard
- fine_settimana: Numero o stringa che specifica quali giorni sono considerati weekend:
- 1 o “0000011”: Sabato e Domenica (default)
- 2 o “0000001”: Solo Domenica
- 11 o “1000001”: Domenica e Lunedì
- 12 o “1000010”: Venerdì e Sabato
- … (altre combinazioni possibili)
- festivi: Come nella funzione standard
Esempio con weekend venerdì/sabato (paesi arabi):
=NETWORKDAYS.INTL("01/01/2023"; "31/01/2023"; 12; B2:B10)
Errori Comuni e Soluzioni
-
Errore #NUM!
Causa: La data di inizio è successiva alla data di fine.
Soluzione: Verificare l’ordine delle date o utilizzare la funzione ASS per gestire gli errori:
=SE.ERRORE(NETWORKDAYS(A1;B1); "Data non valida")
-
Errore #VALORE!
Causa: Una o più date non sono riconosciute come date valide.
Soluzione:
- Verificare il formato delle date (GG/MM/AAAA)
- Usare la funzione DATA per creare date da componenti separate:
=NETWORKDAYS(DATA(2023;1;1); DATA(2023;1;31))
-
Risultato inatteso con festivi
Causa: I festivi non sono nel formato corretto o non sono riconosciuti come date.
Soluzione:
- Assicurarsi che le celle dei festivi siano formattate come date
- Usare la funzione DATA per creare date di festivi:
=NETWORKDAYS(A1;B1; {DATA(2023;1;1); DATA(2023;1;6); DATA(2023;4;9)})
Applicazioni Pratiche in Ambito Aziendale
1. Gestione Progetti
Nel project management, il calcolo dei giorni lavorativi è essenziale per:
- Definire scadenze realistiche
- Calcolare il critical path escludendo weekend e festivi
- Assegnare risorse in base alla effettiva disponibilità
Esempio: Per calcolare la durata effettiva di un task che inizia il 15/03/2023 e finisce il 30/03/2023 escludendo i festivi italiani:
=NETWORKDAYS("15/03/2023"; "30/03/2023"; Festivi!A2:A20)
2. Calcolo Scadenze Contrattuali
Nel settore legale e finanziario, queste funzioni sono utilizzate per:
- Calcolare i giorni di preavviso in contratti di lavoro
- Determinare scadenze per pagamenti o penali
- Gestire termini di garanzia
| Scenario | Formula Excel | Risultato Atteso |
|---|---|---|
| Preavviso di 30 giorni lavorativi da 01/06/2023 | =LAVORO.GIORNO(“01/06/2023”; 30; Festivi!A:A) | 15/07/2023 (escludendo weekend e festivi) |
| Scadenza pagamento a 45 giorni lavorativi da 10/04/2023 | =LAVORO.GIORNO(“10/04/2023”; 45; Festivi!A:A) | 06/06/2023 |
| Durata garanzia (180 giorni lavorativi) da 01/01/2023 | =LAVORO.GIORNO(“01/01/2023”; 180; Festivi!A:A) | 15/11/2023 |
3. Pianificazione Risorse Umane
Nel settore HR, queste funzioni aiutano a:
- Calcolare i giorni di ferie residue
- Pianificare i turni di lavoro
- Gestire i permessi retribuiti
Esempio avanzato: Calcolo dei giorni di ferie residue considerando solo i giorni lavorativi:
=MAX(0; 20 - NETWORKDAYS(DATA.INIZIO.FERIE; DATA.FINE.FERIE; Festivi!A:A))
Ottimizzazione con Tabelle Excel
Per gestire efficacemente i giorni festivi, si consiglia di:
-
Creare una tabella dedicata
In un foglio separato (es. “Festivi”), creare una tabella con:
- Colonna A: Data del festivo
- Colonna B: Nome del festivo
- Colonna C: Tipologia (nazionale/locale)
Esempio di struttura:
Data Nome Festivo Tipologia 01/01/2023 Capodanno Nazionale 06/01/2023 Epifania Nazionale 10/04/2023 Pasqua Mobile -
Utilizzare nomi strutturati
Assegnare un nome all’intervallo dei festivi (es. “Festivi_2023”) per riferimento semplificato:
=NETWORKDAYS(A1; B1; Festivi_2023)
-
Automatizzare con Power Query
Per aziende con sedi in multiple nazioni, Power Query può:
- Importare automaticamente i festivi da fonti esterne
- Unire liste di festivi da diversi paesi
- Aggiornare dinamicamente le date in base all’anno
Confronto con Altri Metodi di Calcolo
| Metodo | Vantaggi | Svantaggi | Casi d’Uso Ideali |
|---|---|---|---|
| NETWORKDAYS |
|
|
|
| NETWORKDAYS.INTL |
|
|
|
| Calcolo manuale |
|
|
|
| VBA personalizzato |
|
|
|
Best Practice per l’Utilizzo Professionale
-
Documentare sempre le assunzioni
In un foglio di lavoro dedicato, annotare:
- Quali giorni sono considerati weekend
- Fonte dei dati sui festivi
- Eventuali eccezioni applicate
-
Validare i risultati
Confrontare sempre con:
- Calcoli manuali su periodi brevi
- Strumenti esterni (es. TimeandDate)
- Dati storici aziendali
-
Gestire i festivi mobili
Per festivi come Pasqua o Ponti:
- Usare funzioni ausiliarie per calcolare la data:
=DATA(ANNO; 3; 21 + RESTO(19*RESTO(ANNO;19)-INT((ANNO-19)/17)-INT((ANNO-16)/25)+INT((ANNO-16)/687);30))
- Oppure mantenere una tabella aggiornata annualmente
-
Considerare i fusi orari
Per aziende multinazionali:
- Convertire tutte le date in UTC o nel fuso orario di riferimento
- Usare la funzione
ORARIO.NUMEROper gestire le differenze
-
Ottimizzare le prestazioni
Per cartelle con molti calcoli:
- Usare riferimenti a intervalli nominati invece di indirizzi cellulari
- Limitare l’intervallo dei festivi agli anni rilevanti
- Considerare il calcolo manuale (F9) per report statici
Integrazione con Altri Strumenti Microsoft
1. Power BI
Per analisi avanzate:
- Importare i dati Excel in Power BI
- Creare una colonna calcolata con DAX equivalente:
NetworkDays =
VAR StartDate = 'Table'[StartDate]
VAR EndDate = 'Table'[EndDate]
VAR Holidays = CALCULATETABLE(VALUES('Holidays'[Date]))
RETURN
DATEDIFF(StartDate; EndDate; DAY) + 1
- COUNTROWS(FILTER(CALENDAR(StartDate; EndDate); WEEKDAY([Date]; 2) > 5))
- COUNTROWS(INTERSECT(CALENDAR(StartDate; EndDate); Holidays))
2. Power Automate
Per automatizzare processi:
- Creare un flow che:
- Prende date da un modulo
- Calcola i giorni lavorativi
- Invia una notifica con la scadenza
3. SharePoint
Per soluzioni collaborative:
- Creare una colonna calcolata in liste SharePoint:
=DATEDIF([StartDate];[EndDate];"d")+1
-INT((WEEKDAY([EndDate])-WEEKDAY([StartDate])+1+DATEDIF([StartDate];[EndDate];"d"))/7)*2
-IF(OR(WEEKDAY([StartDate])=1;WEEKDAY([StartDate])=7);1;0)
-IF(OR(WEEKDAY([EndDate])=1;WEEKDAY([EndDate])=7);1;0)
Domande Frequenti
1. Come gestire i giorni festivi che cadono di weekend?
In molti paesi (come l’Italia), quando un festivo cade di domenica, viene spesso “recuperato” il lunedì successivo. Per gestire questo scenario:
=SE(E(WEEKDAY(Festivo)=1); Festivo+1; Festivo)
Dove “Festivo” è la data del giorno festivo originale.
2. È possibile calcolare i giorni lavorativi tra due orari specifici?
Sì, combinando NETWORKDAYS con controlli sull’orario:
=SE(OR(ORA(Inizio)>17; ORA(Fine)<9);
NETWORKDAYS(Inizio; Fine) - 1;
NETWORKDAYS(Inizio; Fine))
Questa formula esclude il giorno se l'orario di inizio è dopo le 17 o l'orario di fine è prima delle 9.
3. Come gestire i giorni di ponte?
I "ponti" (giorni lavorativi tra un festivo e un weekend) possono essere gestiti in due modi:
- Metodo inclusivo: Considerarli come giorni lavorativi normali
- Metodo esclusivo: Aggiungerli manualmente all'elenco dei festivi:
=SE(E(WEEKDAY(Festivo+1)=2; WEEKDAY(Festivo)=6); Festivo+1; SE(E(WEEKDAY(Festivo-1)=6; WEEKDAY(Festivo)=2); Festivo-1; ""))
4. Qual è la differenza tra NETWORKDAYS e la semplice sottrazione di date?
La semplice sottrazione =B1-A1 restituisce il numero totale di giorni calendariali, includendo:
- Weekend (sabato e domenica)
- Giorni festivi
- Tutti i giorni intermedi
NETWORKDAYS invece:
- Esclude automaticamente sabato e domenica
- Può escludere ulteriori giorni festivi specificati
- Restituisce solo i giorni effettivamente lavorativi
5. Come gestire anni bisestili?
Le funzioni NETWORKDAYS gestiscono automaticamente gli anni bisestili. Il 29 febbraio viene trattato come qualsiasi altro giorno:
- Se cade in un weekend, viene escluso
- Se è un giorno festivo e viene incluso nell'elenco, viene escluso
- Altrimenti, viene contato come giorno lavorativo
Non è necessario alcun aggiustamento manuale per gli anni bisestili.
Conclusione
La corretta gestione dei giorni lavorativi è fondamentale per la pianificazione aziendale accurata. Le funzioni NETWORKDAYS e NETWORKDAYS.INTL di Excel offrono strumenti potenti per:
- Calcolare scadenze realistiche
- Ottimizzare la pianificazione delle risorse
- Migliorare la precisione nei report finanziari
- Garantire la conformità normativa
Per risultati ottimali:
- Mantenere sempre aggiornato l'elenco dei festivi
- Documentare chiaramente le regole applicate
- Validare i risultati con fonti esterne
- Considerare le specificità locali per aziende internazionali
Con queste funzioni e le best practice descritte, è possibile trasformare Excel in uno strumento professionale per la gestione del tempo lavorativo, adatto sia a piccole attività che a grandi organizzazioni multinazionali.