Calcolare I Giorni Tra Due Date In Excel

Calcolatore Giorni Tra Due Date in Excel

Sì, includere la data finale

Risultato del Calcolo

0 giorni

Guida Completa: Come Calcolare i Giorni Tra Due Date in Excel

Excel offre diverse funzioni per calcolare la differenza tra due date, ognuna con specifiche caratteristiche che la rendono adatta a diversi scenari. Questa guida approfondita ti mostrerà come utilizzare ciascuna funzione, con esempi pratici e consigli per scegliere quella più adatta alle tue esigenze.

1. La Funzione GIORNI: Il Metodo Più Semplice

La funzione GIORNI (DAY in inglese) è la più semplice per calcolare la differenza tra due date. Restituisce semplicemente il numero di giorni tra due date, senza considerare formati particolari o giorni festivi.

Sintassi:

=GIORNI(data_fine; data_inizio)

Esempio: Se vuoi calcolare i giorni tra il 15/01/2023 e il 30/01/2023:

=GIORNI("30/01/2023"; "15/01/2023")

Risultato: 15 giorni

Nota Tecnica

Excel memorizza le date come numeri seriali a partire dal 1 gennaio 1900 (sistema Windows) o 1904 (sistema Mac). Il valore 1 rappresenta il 1 gennaio 1900, il valore 2 rappresenta il 2 gennaio 1900, e così via. Questo sistema permette a Excel di eseguire calcoli con le date.

Fonte: Microsoft Support – How Excel stores dates and times

2. La Funzione GIORNI360: Il Metodo Contabile

La funzione GIORNI360 (DAYS360 in inglese) è specificamente progettata per calcoli finanziari e contabili. Assume che ogni mese abbia 30 giorni e che un anno abbia 360 giorni, semplificando i calcoli degli interessi.

Sintassi:

=GIORNI360(data_inizio; data_fine; [metodo])

Parametri:

  • data_inizio: La data di inizio
  • data_fine: La data di fine
  • metodo (opzionale): Specificare FALSE (o 0) per il metodo europeo (inizio=30 se è l’ultimo giorno del mese), TRUE (o 1) per il metodo americano (inizio=30 se è il 31° giorno del mese)

Esempio: Calcolo tra il 31/01/2023 e il 28/02/2023 con metodo europeo:

=GIORNI360("31/01/2023"; "28/02/2023"; FALSE)

Risultato: 28 giorni (30-31 + 28)

3. La Funzione DATA.DIFF: La Più Flessibile

La funzione DATA.DIFF (DATEDIF in inglese) è una funzione “nascosta” in Excel che offre la massima flessibilità nel calcolare la differenza tra date. Può restituire la differenza in giorni, mesi o anni.

Sintassi:

=DATA.DIFF(data_inizio; data_fine; unità)

Parametri per l’unità:

  • “D”: Differenza in giorni
  • “M”: Differenza in mesi completi
  • “Y”: Differenza in anni completi
  • “YM”: Mesi rimanenti dopo anni completi
  • “MD”: Giorni rimanenti dopo mesi completi
  • “YD”: Giorni rimanenti dopo anni completi

Esempi:

=DATA.DIFF("15/01/2020"; "30/06/2023"; "D")  → 1261 giorni
=DATA.DIFF("15/01/2020"; "30/06/2023"; "Y")  → 3 anni
=DATA.DIFF("15/01/2020"; "30/06/2023"; "YM") → 5 mesi
=DATA.DIFF("15/01/2020"; "30/06/2023"; "MD") → 15 giorni

4. La Funzione GIORNI.LAVORATIVI: Escludere Weekend e Festivi

La funzione GIORNI.LAVORATIVI (NETWORKDAYS in inglese) è essenziale per calcolare i giorni lavorativi tra due date, escludendo automaticamente sabati e domeniche. Può anche escludere giorni festivi specifici.

Sintassi:

=GIORNI.LAVORATIVI(data_inizio; data_fine; [festivi])

Esempio: Calcolare i giorni lavorativi tra il 01/01/2023 e il 31/01/2023, escludendo il 6 gennaio (Epifania):

=GIORNI.LAVORATIVI("01/01/2023"; "31/01/2023"; {"01/01/2023"; "06/01/2023"})

Risultato: 21 giorni lavorativi (23 giorni totali – 2 festivi – 4 weekend)

5. Confronto Tra le Funzioni Excel per il Calcolo dei Giorni

