Calcola Mesi Tra Due Date Excel

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

  1. Funzione DATEDIF – Il metodo più flessibile ma meno conosciuto
  2. Sottrazione diretta con formattazione – Semplice ma con limitazioni
  3. Combinazione di YEAR e MONTH – Per calcoli precisi di mesi completi
  4. 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
        
Nota Importante:

La funzione DATEDIF è presente in Excel per motivi di compatibilità con Lotus 1-2-3. Nonostante non sia documentata, Microsoft garantisce che continuerà a essere supportata nelle future versioni di Excel. Fonte: Supporto Microsoft

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:

  1. Calcola la differenza in anni e la moltiplica per 12
  2. Aggiunge la differenza tra i mesi
  3. 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:

  • FALSE o omesso: Metodo US (NASD) 30/360
  • TRUE: 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:

  1. 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.

  2. Non considerare gli anni bisestili

    Il 29 febbraio esiste solo negli anni bisestili. La funzione DATEDIF gestisce automaticamente questo caso.

  3. Confondere mesi completi con mesi esatti

    38 mesi esatti ≠ 38 mesi completi. Il primo include giorni extra, il secondo no.

  4. 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.

  5. 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
Sottrazione/30 Bassa Stime approssimative, calcoli rapidi No
YEAR+MONTH ⭐⭐⭐⭐ Media Mesi completi, scadenze contrattuali
360/365 ⭐⭐ (per finanza) Bassa Calcoli finanziari, interessi, ammortamenti No (standardizzato)
Combinazione funzioni ⭐⭐⭐⭐⭐ Alta Report dettagliati, analisi complesse

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:

  1. Importare le tue date
  2. Aggiungere una colonna personalizzata con la formula:
    = Duration.Days([Data_Fine] - [Data_Inizio])/30
  3. 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

Fonti Autorevoli:
  1. National Institute of Standards and Technology (NIST) – Misurazione del Tempo: Guida ufficiale sulla misurazione e il calcolo delle date.
  2. Internal Revenue Service (IRS) – Calcoli Finanziari: Linee guida per i calcoli di interessi e ammortamenti.
  3. ISO 8601 – Standard Internazionale per Date e Ore: Lo standard di riferimento per la rappresentazione di date e ore.

Per approfondire ulteriormente, consulta:

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")

Leave a Reply

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