Formula Excel Per Calcolo Giorni Lavorativi Tra Due Date

Calcolatore Giorni Lavorativi Excel

Calcola i giorni lavorativi tra due date escludendo festivi e weekend secondo le formule Excel NETWORKDAYS e NETWORKDAYS.INTL

Giorni totali tra le date 0
Giorni lavorativi (NETWORKDAYS) 0
Formula Excel NETWORKDAYS =NETWORKDAYS()
Giorni lavorativi personalizzati 0
Formula Excel NETWORKDAYS.INTL =NETWORKDAYS.INTL()
Giorni festivi esclusi 0

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

  1. 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")
  2. 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))

  3. 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:

  1. 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
  2. Utilizzare nomi strutturati

    Assegnare un nome all’intervallo dei festivi (es. “Festivi_2023”) per riferimento semplificato:

    =NETWORKDAYS(A1; B1; Festivi_2023)
  3. 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
  • Semplice da usare
  • Compatibile con tutte le versioni
  • Perfetta per weekend standard
  • Limitatata a sabato/domenica
  • Meno flessibile per scenari internazionali
  • Calcoli standard in Italia/Europa
  • Report interni con weekend tradizionali
NETWORKDAYS.INTL
  • Massima flessibilità
  • Supporta qualsiasi combinazione di weekend
  • Ideale per multinazionali
  • Richiede Excel 2010+
  • Sintassi più complessa
  • Aziende con sedi in paesi con weekend diversi
  • Progetti internazionali
Calcolo manuale
  • Controllo totale sul processo
  • Nessuna limitazione di versione
  • Error-prone
  • Lento per periodi lunghi
  • Difficile da mantenere
  • Calcoli una-tantum
  • Scenario con regole molto specifiche
VBA personalizzato
  • Massima personalizzazione
  • Può gestire logiche complesse
  • Automatizzabile
  • Richiede competenze di programmazione
  • Meno portabile
  • Rischio sicurezza macro
  • Soluzioni aziendali complesse
  • Integrazione con altri sistemi

Best Practice per l’Utilizzo Professionale

  1. Documentare sempre le assunzioni

    In un foglio di lavoro dedicato, annotare:

    • Quali giorni sono considerati weekend
    • Fonte dei dati sui festivi
    • Eventuali eccezioni applicate
  2. Validare i risultati

    Confrontare sempre con:

    • Calcoli manuali su periodi brevi
    • Strumenti esterni (es. TimeandDate)
    • Dati storici aziendali
  3. 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
  4. Considerare i fusi orari

    Per aziende multinazionali:

    • Convertire tutte le date in UTC o nel fuso orario di riferimento
    • Usare la funzione ORARIO.NUMERO per gestire le differenze
  5. 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:
    1. Prende date da un modulo
    2. Calcola i giorni lavorativi
    3. 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:

  1. Metodo inclusivo: Considerarli come giorni lavorativi normali
  2. 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:

  1. Mantenere sempre aggiornato l'elenco dei festivi
  2. Documentare chiaramente le regole applicate
  3. Validare i risultati con fonti esterne
  4. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *