Calcolatore del Tempo tra Due Date in Excel
Guida Completa: Come Calcolare il Tempo tra Due Date in Excel
Calcolare la differenza tra due date è un’operazione fondamentale in Excel, utile per la gestione di progetti, il calcolo di scadenze, l’analisi di dati temporali e molto altro. Questa guida approfondita ti mostrerà tutti i metodi disponibili, dalle funzioni di base alle tecniche avanzate, con esempi pratici e consigli per evitare errori comuni.
Metodo 1: Utilizzare la Funzione DATEDIF
La funzione DATEDIF (Data Difference) è lo strumento più potente di Excel per calcolare la differenza tra due date. Nonostante non sia documentata nella guida ufficiale di Excel, è pienamente supportata e offre una flessibilità eccezionale.
Sintassi:
=DATEDIF(data_inizio; data_fine; unità)
Parametri:
- data_inizio: La data di inizio (deve essere minore della data di fine)
- data_fine: La data di fine
- unità: Il tipo di differenza da calcolare (vedi tabella sotto)
| Unità | Descrizione | Esempio | Risultato |
|---|---|---|---|
| “D” | Giorni completi tra le due date | =DATEDIF(“15/01/2023″;”20/03/2023″;”D”) | 64 |
| “M” | Mesi completi tra le due date | =DATEDIF(“15/01/2023″;”20/03/2023″;”M”) | 2 |
| “Y” | Anni completi tra le due date | =DATEDIF(“15/01/2020″;”20/03/2023″;”Y”) | 3 |
| “YM” | Mesi rimanenti dopo gli anni completi | =DATEDIF(“15/01/2020″;”20/03/2023″;”YM”) | 2 |
| “MD” | Giorni rimanenti dopo i mesi completi | =DATEDIF(“15/01/2023″;”20/03/2023″;”MD”) | 5 |
| “YD” | Giorni rimanenti dopo gli anni completi | =DATEDIF(“15/01/2020″;”20/03/2023″;”YD”) | 69 |
Metodo 2: Sottrazione Diretta delle Date
Excel memorizza le date come numeri seriali (a partire dal 1 gennaio 1900), quindi puoi semplicemente sottrarre una data dall’altra per ottenere il numero di giorni:
=data_fine - data_inizio
Esempio:
=B2-A2 // Se A2 contiene "15/01/2023" e B2 contiene "20/03/2023"
Risultato: 64 (giorni)
Nota: Il risultato sarà in giorni. Per convertire in altre unità:
- Settimane:
= (B2-A2)/7 - Mesi:
= DATEDIF(A2;B2;"M")(più affidabile) - Anni:
= DATEDIF(A2;B2;"Y")
Metodo 3: Funzioni DAYS, DAYS360, YEARFRAC
Excel offre altre funzioni specifiche per il calcolo delle differenze tra date:
-
DAYS (Excel 2013 e successivi):
=DAYS(data_fine; data_inizio)Restituisce il numero di giorni tra due date (equivalente a
data_fine - data_inizio). -
DAYS360:
=DAYS360(data_inizio; data_fine; [metodo])Calcola la differenza in giorni assumendo un anno di 360 giorni (12 mesi da 30 giorni), utile per calcoli finanziari.
Metodi:
- FALSE o omesso: Metodo europeo (inizio e fine del mese trattati come 30)
- TRUE: Metodo USA (se la data di inizio è l’ultimo giorno del mese, viene trattata come 30; se la data di fine è l’ultimo giorno del mese e la data di inizio è prima del 30, la data di fine viene trattata come il 1° del mese successivo)
-
YEARFRAC:
=YEARFRAC(data_inizio; data_fine; [base])Restituisce la frazione di anno tra due date. Utile per calcoli di interessi o ammortamenti.
Basi:
- 0 o omesso: USA (NASD) 30/360
- 1: Reale/reale
- 2: Reale/360
- 3: Reale/365
- 4: Europea 30/360
| Funzione | Esempio | Risultato | Utilizzo Tipico |
|---|---|---|---|
| DAYS | =DAYS(“20/03/2023″;”15/01/2023”) | 64 | Calcolo giorni esatti |
| DAYS360 | =DAYS360(“15/01/2023″;”20/03/2023”;FALSE) | 65 | Calcoli finanziari |
| YEARFRAC | =YEARFRAC(“15/01/2023″;”20/03/2023”;1) | 0.175 | Calcolo frazioni di anno |
Metodo 4: Calcolo con Ore, Minuti e Secondi
Se hai bisogno di calcolare differenze con precisione oraria, puoi combinare date e ore:
=(data_fine + ora_fine) - (data_inizio + ora_inizio)
Esempio:
= (B2 + C2) - (A2 + B2)
Dove:
- A2 = “15/01/2023”
- B2 = “10:30:00” (ora di inizio)
- C2 = “20/03/2023”
- D2 = “15:45:00” (ora di fine)
Per estrarre ore, minuti o secondi dal risultato:
- Ore:
=HOUR(risultato) - Minuti:
=MINUTE(risultato) - Secondi:
=SECOND(risultato)
Errori Comuni e Come Evitarli
Ecco gli errori più frequenti quando si calcolano differenze tra date in Excel e come risolverli:
-
#NUM! quando la data di fine è precedente alla data di inizio
Soluzione: Verifica l’ordine delle date o usa
=ABS(data_fine - data_inizio)per ottenere sempre un valore positivo. -
Risultati errati con date in formato testo
Soluzione: Converti il testo in data reale con
=DATA.VALORE("15/01/2023")o usa la funzione=DATA:=DATA(2023; 1; 15) // 15 gennaio 2023 -
DATEDIF restituisce #NUM! con unità non valide
Soluzione: Usa solo le unità supportate: “D”, “M”, “Y”, “YM”, “MD”, “YD”.
-
Problemi con gli anni bisestili
Soluzione: Excel gestisce automaticamente gli anni bisestili. Se hai bisogno di un calcolo specifico, usa
YEARFRACcon la base appropriata. -
Formato della cella non adatto
Soluzione: Se il risultato è un numero ma vuoi visualizzarlo come data, cambia il formato della cella in “Data” (Ctrl+1).
Calcolare la Differenza tra Date e Ore in Excel
Per calcoli che includono sia la data che l’ora, segui questi passaggi:
- Inserisci data e ora nella stessa cella (es. “15/01/2023 14:30”) o in celle separate.
- Sottrai direttamente le due celle:
=(B2 + C2) - (A2 + B2) - Formatta il risultato come “[h]:mm:ss” per visualizzare correttamente le ore oltre le 24.
Esempio pratico:
| Data Inizio | Ora Inizio | Data Fine | Ora Fine | Formula | Risultato |
|---|---|---|---|---|---|
| 15/01/2023 | 09:00 | 20/01/2023 | 17:30 | = (C2 + D2) – (A2 + B2) | 128:30:00 (5 giorni e 8 ore) |
Calcolare l’Età in Anni, Mesi e Giorni
Per calcolare l’età esatta in anni, mesi e giorni, combina più funzioni DATEDIF:
=DATEDIF(A2; OGGI(); "Y") & " anni, " & DATEDIF(A2; OGGI(); "YM") & " mesi, " & DATEDIF(A2; OGGI(); "MD") & " giorni"
Esempio: Se A2 contiene “15/05/1985” e oggi è “20/03/2023”, il risultato sarà:
37 anni, 10 mesi, 5 giorni
Calcolare i Giorni Lavorativi (Escludendo Festivi)
Per calcolare i giorni lavorativi tra due date, escludendo sabato, domenica e festivi:
=GIORNI.LAVORATIVI(data_inizio; data_fine; [festivi])
Esempio:
=GIORNI.LAVORATIVI("15/01/2023"; "20/03/2023"; B2:B10)
Dove B2:B10 contiene un elenco di date festive.
Per includere anche il sabato come giorno lavorativo:
=GIORNI.LAVORATIVI.INTL(data_inizio; data_fine; [fine_settimana]; [festivi])
Dove [fine_settimana] può essere:
- 1: Sabato e Domenica (predefinito)
- 2: Domenica e Lunedì
- 11: Solo Domenica
Calcolare la Percentuale di Completamento tra Due Date
Per visualizzare la percentuale di tempo trascorso tra due date (utile per progetti):
= (OGGI() - data_inizio) / (data_fine - data_inizio)
Formatta la cella come “Percentuale” per visualizzare il risultato come 25%, 50%, ecc.
Esempio con formattazione condizionale:
- Seleziona la cella con la percentuale.
- Vai su “Formattazione condizionale” > “Nuova regola”.
- Scegli “Formato solo celle che contengono”.
- Imposta:
- Formato solo celle con: “valore della cella” “maggiore di” “0,9”
- Formato: sfondo verde
- Aggiungi un’altra regola per valori inferiori a 0,5 con sfondo rosso.
Creare un Grafico della Timeline tra Due Date
Per visualizzare graficamente la differenza tra due date:
- Crea una tabella con tre colonne: Fase, Data Inizio, Durata (giorni).
- Calcola la durata con
=data_fine - data_inizio. - Seleziona i dati e inserisci un grafico a barre.
- Personalizza l’asse X per mostrare le date.
Esempio:
| Fase | Data Inizio | Data Fine | Durata (giorni) |
|---|---|---|---|
| Fase 1 | 01/01/2023 | 15/01/2023 | =C2-B2 |
| Fase 2 | 16/01/2023 | 31/01/2023 | =C3-B3 |
Usa questi dati per creare un grafico a cascata (Excel 2016 e successivi) per visualizzare la timeline del progetto.
Automatizzare i Calcoli con le Tabelle di Excel
Converti il tuo intervallo di dati in una Tabella di Excel (Ctrl+T) per:
- Calcoli automatici quando aggiungi nuove righe.
- Riferimenti strutturati (es.
=DATEDIF([@[Data Inizio]];[@[Data Fine]];"D")). - Formattazione automatica.
Esempio:
=DATEDIF([@[Data Inizio]];[@[Data Fine]];"D") & " giorni"
Funzioni Avanzate: NETWORKDAYS e WORKDAY
Per calcoli più complessi con giorni lavorativi:
-
NETWORKDAYS: Calcola i giorni lavorativi tra due date.
=NETWORKDAYS("15/01/2023"; "20/03/2023"; B2:B10) -
WORKDAY: Aggiunge giorni lavorativi a una data (escludendo festivi).
=WORKDAY("15/01/2023"; 30; B2:B10)Aggiunge 30 giorni lavorativi al 15/01/2023, saltando sabato, domenica e festivi in B2:B10.
-
WORKDAY.INTL: Come WORKDAY, ma permette di definire quali giorni sono weekend.
=WORKDAY.INTL("15/01/2023"; 30; [fine_settimana]; B2:B10)
Conclusione e Best Practices
Calcolare la differenza tra due date in Excel è un’operazione apparentemente semplice che può diventare complessa a seconda delle esigenze specifiche. Ecco un riassunto delle best practices:
-
Per differenze semplici in giorni: Usa la sottrazione diretta (
=B2-A2) oDAYS. -
Per anni, mesi o combinazioni:
DATEDIFè la scelta migliore. -
Per calcoli finanziari:
DAYS360oYEARFRACcon la base appropriata. -
Per giorni lavorativi:
NETWORKDAYSoWORKDAY. - Per includere ore/minuti: Combina date e ore nella stessa formula.
- Per visualizzazioni grafiche: Usa grafici a barre o a cascata per timeline.
- Per automatizzare: Converti i dati in Tabelle di Excel e usa riferimenti strutturati.
Ricorda sempre di:
- Verificare il formato delle celle (le date devono essere riconosciute come tali da Excel).
- Considerare gli anni bisestili nei calcoli a lungo termine.
- Usare
OGGI()oNOW()per calcoli dinamici basati sulla data corrente. - Documentare le formule complesse con commenti (Inserisci > Commento).
Con queste tecniche, sarai in grado di gestire qualsiasi calcolo di differenza tra date in Excel, dalle operazioni più semplici ai progetti complessi con multiple scadenze e dipendenze.