Calcolare quanti giorni mancano a una scadenza, l’età di una persona o i giorni lavorativi di un progetto sembra semplice, finché Excel non restituisce un numero strano, una fila di cancelletti o un errore. Quasi sempre il problema non è la formula, ma il modo in cui Excel interpreta le date.
In questa guida vedrai come Excel memorizza le date, come sottrarre e aggiungere periodi, come calcolare mesi ed età con DATA.DIFF, come contare i giorni lavorativi tenendo conto delle festività e cosa fare quando una data importata non si comporta come tale.
Come Excel memorizza le date
Per Excel una data è un numero intero con un formato data. Ogni giorno aggiunge 1 a partire dal 1° gennaio 1900, che vale 1. Per questo il 1° gennaio 2025 è il numero 45658 e il 15 marzo 2025 è il 45731. Le ore sono la parte decimale: mezzogiorno equivale a 0,5.
Puoi verificarlo tu stesso: scrivi una data, seleziona la cella e cambia il formato in Generale da Home › Numeri. Vedrai il numero seriale. Questa idea spiega quasi tutto il resto:
- Sottraendo due date ottieni i giorni che le separano.
- Sommando un numero a una data la sposti di altrettanti giorni.
- Se il risultato appare come data quando ti aspettavi dei giorni, è solo una questione di formato.
Calcolare i giorni tra due date
È il calcolo più comune: giorni tra un ordine e la consegna, tra una fattura e l’incasso, tra l’apertura e la chiusura di una segnalazione. Basta sottrarre la data più vecchia da quella più recente.
| Ordine | Data ordine (A) | Data consegna (B) | Giorni (C) |
|---|---|---|---|
| Ordine 1 | 03/02/2025 | 17/02/2025 | 14 |
| Ordine 2 | 25/02/2025 | 10/03/2025 | 13 |
| Ordine 3 | 28/03/2025 | 02/04/2025 | 5 |
In C2 scrivi la formula e trascinala verso il basso:
=B2-A2
Se invece di 14 vedi una data come 14/01/1900, Excel ha copiato il formato delle celle di origine. Imposta la colonna C sul formato Generale o Numero e comparirà il numero di giorni.
Per calcolare i giorni che mancano a una scadenza, usa la data odierna con OGGI(), che si aggiorna ogni volta che apri il file:
=B2-OGGI()
Un risultato negativo indica che la scadenza è già passata. Puoi abbinarlo a una formattazione condizionale per evidenziare in rosso i valori minori di zero.
Mesi, anni ed età con DATA.DIFF
Sottrarre date restituisce giorni, ma i mesi non hanno sempre la stessa durata. Per contare mesi o anni completi si usa DATA.DIFF, una funzione datata che funziona ancora in tutte le versioni di Excel, anche se non compare né nel completamento automatico né nella finestra Inserisci funzione. Devi scriverla per intero.
La sintassi è DATA.DIFF(data_inizio;data_fine;unità). La data iniziale deve essere precedente a quella finale; altrimenti la funzione restituisce l’errore #NUM!. Con 15/01/2024 in A2 e 14/07/2025 in B2, questi sono i risultati per ogni unità:
| Unità | Cosa conta | Risultato |
|---|---|---|
| “Y” | Anni completi | 1 |
| “M” | Mesi completi | 17 |
| “D” | Giorni | 546 |
| “YM” | Mesi rimanenti dopo aver tolto gli anni | 5 |
| “MD” | Giorni rimanenti dopo aver tolto i mesi | 29 |
Nota che il risultato in mesi è 17 e non 18: al 14 luglio manca ancora un giorno per completare il mese. DATA.DIFF conta solo periodi completi.
=DATA.DIFF(A2;B2;"M")
Calcolare l’età
Se la data di nascita è in B2, l’età attuale in anni è:
=DATA.DIFF(B2;OGGI();"Y")
E se vuoi un testo come “34 anni e 5 mesi”, unisci due calcoli con l’operatore &:
=DATA.DIFF(B2;OGGI();"Y")&" anni e "&DATA.DIFF(B2;OGGI();"YM")&" mesi"
Evita l’unità "MD" nei calcoli importanti: Microsoft avverte che in alcuni casi può dare risultati errati, soprattutto a fine mese.
Aggiungere giorni, mesi e fine mese
Per aggiungere giorni basta sommare un numero. Se una fattura emessa alla data in A2 scade a 30 giorni:
=A2+30
Aggiungere mesi è diverso, perché “un mese” non è sempre di 30 giorni. Usa DATA.MESE, che rispetta il calendario. Per esempio, per una revisione tre mesi dopo la data in A2:
=DATA.MESE(A2;3)
Se la data iniziale è il 31/01/2025 e aggiungi un mese, il risultato è il 28/02/2025: Excel si sposta sull’ultimo giorno del mese quando il giorno non esiste. Con un numero negativo togli dei mesi.
Per ottenere l’ultimo giorno del mese di una data, utile per le scadenze “a fine mese”, usa FINE.MESE:
=FINE.MESE(A2;0)
Contare e aggiungere giorni lavorativi
Nei tempi di consegna o nelle scadenze di progetto spesso contano solo i giorni lavorativi. GIORNI.LAVORATIVI.TOT conta i giorni dal lunedì al venerdì tra due date, entrambe incluse, e può escludere un elenco di festività.
- Scrivi le festività in una colonna separata, per esempio F2:F10, una per cella e come date vere.
- Inserisci la data di inizio in A2 e quella di fine in B2.
- Scrivi la formula bloccando l’intervallo delle festività con
$, così potrai copiarla.
=GIORNI.LAVORATIVI.TOT(A2;B2;$F$2:$F$10)
Tra il 01/04/2025 e il 30/04/2025 ci sono 22 giorni dal lunedì al venerdì. Se nel tuo elenco ci sono due festività che cadono in giorni feriali quel mese, il risultato sarà 20.
Calcolare una data di consegna in giorni lavorativi
Se ti serve la data risultante, usa GIORNO.LAVORATIVO. Partendo da venerdì 07/03/2025, dieci giorni lavorativi dopo si arriva a venerdì 21/03/2025:
=GIORNO.LAVORATIVO(A2;10;$F$2:$F$10)
Quando una data non è una data
Il problema più frequente si presenta quando importi dati da un CSV, da una banca o da un altro programma: le date arrivano come testo. Sembrano corrette, ma le formule non funzionano o restituiscono #VALORE!. Alcuni segnali:
- La data è allineata a sinistra in una cella senza allineamento manuale.
- Cambiando il formato in Generale non compare alcun numero seriale.
- Nell’ordinamento, “02/01/2025” finisce prima di “15/12/2024” perché viene ordinata come testo.
Per averne conferma, questa formula restituisce VERO se A2 è una data reale e FALSO se è testo:
=VAL.NUMERO(A2)
La soluzione più rapida è Dati › Testo in colonne: seleziona la colonna, fai clic due volte su Avanti e, nel terzo passaggio, scegli Data con l’ordine corretto (GMA se il giorno viene prima). Se le date arrivano come testo nel formato anno-mese-giorno (2025-03-15), puoi ricostruirle con una formula:
=DATA(SINISTRA(A2;4);STRINGA.ESTRAI(A2;6;2);DESTRA(A2;2))
Se lavori spesso con file CSV, convertirli prima in XLSX con il nostro strumento gratuito da CSV a Excel ti dà una cartella di lavoro pronta da aprire. Controlla comunque la colonna delle date con VAL.NUMERO prima di calcolare, soprattutto se il file mescola formati di paesi diversi.
Altri errori comuni
- Cella piena di #####: la colonna è troppo stretta o il risultato è una data negativa. Allarga la colonna o controlla l’ordine della sottrazione.
- Anni a due cifre: “01/02/30” può essere interpretato come 1930 o 2030 a seconda delle impostazioni. Scrivi sempre l’anno con quattro cifre.
- Giorni e mesi invertiti: un file in formato mese/giorno trasforma il 03/04 nel 4 marzo. Verifica con date in cui il giorno è maggiore di 12.
Conclusione
Lavorare con le date in Excel è facile se ricordi che ogni data è un numero. Sottrai per ottenere i giorni, usa DATA.DIFF per mesi, anni ed età, DATA.MESE e FINE.MESE per le scadenze di calendario e GIORNI.LAVORATIVI.TOT o GIORNO.LAVORATIVO per i giorni lavorativi. Prima di calcolare, verifica che le tue date siano date reali e non testo: eviterai la maggior parte degli errori.
Domande frequenti
Perché non trovo DATA.DIFF nell’elenco delle funzioni?
Excel la mantiene per compatibilità e non compare né nel completamento automatico né nella finestra delle funzioni. Funziona comunque se la scrivi per intero con i suoi tre argomenti.
Come calcolo le ore tra due date con orario?
Sottrai le due celle e moltiplica per 24: =(B2-A2)*24. Applica al risultato il formato Generale o Numero per vedere le ore con i decimali.
GIORNI.LAVORATIVI.TOT conta il giorno iniziale e quello finale?
Sì, li include entrambi se sono lavorativi. Se dal lunedì al venerdì della stessa settimana ottieni 5, è il risultato atteso. Sottrai 1 se vuoi solo i giorni trascorsi.
Prova i nostri strumenti gratuiti
Confronta, converti, unisci e pulisci i tuoi fogli di calcolo dal browser, senza installare nulla.