Calcolatore Mesi tra Due Date Excel
Calcola precisamente il numero di mesi tra due date, inclusi mesi completi, giorni extra e anni completi. Risultati formattati per Excel.
Guida Completa: Come Calcolare i Mesi tra Due Date in Excel
Calcolare la differenza in mesi tra due date è un’operazione comune in ambito finanziario, di project management e di analisi dei dati. Excel offre diverse funzioni per eseguire questo calcolo, ma la scelta del metodo dipende dalle tue esigenze specifiche. Questa guida ti illustrerà tutti i metodi disponibili, con esempi pratici e consigli per evitare errori comuni.
Metodi Principali per Calcolare i Mesi tra Due Date
- Funzione DATEDIF – Il metodo più flessibile ma meno conosciuto
- Sottrazione diretta con formattazione – Semplice ma con limitazioni
- Combinazione di YEAR e MONTH – Per calcoli precisi di mesi completi
- Metodo 360/365 – Utilizzato in ambito finanziario
1. Funzione DATEDIF: Il Metodo Più Potente
La funzione DATEDIF (Data DIfference) è la più versatile per calcolare la differenza tra due date in Excel. Nonostante non sia documentata nella guida ufficiale di Excel, è pienamente supportata e molto potente.
Sintassi:
=DATEDIF(data_inizio; data_fine; unità)
Unità disponibili:
"m"– Numero completo di mesi tra le due date"d"– Numero completo di giorni tra le due date"y"– Numero completo di anni tra le due date"ym"– Mesi rimanenti dopo aver calcolato gli anni completi"md"– Giorni rimanenti dopo aver calcolato mesi e anni completi"yd"– Giorni di differenza ignorando gli anni
Esempi pratici:
=DATEDIF("15/01/2020"; "20/03/2023"; "m") → 38 mesi completi
=DATEDIF("15/01/2020"; "20/03/2023"; "y") → 3 anni completi
=DATEDIF("15/01/2020"; "20/03/2023"; "ym") → 2 mesi rimanenti
=DATEDIF("15/01/2020"; "20/03/2023"; "md") → 5 giorni rimanenti
2. Sottrazione Diretta con Formattazione Personalizzata
Un metodo semplice ma efficace consiste nel sottrare direttamente le due date e poi formattare il risultato come mesi:
=(Data_Fine - Data_Inizio)/30
Pro: Semplice da implementare
Contro: Approssimativo (non considera i mesi reali di 28-31 giorni)
Per migliorare l’accuratezza, puoi usare:
=ANNO(Data_Fine-Data_Inizio)*12+MESE(Data_Fine-Data_Inizio)
3. Combinazione di YEAR e MONTH per Mesi Completi
Per calcolare esattamente i mesi completi tra due date (ignorando i giorni extra):
=(ANNO(Data_Fine)-ANNO(Data_Inizio))*12+MESE(Data_Fine)-MESE(Data_Inizio)
Questa formula:
- Calcola la differenza in anni e la moltiplica per 12
- Aggiunge la differenza tra i mesi
- Ignora completamente i giorni del mese
Esempio: Tra il 15/01/2020 e il 20/03/2023 ci sono 38 mesi completi (3 anni × 12 + 2 mesi)
4. Metodo 360/365 per Calcoli Finanziari
In ambito bancario e finanziario, si usa spesso l’anno commerciale di 360 giorni (12 mesi da 30 giorni). Excel offre due funzioni specifiche:
=ANNI.360(Data_Inizio; Data_Fine; [Metodo])
=GIORNI.360(Data_Inizio; Data_Fine; [Metodo])
Metodi disponibili:
FALSEo omesso: Metodo US (NASD) 30/360TRUE: Metodo europeo 30/360
| Metodo | Descrizione | Esempio (01/01/2020 – 31/12/2020) |
|---|---|---|
| US (NASD) 30/360 | Se il giorno di inizio è 31, viene cambiato in 30. Se il giorno di fine è 31 e il giorno di inizio è 30 o 31, viene cambiato in 30. | 360 giorni (12 mesi) |
| Europeo 30/360 | Tutti i giorni 31 vengono cambiati in 30. | 360 giorni (12 mesi) |
| Reale/Reale | Calcola i giorni effettivi tra le date. | 366 giorni (2020 era bisestile) |
Errori Comuni e Come Evitarli
Anche operazioni apparentemente semplici come il calcolo dei mesi tra date possono nascondere insidie. Ecco gli errori più frequenti e come evitarli:
-
Dimenticare che i mesi hanno durate diverse
Febbraio ha 28 (o 29) giorni, aprile, giugno, settembre e novembre ne hanno 30, gli altri 31. Usare sempre funzioni che tengano conto di questo.
-
Non considerare gli anni bisestili
Il 29 febbraio esiste solo negli anni bisestili. La funzione
DATEDIFgestisce automaticamente questo caso. -
Confondere mesi completi con mesi esatti
38 mesi esatti ≠ 38 mesi completi. Il primo include giorni extra, il secondo no.
-
Usare formati data non riconosciuti
Excel potrebbe interpretare male date in formati non standard. Usa sempre il formato GG/MM/AAAA o la funzione
DATA. -
Dimenticare l’ordine delle date
Se data_fine < data_inizio, Excel restituirà un numero negativo. Aggiungi
ABS()per ottenere sempre valori positivi.
Casistiche Avanzate
1. Calcolare Mesi e Giorni Separatamente
Per ottenere un risultato del tipo “3 anni, 2 mesi e 5 giorni”:
=DATEDIF(A1;B1;"y") & " anni, " & DATEDIF(A1;B1;"ym") & " mesi e " & DATEDIF(A1;B1;"md") & " giorni"
2. Calcolare la Data Futura Aggiungendo Mesi
Per trovare una data che sia X mesi dopo una data di partenza:
=DATA(ANNO(A1); MESE(A1)+3; GIORNO(A1))
Questa formula aggiunge 3 mesi alla data in A1.
3. Gestire le Date in Formato Testo
Se le tue date sono memorizzate come testo (es. “01/01/2020”), convertile in date reali con:
=DATA.VALORE(A1)
4. Calcoli con Fusi Orari Diversi
Se lavori con date in fusi orari diversi, considera di usare:
=DATA.VALORE(TESTO(A1;"gg/mm/aaaa")) - (fuso_orario/24)
Confronto tra i Diversi Metodi di Calcolo
| Metodo | Precisione | Complessità | Casi d’Uso Ideali | Gestisce Anni Bisestili |
|---|---|---|---|---|
| DATEDIF | ⭐⭐⭐⭐⭐ | Media | Calcoli precisi, reportistica, analisi dati | Sì |
| Sottrazione/30 | ⭐ | Bassa | Stime approssimative, calcoli rapidi | No |
| YEAR+MONTH | ⭐⭐⭐⭐ | Media | Mesi completi, scadenze contrattuali | Sì |
| 360/365 | ⭐⭐ (per finanza) | Bassa | Calcoli finanziari, interessi, ammortamenti | No (standardizzato) |
| Combinazione funzioni | ⭐⭐⭐⭐⭐ | Alta | Report dettagliati, analisi complesse | Sì |
Applicazioni Pratiche
1. Calcolo dell’Età Esatta
Per calcolare l’età di una persona in anni, mesi e giorni:
=DATEDIF(A1;OGGI();"y") & " anni, " & DATEDIF(A1;OGGI();"ym") & " mesi, " & DATEDIF(A1;OGGI();"md") & " giorni"
2. Scadenze Contrattuali
Per verificare se un contratto è scaduto (data scadenza in A1):
=SE(OGGI()>A1;"SCADUTO";DATEDIF(OGGI();A1;"d") & " giorni rimanenti")
3. Analisi delle Vendite Mensili
Per raggruppare le vendite per mese (data in A2:A100, importo in B2:B100):
=SOMMA.PIÙ.SE(B2:B100; --(MESE(A2:A100)=5); --(ANNO(A2:A100)=2023))
Questa formula somma tutte le vendite di maggio 2023.
4. Calcolo degli Interessi
Per calcolare gli interessi maturati tra due date (tasso in C1, capitale in C2):
=C2*(1+C1)^(GIORNI.360(A1;B1;FALSE)/360)-C2
Integrazione con Altri Strumenti
1. Power Query
In Power Query (Strumenti > Dati > Ottieni dati), puoi:
- Importare le tue date
- Aggiungere una colonna personalizzata con la formula:
= Duration.Days([Data_Fine] - [Data_Inizio])/30 - Arrotondare il risultato per ottenere i mesi
2. Power Pivot
In Power Pivot, crea una misura DAX:
MesiTraDate :=
DATEDIFF(
MIN(Tabella[Data_Inizio]);
MAX(Tabella[Data_Fine]);
MONTH
)
3. VBA (Visual Basic for Applications)
Per automatizzare calcoli complessi:
Function MesiTraDate(DataInizio As Date, DataFine As Date) As String
Dim Anni As Integer, Mesi As Integer, Giorni As Integer
Anni = DateDiff("yyyy", DataInizio, DataFine)
Mesi = DateDiff("m", DateAdd("yyyy", Anni, DataInizio), DataFine)
Giorni = DateDiff("d", DateAdd("m", Mesi, DateAdd("yyyy", Anni, DataInizio)), DataFine)
MesiTraDate = Anni & " anni, " & Mesi & " mesi, " & Giorni & " giorni"
End Function
Risorse Esterne e Approfondimenti
Per approfondire ulteriormente, consulta:
- La documentazione ufficiale di Microsoft su DATEDIF
- Il libro “Excel Formulas and Functions For Dummies” per una trattazione completa delle funzioni di Excel
- Il corso “Excel Skills for Business” su Coursera per esercitazioni pratiche
Domande Frequenti
1. Perché DATEDIF non è documentata in Excel?
DATEDIF era presente in Lotus 1-2-3, un foglio di calcolo popolare prima di Excel. Microsoft l’ha inclusa per compatibilità ma non l’ha mai documentata ufficialmente. Nonostante questo, è pienamente supportata e non verrà rimossa.
2. Come gestire le date prima del 1900?
Excel per Windows usa il 1900 come data di inizio (1 gennaio 1900 = 1). Per date precedenti, devi usare un sistema di data personalizzato o convertire le date in testo.
3. Posso calcolare i mesi tra date in Google Sheets?
Sì, Google Sheets supporta la stessa funzione DATEDIF con identica sintassi. Anche le altre formule menzionate in questa guida funzionano in Google Sheets.
4. Come gestire i formati data internazionali?
Usa sempre la funzione DATA o DATA.VALORE per evitare problemi con i formati data. Esempio:
=DATA(2023;5;15) invece di “15/05/2023” che potrebbe essere interpretato come 5 maggio o 15 maggio a seconda delle impostazioni regionali.
5. Esiste un modo per calcolare i mesi lavorativi (escludendo weekend)?
Sì, puoi usare la funzione GIORNI.LAVORATIVI.TOT per contare i giorni lavorativi e poi dividerli per 21 (media dei giorni lavorativi in un mese):
=GIORNI.LAVORATIVI.TOT(A1;B1)/21
6. Come posso visualizzare il risultato in un grafico?
Crea una tabella con le date e i mesi calcolati, poi usa un grafico a colonne o a linee. Nel nostro calcolatore sopra, il risultato viene visualizzato automaticamente in un grafico interattivo.
7. Posso usare queste formule in Excel Online?
Sì, tutte le funzioni menzionate sono supportate in Excel Online, con l’eccezione di alcune funzioni avanzate di Power Query che potrebbero avere limitazioni.
8. Come gestire gli errori #NUM! o #VALORE!?
Questi errori si verificano tipicamente quando:
- Una delle “date” non è riconosciuta come data valida
- La data di fine è precedente alla data di inizio (a meno che non usi
ABS) - Stai cercando di calcolare date prima del 1900
Usa la funzione SE.ERRORE per gestire gli errori:
=SE.ERRORE(DATEDIF(A1;B1;"m");"Errore nel calcolo")