Calcolo Giorni Lavorativi Tra Due Date Excel

Calcolatore Giorni Lavorativi tra Due Date (Excel)

Calcola precisamente i giorni lavorativi tra due date, escludendo festivi e weekend, con risultati compatibili con Excel. Ottimizzato per professionisti HR, project manager e contabili.

Risultati

Giorni Total: 0
Giorni Lavorativi: 0
Weekend Esclusi: 0
Festivi Esclusi: 0
Formula Excel:

Guida Completa al Calcolo dei Giorni Lavorativi tra Due Date in Excel

Il calcolo preciso dei giorni lavorativi tra due date è un’operazione fondamentale per professionisti in ambiti come risorse umane, gestione progetti, contabilità e logistica. Excel offre diverse funzioni per questo scopo, ma la loro corretta applicazione richiede la conoscenza di sintassi specifiche e la considerazione di variabili come festivi nazionali, weekend e giorni personalizzati.

Metodi Principali in Excel per Calcolare Giorni Lavorativi

  1. Funzione GIORNI.LAVORATIVI.TOT (Excel 2010 e successivi):
    • Sintassi: =GIORNI.LAVORATIVI.TOT(data_inizio; data_fine; [festivi])
    • Vantaggi: Include automaticamente sabati e domeniche come non lavorativi
    • Limitazioni: Richiede l’inserimento manuale dei festivi come intervallo
  2. Funzione GIORNI.LAVORATIVI (versioni precedenti):
    • Sintassi: =GIORNI.LAVORATIVI(data_inizio; data_fine; [festivi])
    • Differenza: Non considera il sabato come giorno non lavorativo per default
  3. Combinazione di funzioni per soluzioni personalizzate:
    • =GIORNI(data_fine; data_inizio) - (CONTA.SE(intervallo_festivi; ">="&data_inizio) - CONTA.SE(intervallo_festivi; ">="&data_fine))

Festivi Nazionali da Considerare (Italia 2024)

Data Nome Festività Tipo Note
01/01/2024 Capodanno Nazionale Fisso
06/01/2024 Epifania Nazionale Fisso
09/04/2024 Pasqua Religiosa Mobile
10/04/2024 Lunedì dell’Angelo Religiosa Mobile
25/04/2024 Festa della Liberazione Nazionale Fisso
01/05/2024 Festa del Lavoro Nazionale Fisso
02/06/2024 Festa della Repubblica Nazionale Fisso
15/08/2024 Ferragosto Nazionale Fisso
01/11/2024 Ognissanti Religiosa Fisso
08/12/2024 Immacolata Concezione Religiosa Fisso
25/12/2024 Natale Nazionale Fisso
26/12/2024 Santo Stefano Nazionale Fisso

Confronti Internazionali: Giorni Festivi per Paese (2024)

Paese Giorni Festivi Nazionali Giorni Festivi Regionali (media) Giorni Lavorativi Anno (escl. weekend)
Italia 12 2-4 251
Germania 9 3-5 253
Francia 11 1 250
Spagna 10 4-6 250
Regno Unito 8 1-2 256
Stati Uniti 10 0-1 260

Errori Comuni e Soluzioni

  1. Dimenticare di includere i festivi mobili:
    • Problema: Funzioni come GIORNI.LAVORATIVI.TOT non considerano automaticamente Pasqua e festività correlate
    • Soluzione: Creare una tabella separata con tutte le date mobili calcolate tramite formule come:
      • =DATA.ANO(anno; 4; 1) + (14 - SETTIMANA(DATA.ANO(anno; 4; 1); 2)) per Pasqua
  2. Confondere le funzioni GIORNI e GIORNI.LAVORATIVI:
    • Problema: =GIORNI(data_fine; data_inizio) restituisce TUTTI i giorni, inclusi weekend e festivi
    • Soluzione: Usare sempre GIORNI.LAVORATIVI.TOT per risultati accurati
  3. Formato date non riconosciuto:
    • Problema: Excel potrebbe interpretare erroneamente date in formato testo (es: “01/05/2024” come 1 maggio o 5 gennaio)
    • Soluzione: Usare =DATA.VALORE("01/05/2024") o formattare le celle come Data

Soluzioni Avanzate con Power Query