Funzione Scopo Principale Include Data Fine? Considera Anni Bisestili? Esclude Weekend? Esclude Festivi? Precisone
GIORNI Differenza semplice in giorni No No No Giorni calendariali esatti
GIORNI360 Calcoli finanziari/contabili No No (360 giorni/anno) No No Approssimata (30 giorni/mese)
DATA.DIFF Differenza flessibile (giorni, mesi, anni) Configurabile No No Giorni calendariali esatti
GIORNI.LAVORATIVI Giorni lavorativi (esclude weekend) No Sì (opzionale) Giorni lavorativi esatti

6. Errori Comuni e Come Evitarli

Quando si lavorano con le date in Excel, è facile incorrere in errori. Ecco i più comuni e come evitarli:

  1. Formato delle celle non corretto:

    Assicurati che le celle contenenti date siano formattate come “Data”. Se Excel interpreta una data come testo, le funzioni non funzioneranno correttamente.

    Soluzione: Seleziona la cella → Formato Celle → Categoria “Data”.

  2. Date inserite come testo:

    Se digiti “01/02/2023” in una cella formattata come testo, Excel la tratterà come una stringa invece che come una data.

    Soluzione: Usa la funzione DATA.VALORE per convertire il testo in data:

    =DATA.VALORE("01/02/2023")
  3. Ordine errato degli argomenti:

    Molte funzioni richiedono che la data di inizio sia il primo argomento e la data di fine il secondo. Invertirle restituirà un numero negativo.

    Soluzione: Controlla sempre l’ordine: =GIORNI(data_fine; data_inizio).

  4. Differenze tra sistemi 1900 e 1904:

    Excel per Windows usa il sistema di data 1900, mentre Excel per Mac può usare il 1904. Questo può causare discrepanze di 4 anni nei calcoli.

    Soluzione: Vai su Preferenze → Calcolo → Seleziona “Sistema data 1900”.

  5. Fusi orari non considerati:

    Excel non gestisce automaticamente i fusi orari. Se lavori con date da diverse zone, devi convertire manualmente le ore.

    Soluzione: Usa la funzione ORA per aggiustare le differenze:

    =data + (ore/24)

7. Caso Pratico: Calcolare l’Età in Anni, Mesi e Giorni

Un’applicazione comune è calcolare l’età di una persona in anni, mesi e giorni. Ecco come fare con DATA.DIFF:

=DATA.DIFF(B2; OGGI(); "Y") & " anni, " &
DATA.DIFF(B2; OGGI(); "YM") & " mesi, e " &
DATA.DIFF(B2; OGGI(); "MD") & " giorni"

Dove B2 contiene la data di nascita.

Risultato esempio: “25 anni, 3 mesi, e 14 giorni”

8. Calcolare i Giorni tra Due Date in Diversi Formati

A volte potrebbe essere necessario presentare il risultato in formati diversi. Ecco alcuni esempi utili:

Formato Desiderato Formula Excel Esempio (01/01/2023 – 15/03/2023)
Giorni totali =GIORNI(“15/03/2023”; “01/01/2023”) 73 giorni
Settimane e giorni =QUOZIENTE(GIORNI(“15/03/2023”; “01/01/2023″);7) & ” settimane e ” & RESTO(GIORNI(“15/03/2023”; “01/01/2023″);7) & ” giorni” 10 settimane e 3 giorni
Mesi e giorni =DATA.DIFF(“01/01/2023”; “15/03/2023”; “M”) & ” mesi e ” & DATA.DIFF(“01/01/2023”; “15/03/2023”; “MD”) & ” giorni” 2 mesi e 14 giorni
Anni, mesi e giorni =DATA.DIFF(“01/01/2023”; “15/03/2023”; “Y”) & ” anni, ” & DATA.DIFF(“01/01/2023”; “15/03/2023”; “YM”) & ” mesi, e ” & DATA.DIFF(“01/01/2023”; “15/03/2023”; “MD”) & ” giorni” 0 anni, 2 mesi, e 14 giorni
Giorni lavorativi (escl. weekend) =GIORNI.LAVORATIVI(“01/01/2023”; “15/03/2023”) 51 giorni lavorativi
Percentuale dell’anno =GIORNI(“15/03/2023”; “01/01/2023”)/365 20.00% (arrotondato)

9. Automazione con Tabelle Pivot e Grafici

Puoi utilizzare le differenze tra date per creare analisi avanzate con Tabelle Pivot e grafici. Ecco un esempio pratico:

  1. Crea una tabella con colonne: ID Progetto, Data Inizio, Data Fine.
  2. Aggiungi una colonna calcolata per la durata:
    =GIORNI([Data Fine]; [Data Inizio])
  3. Crea una Tabella Pivot con:
    • Righe: Intervalli di durata (es: 0-30 giorni, 31-60 giorni, etc.)
    • Valori: Contea di ID Progetto
  4. Inserisci un Grafico a Istogramma per visualizzare la distribuzione delle durate.

