Calcolatore Giorni Lavorativi Excel
Calcola i giorni lavorativi tra due date, escludendo festivi e weekend secondo le regole italiane.
Guida Completa: Come Calcolare i Giorni Lavorativi tra Due Date con Excel
Calcolare i giorni lavorativi tra due date è un’operazione fondamentale per la gestione dei progetti, la pianificazione delle scadenze e la gestione delle risorse umane. Excel offre diverse funzioni per eseguire questo calcolo in modo preciso, tenendo conto dei weekend e dei giorni festivi.
Metodi Principali in Excel
-
Funzione GIORNI.LAVORATIVI.TOT
La funzione più completa è GIORNI.LAVORATIVI.TOT, che consente di specificare sia il range di date che i giorni festivi da escludere. La sintassi è:
GIORNI.LAVORATIVI.TOT(data_inizio; data_fine; [festivi])
Dove
[festivi]è un intervallo opzionale che contiene le date dei giorni festivi. -
Funzione GIORNI.LAVORATIVI
Per versioni precedenti di Excel, è possibile utilizzare GIORNI.LAVORATIVI:
GIORNI.LAVORATIVI(data_inizio; data_fine; [festivi])
Questa funzione non tiene conto degli anni bisestili, quindi per calcoli precisi su periodi lunghi è preferibile utilizzare
GIORNI.LAVORATIVI.TOT. -
Combinazione di Funzioni
Per soluzioni personalizzate, è possibile combinare funzioni come
GIORNO.SETTIMANAeCONTA.SEper creare formule su misura.
Passo dopo Passo: Calcolo con GIORNI.LAVORATIVI.TOT
-
Preparare i dati
Inserisci la data di inizio in una cella (es. A1) e la data di fine in un’altra cella (es. B1).
-
Creare l’elenco dei festivi
In un intervallo separato (es. D1:D20), inserisci tutte le date dei giorni festivi nazionali e regionali. Ad esempio:
- 01/01/2023 – Capodanno
- 06/01/2023 – Epifania
- 25/04/2023 – Festa della Liberazione
- 01/05/2023 – Festa del Lavoro
- 02/06/2023 – Festa della Repubblica
- 15/08/2023 – Ferragosto
- 01/11/2023 – Ognissanti
- 08/12/2023 – Immacolata Concezione
- 25/12/2023 – Natale
- 26/12/2023 – Santo Stefano
-
Applicare la funzione
In una cella vuota (es. C1), inserisci la formula:
=GIORNI.LAVORATIVI.TOT(A1; B1; D1:D20)
Questa formula calcolerà automaticamente i giorni lavorativi tra le due date, escludendo weekend e festivi.
Gestione dei Festivi Regionali
In Italia, ogni regione ha i propri giorni festivi. Ad esempio:
| Regione | Festività Regionale | Data 2023 |
|---|---|---|
| Lombardia | Sant’Ambrogio | 07/12/2023 |
| Veneto | Festa del Santo Patrono | 25/04/2023 (San Marco) |
| Emilia-Romagna | San Giuseppe | 19/03/2023 |
| Lazio | San Pietro e Paolo | 29/06/2023 |
| Toscana | San Giovanni Battista | 24/06/2023 |
| Sicilia | Festa di Santa Lucia | 13/12/2023 |
| Sardegna | San Efisio | 01/05/2023 |
Per includere questi festivi regionali, è necessario aggiungerli manualmente all’elenco dei festivi nel foglio Excel. Ad esempio, per la Lombardia:
=GIORNI.LAVORATIVI.TOT(A1; B1; D1:D21)
Dove D21 contiene la data del 7 dicembre (Sant’Ambrogio).
Calcolo dei Giorni Lavorativi con Power Query
Per analisi più complesse, è possibile utilizzare Power Query in Excel:
- Vai su
Dati > Ottieni dati > Da altre origini > Intervallo vuoto. - Crea una tabella con tutte le date tra l’inizo e la fine del periodo.
- Aggiungi una colonna personalizzata per identificare i weekend:
- Filtra i weekend e i festivi per ottenere il conteggio dei giorni lavorativi.
= if Date.DayOfWeek([Date]) = 6 or Date.DayOfWeek([Date]) = 0 then "Weekend" else "Giorno feriale"
Confronti tra Metodi
| Metodo | Vantaggi | Svantaggi | Precisione |
|---|---|---|---|
| GIORNI.LAVORATIVI.TOT | Semplice, integrato in Excel | Richiede elenco festivi manuale | ⭐⭐⭐⭐⭐ |
| Power Query | Flessibile, gestisce dati complessi | Curva di apprendimento più ripida | ⭐⭐⭐⭐⭐ |
| VBA | Automazione avanzata | Richiede competenze di programmazione | ⭐⭐⭐⭐⭐ |
| Formula personalizzata | Adattabile a esigenze specifiche | Complessità nella manutenzione | ⭐⭐⭐ |
Errori Comuni e Soluzioni
-
Errore #NUM!
Cause: Data di fine precedente alla data di inizio.
Soluzione: Verificare l’ordine delle date o utilizzare
SEper gestire l’errore:=SE(A1>B1; "Errore date"; GIORNI.LAVORATIVI.TOT(A1; B1; D1:D20))
-
Conteggio errato dei festivi
Cause: Formato delle date non riconosciuto o festivi non aggiornati.
Soluzione: Assicurarsi che tutte le date siano nel formato
gg/mm/aaaae che l’elenco dei festivi sia completo. -
Differenze tra GIORNI.LAVORATIVI e GIORNI.LAVORATIVI.TOT
Cause: Le due funzioni gestiscono diversamente gli anni bisestili.
Soluzione: Utilizzare sempre
GIORNI.LAVORATIVI.TOTper periodi che includono il 29 febbraio.
Automazione con VBA
Per utenti avanzati, è possibile creare una funzione personalizzata in VBA per calcolare automaticamente i giorni lavorativi, includendo i festivi nazionali e regionali:
Function GiorniLavorativi(StartDate As Date, EndDate As Date, Optional Region As String = "Nazionale") As Long
Dim TotalDays As Long, Holidays As Long
Dim CurrentDate As Date
Dim NationalHolidays, RegionalHolidays As Variant
' Elenco festivi nazionali (formato gg/mm)
NationalHolidays = Array("01/01", "06/01", "25/04", "01/05", "02/06", "15/08", "01/11", "08/12", "25/12", "26/12")
' Elenco festivi regionali
Select Case Region
Case "Lombardia"
RegionalHolidays = Array("07/12")
Case "Veneto"
RegionalHolidays = Array("25/04")
' Aggiungi altre regioni...
Case Else
RegionalHolidays = Array()
End Select
TotalDays = 0
CurrentDate = StartDate
Do While CurrentDate <= EndDate
' Controlla se non è weekend
If Weekday(CurrentDate, vbMonday) < 6 Then
' Controlla se non è festivo nazionale
If Not IsHoliday(CurrentDate, NationalHolidays) Then
' Controlla se non è festivo regionale
If Not IsHoliday(CurrentDate, RegionalHolidays) Then
TotalDays = TotalDays + 1
End If
End If
End If
CurrentDate = CurrentDate + 1
Loop
GiorniLavorativi = TotalDays
End Function
Function IsHoliday(TestDate As Date, HolidaysArray As Variant) As Boolean
Dim i As Integer, HolidayDate As String
IsHoliday = False
For i = LBound(HolidaysArray) To UBound(HolidaysArray)
HolidayDate = HolidaysArray(i) & "/" & Year(TestDate)
If Format(TestDate, "dd/mm/yyyy") = HolidayDate Then
IsHoliday = True
Exit Function
End If
Next i
End Function
Per utilizzare questa funzione:
- Premi
ALT + F11per aprire l'editor VBA. - Vai su
Inserisci > Moduloe incolla il codice. - Chiudi l'editor e torna a Excel.
- Ora puoi utilizzare
=GiorniLavorativi(A1; B1; "Lombardia")nelle tue formule.
Integrazione con Altri Strumenti
Excel può essere integrato con altri strumenti per una gestione avanzata dei giorni lavorativi:
-
Microsoft Project
Per la pianificazione di progetti complessi, MS Project offre funzionalità avanzate per la gestione dei calendari lavorativi, inclusi festivi e orari personalizzati.
-
Google Sheets
La funzione equivalente in Google Sheets è
NETWORKDAYS:=NETWORKDAYS(A1, B1, D1:D20)
-
Power BI
Per analisi dati avanzate, Power BI offre funzioni DAX come
NETWORKDAYSper calcoli simili.
Risorse Ufficiali e Normative
Per un elenco completo e aggiornato dei giorni festivi in Italia, è possibile consultare:
- Gazzetta Ufficiale della Repubblica Italiana - Pubblica i decreti ufficiali relativi ai giorni festivi nazionali.
- ISTAT (Istituto Nazionale di Statistica) - Fornisce dati e calendari ufficiali utilizzati per scopi statistici e amministrativi.
- Ministero del Lavoro e delle Politiche Sociali - Offre linee guida sulla gestione dei giorni lavorativi e festivi nel contesto del diritto del lavoro.
Secondo il Decreto Legislativo 8 aprile 2003, n. 66 (Codice delle leggi sui rapporti di lavoro), i giorni festivi infrasettimanali sono considerati non lavorativi a tutti gli effetti, con eccezioni per specifici settori come la sanità e i servizi essenziali.
Casi Pratici e Esempi
Esempio 1: Calcolo per un progetto di 3 mesi
Supponiamo di avere un progetto che inizia il 15 marzo 2023 e termina il 15 giugno 2023, in Lombardia. Utilizzando la formula:
=GIORNI.LAVORATIVI.TOT("15/03/2023"; "15/06/2023"; D1:D21)
Dove D1:D21 contiene i festivi nazionali + Sant'Ambrogio (7 dicembre), otteniamo 66 giorni lavorativi.
Esempio 2: Scadenza contrattuale
Un contratto prevede una consegna entro 20 giorni lavorativi dal 10 ottobre 2023. Per calcolare la data di scadenza:
=LAVORATIVO("10/10/2023"; 20; D1:D20)
La funzione LAVORATIVO restituisce la data di scadenza, che in questo caso sarebbe il 13 novembre 2023 (escludendo weekend e festivi come Ognissanti il 1° novembre).
Ottimizzazione per Grandi Dataset
Quando si lavora con grandi volumi di date (ad esempio, calcolare i giorni lavorativi per migliaia di record), è importante ottimizzare le prestazioni:
-
Evita riferimenti volatili
Funzioni come
OGGI()oORA()costringono Excel a ricalcolare frequentemente. Utilizza date fisse quando possibile. -
Utilizza tabelle strutturate
Converti i tuoi dati in una
Tabella di Excel(premiCTRL + T) per migliorare la gestione dei riferimenti. -
Limita l'intervallo dei festivi
Invece di includere tutti i festivi possibili, filtra solo quelli nel range di date analizzato.
-
Disattiva il calcolo automatico
Durante l'inserimento di grandi quantità di formule, passa a calcolo manuale (
Formule > Opzioni di calcolo > Manuale) e aggiorna solo quando necessario (F9).
Differenze tra Excel e Altri Strumenti
| Strumento | Funzione | Gestione Festivi | Note |
|---|---|---|---|
| Excel | GIORNI.LAVORATIVI.TOT | Elenco manuale | Flessibile, integrato con altre funzioni |
| Google Sheets | NETWORKDAYS | Elenco manuale | Collaborativo, accessibile da qualsiasi dispositivo |
| Microsoft Project | Calendari personalizzati | Gestione avanzata (orari, turni, eccezioni) | Ideale per project management |
| Python (pandas) | bdate_range | Librerie esterne (es. workalendar) | Potente per analisi dati su larga scala |
| SQL (PostgreSQL) | Funzioni personalizzate | Tabelle di riferimento | Adatto per applicazioni database |
Conclusione
Il calcolo dei giorni lavorativi in Excel è uno strumento essenziale per professionisti in ambiti come la gestione dei progetti, le risorse umane e la logistica. Utilizzando le funzioni integrate come GIORNI.LAVORATIVI.TOT e combinandole con elenchi accurati di festivi nazionali e regionali, è possibile ottenere risultati precisi e affidabili.
Per esigenze più complesse, soluzioni come Power Query, VBA o l'integrazione con altri strumenti come Microsoft Project possono offrire flessibilità e automazione aggiuntive. Ricordati sempre di:
- Verificare l'accuratezza dei dati di input.
- Aggiornare annualmente l'elenco dei festivi.
- Testare le formule con casi reali per validare i risultati.
- Documentare chiaramente le assunzioni e i criteri utilizzati nei calcoli.
Con queste conoscenze, sarai in grado di gestire efficacemente qualsiasi calcolo relativo ai giorni lavorativi, sia per scopi personali che professionali.