Per progetti complessi che richiedono il calcolo di giorni lavorativi su grandi dataset, Power Query offre soluzioni più efficienti:

  1. Creazione di una tabella calendario:
    • Generare una tabella con tutte le date dell’anno
    • Aggiungere colonne per:
      • Giorno della settimana (1-7)
      • Flag “Festivo” (SI/NO)
      • Flag “Lavorativo” (calcolato)
  2. Funzione personalizzata in M:
    (let
        StartDate = #date(2024, 1, 1),
        EndDate = #date(2024, 12, 31),
        // Lista festivi italiani 2024
        Holidays = {
            #date(2024, 1, 1), #date(2024, 1, 6), #date(2024, 4, 9), #date(2024, 4, 10),
            #date(2024, 4, 25), #date(2024, 5, 1), #date(2024, 6, 2), #date(2024, 8, 15),
            #date(2024, 11, 1), #date(2024, 12, 8), #date(2024, 12, 25), #date(2024, 12, 26)
        },
        // Genera lista date
        Dates = List.Dates(StartDate, Duration.Days(EndDate - StartDate) + 1, #duration(1,0,0,0)),
        // Aggiungi informazioni
        TableFromList = Table.FromList(Dates, Splitter.SplitByNothing(), {"Date"}, null, ExtraValues.Error),
        AddDayOfWeek = Table.AddColumn(TableFromList, "DayOfWeek", each Date.DayOfWeek([Date])),
        AddIsHoliday = Table.AddColumn(AddDayOfWeek, "IsHoliday", each List.Contains(Holidays, [Date])),
        AddIsWeekend = Table.AddColumn(AddIsHoliday, "IsWeekend", each [DayOfWeek] = 6 or [DayOfWeek] = 0),
        AddIsWorkingDay = Table.AddColumn(AddIsWeekend, "IsWorkingDay", each not ([IsHoliday] or [IsWeekend]))
    in
        AddIsWorkingDay)
                

Integrazione con Altri Strumenti

Il calcolo dei giorni lavorativi spesso deve essere integrato con altri sistemi:

  • Google Sheets:
    • Funzione equivalente: =NETWORKDAYS(start_date, end_date, [holidays])
    • Vantaggio: Condivisione in tempo reale e collaborazione
  • Python (Pandas):
    import pandas as pd
    from pandas.tseries.holiday import USFederalHolidayCalendar
    
    # Crea calendario festivi
    cal = USFederalHolidayCalendar()
    holidays = cal.holidays(start='2024-01-01', end='2024-12-31')
    
    # Calcola giorni lavorativi
    start_date = '2024-01-15'
    end_date = '2024-02-15'
    business_days = pd.bdate_range(start=start_date, end=end_date, freq='C', holidays=holidays)
    print(len(business_days))
                
  • JavaScript (per applicazioni web):
    • Librerie utili: date-fns, moment-business-days
    • Esempio con date-fns:
      import { eachDayOfInterval, isWeekend, isHoliday } from 'date-fns'
      import { itHolidays } from 'date-fns-holiday/it'
      
      const start = new Date(2024, 0, 15)
      const end = new Date(2024, 1, 15)
      let workingDays = 0
      
      eachDayOfInterval({ start, end }).forEach(date => {
        if (!isWeekend(date) && !isHoliday(date, itHolidays)) {
          workingDays++
        }
      })
                          

Fonti Ufficiali e Risorse Utili

Per dati aggiornati sui festivi nazionali e normative sul lavoro:

Domande Frequenti

  1. Come calcolare i giorni lavorativi tra due date includendo solo alcuni giorni della settimana?

    Usa la funzione =GIORNI.LAVORATIVI.INTL con il parametro weekend personalizzato:

    =GIORNI.LAVORATIVI.INTL(data_inizio; data_fine; [weekend]; [festivi])
    
    // Esempio: considera lavorativi solo lunedì, mercoledì e venerdì
    =GIORNI.LAVORATIVI.INTL(A1; B1; "0010111"; C1:C10)
                    

  2. È possibile calcolare le ore lavorative invece dei giorni?

    Sì, combinando le funzioni per giorni lavorativi con il calcolo delle ore:

    =GIORNI.LAVORATIVI.TOT(A1; B1) * 8  // Per 8 ore lavorative/giorno
                    
    Per orari variabili, crea una tabella con le ore per ciascun giorno e usa =SOMMA.PRODOTTO.

  3. Come gestire i festivi che cadono di sabato o domenica?

    In Italia, alcuni festivi (come il 25 aprile o il 1° maggio) che cadono di domenica vengono spesso “recuperati” il lunedì successivo. Per gestire questi casi:

    • Crea una tabella con le date effettive dei festivi “spostati”
    • Usa una funzione personalizzata in VBA per gestire le eccezioni

Conclusione e Best Practices

Il calcolo accurato dei giorni lavorativi è essenziale per:

  • Pianificazione progetti: Stima realistiche delle tempistiche
  • Gestione risorse umane: Calcolo ferie, permessi e straordinari
  • Logistica e supply chain: Programmazione consegne e scorte
  • Contabilità: Scadenze fiscali e pagamenti

Consigli finali:

  1. Mantieni sempre un calendario aggiornato dei festivi nazionali e regionali
  2. Per progetti internazionali, considera le differenze nei giorni festivi tra paesi
  3. Usa formule strutturate invece di valori hard-coded per facilitare gli aggiornamenti
  4. Documenta sempre le ipotesi di calcolo (es: “esclusi sabati e festivi nazionali”)
  5. Per analisi complesse, considera l’uso di Power BI o Tableau per visualizzazioni interattive

Leave a Reply

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