Questo ti permetterà di analizzare quanto tempo mediamente richiedono i tuoi progetti e identificare eventuali outliers.

10. Integrazione con Power Query per Analisi Avanzate

Per dataset più complessi, Power Query offre funzionalità avanzate per manipolare le date:

  1. Importa i tuoi dati in Power Query (Dati → Ottieni Dati).
  2. Seleziona la colonna con la data e usa Aggiungi Colonna → Data → Differenza per calcolare la differenza con un’altra data.
  3. Puoi estrarre automaticamente:
    • Giorni totali
    • Anni completi
    • Mesi completi
    • Giorni rimanenti
  4. Carica i risultati in Excel per ulteriori analisi.

Power Query è particolarmente utile quando devi pulire dati con formati di data inconsistenti o quando lavori con grandi dataset.

11. Funzioni Avanzate: GIORNI.LAVORATIVI.INTL

La funzione GIORNI.LAVORATIVI.INTL (NETWORKDAYS.INTL) estende GIORNI.LAVORATIVI permettendo di definire quali giorni della settimana sono considerati weekend.

Sintassi:

=GIORNI.LAVORATIVI.INTL(data_inizio; data_fine; [weekend]; [festivi])

Parametri per [weekend]:

  • 1 o omesso: Sabato e Domenica (default)
  • 2: Domenica e Lunedì
  • 11: Solo Domenica
  • 12: Solo Lunedì
  • 13: Solo Martedì
  • 17: Solo Sabato
  • Puoi anche usare una stringa di 7 caratteri dove “0” è giorno lavorativo e “1” è weekend. Es: “0000011” per weekend Sabato-Domenica.

Esempio: Calcolare giorni lavorativi tra il 01/01/2023 e il 31/01/2023 con weekend Venerdì-Sabato (come in alcuni paesi mediorientali):

=GIORNI.LAVORATIVI.INTL("01/01/2023"; "31/01/2023"; 7)

Dove 7 corrisponde a Venerdì-Sabato come weekend.

Riferimento Accademico

Secondo uno studio dell’Università della California, Berkeley, l’uso corretto delle funzioni di data in Excel può ridurre gli errori nei report finanziari fino al 40%. La ricerca evidenzia che il 62% degli errori nei fogli di calcolo aziendali sono legati a calcoli temporali errati, spesso dovuti a una comprensione insufficienti delle funzioni per le date.

Fonte: UC Berkeley Haas School of Business – Spreadsheet Error Research

12. Best Practice per Lavorare con le Date in Excel

Segui queste best practice per evitare errori e massimizzare l’efficienza:

  1. Usa sempre il formato data standard:

    GG/MM/AAAA per l’Italia. Evita formati ambigui come MM/GG/AAAA che possono causare confusioni.

  2. Congela le date di riferimento:

    Quando usi una data in una formula che non deve cambiare (come una data di inizio progetto), usa il riferimento assoluto con $:

    =GIORNI(B2; $A$1)
  3. Documenta le tue formule:

    Aggiungi commenti alle celle complesse (Recensione → Nuovo Commento) per spiegare la logica, soprattutto se altri utenti utilizzeranno il tuo file.

  4. Valida sempre i dati:

    Usa la Convalida Dati (Dati → Convalida Dati) per assicurarti che le celle contengano solo date valide.

  5. Testa con date limite:

    Prova le tue formule con:

    • Date uguali (differenza = 0)
    • Date invertite (dovrebbe dare errore o valore negativo)
    • Date che includono anni bisestili (es: 28/02/2020 – 01/03/2020)
    • Date che attraversano la fine dell’anno

  6. Considera i fusi orari per dati internazionali:

    Se lavori con team globalizzati, assicurati che tutte le date siano normalizzate a un fuso orario di riferimento (es: UTC).

  7. Usa nomi descrittivi:

    Assegna nomi alle celle o agli intervalli (Formule → Definisci Nome) per rendere le formule più leggibili:

    =GIORNI(DataFine; DataInizio)

13. Errori di Excel con le Date e Come Risolverli

Excel può restituire diversi tipi di errori quando si lavorano con le date. Ecco i più comuni e come risolverli:

Errore Causa Probabile Soluzione
#VALORE! Una o entrambe le date non sono riconosciute come date valide (potrebbero essere testo).
  • Verifica che le celle siano formattate come “Data”.
  • Usa DATA.VALORE per convertire il testo in data.
  • Controlla che le date siano nel formato corretto (GG/MM/AAAA).
#NUM! La data è fuori dall’intervallo supportato da Excel (prima del 01/01/1900 o dopo il 31/12/9999).
  • Verifica che le date siano nell’intervallo valido.
  • Per date storiche, considera di usare un sistema di riferimento diverso (es: “Anno 1 = 2023”).
#NOME? Il nome della funzione è digitato erroneamente (es: “GIORN” invece di “GIORNI”).
  • Controlla l’ortografia della funzione.
  • Assicurati di usare il separatore corretto per gli argomenti (; per Italia, , per USA).
#DIV/0! Stai dividendo per zero, probabilmente perché la differenza è zero (date uguali).
  • Usa SEERRORE per gestire il caso:
  • =SEERRORE(valore/GIORNI(B2;A2); 0)
Risultato negativo La data di inizio è successiva alla data di fine.
  • Verifica l’ordine delle date.
  • Usa VAL.ASS per assicurarti che il risultato sia sempre positivo:
  • =VAL.ASS(GIORNI(B2;A2))
Risultato inatteso con GIORNI360 Il metodo contabile (360 giorni/anno) può dare risultati diversi dal calendario reale.
  • Usa GIORNI360 solo per calcoli finanziari standardizzati.
  • Per precisione, usa GIORNI o DATA.DIFF.

14. Alternative a Excel: Google Sheets e Python

Se Excel non soddisfa le tue esigenze, considera queste alternative:

Google Sheets

Google Sheets offre funzioni simili a Excel, con il vantaggio della collaborazione in tempo reale:

=DAYS(end_date, start_date)          // Equivalente a GIORNI
=DATEDIF(start_date, end_date, "D")  // Equivalente a DATA.DIFF
=NETWORKDAYS(start_date, end_date)  // Equivalente a GIORNI.LAVORATIVI
        

Python con Pandas

Per analisi più avanzate, Python offre grande flessibilità:

import pandas as pd

start = pd.to_datetime("2023-01-01")
end = pd.to_datetime("2023-01-31")
days_diff = (end - start).days
print(f"Differenza: {days_diff} giorni")
        

Vantaggi di Python:

  • Gestione avanzata dei fusi orari con pytz.
  • Calcoli con array di date (es: differenza tra migliaia di coppie di date in una sola operazione).
  • Integrazione con librerie di machine learning per previsioni temporali.

15. Domande Frequenti

D: Perché Excel mostra ###### invece della data?

R: Questo accade quando la colonna è troppo stretta per visualizzare la data. Allarga la colonna o riduci la dimensione del font. In alternativa, la cella potrebbe contenere una data negativa (prima del 1900), che Excel non gestisce.

D: Come calcolare la differenza tra date includendo l’orario?

R: Usa una semplice sottrazione tra le celle con data e ora. Excel gestisce automaticamente il calcolo:

=B2-A2

Formatta il risultato come [h]:mm:ss per vedere le ore totali, o gg hh:mm:ss per giorni + ore.

D: Posso calcolare la differenza tra date in ore o minuti?

R: Sì, moltiplica la differenza in giorni per 24 (ore) o 1440 (minuti):

=GIORNI(B2;A2)*24  // Differenza in ore
=GIORNI(B2;A2)*1440 // Differenza in minuti
        

D: Come gestire i giorni festivi variabili (es: Pasqua)?

R: Per giorni festivi che cambiano ogni anno (come Pasqua o Lunedì di Pasqua), puoi:

  1. Creare una tabella con le date esatte per ogni anno.
  2. Usare una formula per calcolare la Pasqua (complessa, ma possibile).
  3. Utilizzare un add-in come “Holiday List” che aggiorna automaticamente i festivi.

D: Perché DATA.DIFF non appare nell’elenco delle funzioni?

R: DATA.DIFF è una funzione “nascosta” per compatibilità con Lotus 1-2-3. Non appare nell’elenco delle funzioni, ma puoi digitarla manualmente e funzionerà correttamente.

D: Come calcolare l’età in anni compiuti?

R: Usa questa formula:

=SE(MESE(OGGI())>MESE(B2); ANNO(OGGI())-ANNO(B2); SE(MESE(OGGI())=MESE(B2); SE(GIORNO(OGGI())>=GIORNO(B2); ANNO(OGGI())-ANNO(B2); ANNO(OGGI())-ANNO(B2)-1); ANNO(OGGI())-ANNO(B2)-1))

Dove B2 contiene la data di nascita.

16. Risorse Utili

Per approfondire:

Standard Internazionali per le Date

Secondo lo standard ISO 8601, adottato come standard internet (RFC 3339), le date dovrebbero essere rappresentate nel formato AAAA-MM-GG (es: 2023-12-31). Questo formato è non ambiguo e facilmente ordinabile. Excel supporta questo formato, che è particolarmente utile per l’interoperabilità con altri sistemi.

Fonte: ISO 8601 – Date and time format

Leave a Reply

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