Corso
In questo articolo ti guiderò attraverso alcuni modi pratici per gestire le date. Vedremo tutto, dalla semplice sottrazione a funzioni avanzate come NETWORKDAYS() e DATEDIF(). Alla fine saprai calcolare i giorni tra le date, tracciare i giorni lavorativi e gestire persino scenari specifici come saltare weekend o festività. Ma se sei alle prime armi con Excel, dai un'occhiata al nostro corso Introduzione a Excel e costruisci le basi.
Capire il sistema delle date di Excel
Per iniziare, parliamo brevemente del sistema delle date di Excel. La cosa più importante da sapere è che Excel memorizza ogni data come un numero univoco. Per esempio, il 1° gennaio 1900 è il numero 1 e il 2 gennaio 1900 è il numero 2, e così via.
Rischiando di complicare troppo, ti menziono anche due cose aggiuntive. Innanzitutto, sappi che Excel utilizza in realtà due sistemi: il sistema 1900 e il sistema 1904. Il sistema 1900 inizia con il 1° gennaio 1900 come giorno 1, mentre il sistema 1904 parte dal 1° gennaio 1904 come giorno 0. La differenza tra questi sistemi è di 1.462 giorni, ovvero circa 4 anni e 1 giorno bisestile. Inoltre, i formati data possono variare per regione. Ad esempio, 02/03/2025 potrebbe significare 3 febbraio o 2 marzo, a seconda del luogo. Se non siamo coerenti con i formati delle date, Excel potrebbe interpretare male i dati e produrre risultati errati.
Queste cose non ti creeranno problemi se stai semplicemente calcolando i giorni tra due date, ma è comunque utile saperlo. Segui il nostro percorso Fondamenti di Excel per diventare davvero esperto.
Come trovare i giorni tra due date in Excel
Ci sono un paio di metodi diversi per trovare i giorni tra due date in Excel. Dal punto di vista funzionale sono per lo più uguali. Ti mostro ogni metodo così puoi scegliere quello che preferisci.
Metodo 1: Semplice sottrazione
La semplice sottrazione è uno dei modi più facili e veloci per trovare i giorni tra le date. Sottrae una data da un'altra. La sua sintassi è:
New date - Old date
Qui ho un set di dati con date nelle celle A2 e B2, e nella cella C2, inserisco la seguente formula:
=B2-A2

Trova i giorni tra le date con il metodo della sottrazione. Immagine dell'autore.
Metodo 2: La funzione DAYS()
Un altro modo che uso è con la funzione DAYS(), pensata apposta per questo. La sua sintassi è:
=DAYS(end_date, start_date)
Nella cella C2 inserisco la seguente formula:
=DAYS(B2,A2)
Come per la sottrazione, se la data di fine è successiva a quella di inizio, il risultato è positivo. Se è precedente, è negativo.

Trova i giorni tra le date con la funzione DAYS(). Immagine dell'autore.
Metodo 3: La funzione DATEDIF()
Come la funzione DAYS(), DATEDIF() sottrae le date, ma l'ordine degli argomenti è invertito. La sua sintassi è:
=DATEDIF(start_date, end_date, "d"))
Il terzo argomento specifica l'unità di tempo. Ad esempio, d per i giorni, y per gli anni e m per i mesi.
Nella cella C2, ho inserito la seguente formula:
=DATEDIF(A2, B2, "d")
Tuttavia, quando ho premuto Invio, ho ottenuto un errore #NUM! nella terza riga. Questo perché la formula prova a sottrarre una data più recente (end_date) da una più vecchia (start_date) e la funzione DATEDIF() non lo consente. Quindi, sebbene DATEDIF() sia più flessibile perché permette diverse unità di tempo, è anche meno flessibile perché non restituisce risultati negativi.
Nota anche che DATEDIF() è una funzione nascosta, quindi Excel non la suggerisce durante la digitazione. Questo significa che dovrai digitare tutto manualmente se usi questa funzione.

Trova i giorni tra le date con la funzione DATEDIF(). Immagine dell'autore.
Metodo 4: Le funzioni NETWORKDAYS() e NETWORKDAYS.INTL()
Le funzioni NETWORKDAYS() e NETWORKDAYS.INTL() calcolano solo i giorni lavorativi ed escludono weekend e festività. Diciamo che vuoi sapere il numero di giorni lavorativi tra due date escludendo i weekend. In questo caso, puoi usare la funzione NETWORKDAYS() per saltare automaticamente sabati e domeniche. La sua sintassi è:
NETWORKDAYS(start_date, end_date, [holidays])
Per esempio, se non specifico festività, esclude solo i weekend. Nella cella C2 inserisco la seguente formula:
=NETWORKDAYS(A2,B2)
Questo mi restituisce il numero di giorni lavorativi tra le date in A2 e B2, escludendo i weekend.
Trova i giorni tra le date con la funzione NETWORKDAYS(). Immagine dell'autore.
Se voglio anche escludere le festività, elenco quelle date in una colonna separata, ad esempio da E2 a E5. Poi faccio riferimento a quell'intervallo nel terzo argomento in questo modo:
=NETWORKDAYS(A2,B2,$E$3:$E$4)
Ora calcola i giorni lavorativi, escludendo sia i weekend sia le festività che ho elencato. Questo rende semplicissimo ottenere un conteggio accurato dei giorni lavorativi.

Uso della funzione NETWORKDAYS(). Immagine dell'autore.
A volte i miei weekend non sono il sabato e la domenica predefiniti. In quel caso, uso la funzione NETWORKDAYS.INTL(). Questa mi permette di definire weekend personalizzati. La sua sintassi è:
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Per l'argomento weekend, posso usare un numero per scegliere un weekend preimpostato (come 1 per sabato-domenica o 7 per venerdì-sabato) oppure una stringa di testo personalizzata come 0000011, dove ogni cifra rappresenta un giorno della settimana (a partire dal lunedì). 1 lo contrassegna come weekend e 0 come giorno lavorativo.
Supponiamo che i miei weekend siano venerdì e sabato. Per questo, userò questa formula:
=NETWORKDAYS.INTL(A2, B2, 7, $E$2:$E$3)
Trova i giorni tra le date usando NETWORKDAYS.INTL(). Immagine dell'autore.
Metodo 5: La funzione TODAY()
Se voglio calcolare quanti giorni sono passati da una data specifica o quanti giorni mancano a una data futura, uso sempre la funzione TODAY(). Questa funzione restituisce la data corrente, così non devo aggiornarla ogni giorno. La sua sintassi è:
=TODAY() - past_date
Diciamo che la data passata è nella cella A3. Quindi, inserisco questa formula nella cella B3:
=TODAY()-A3

Trova i giorni trascorsi dalla data con la funzione TODAY(). Immagine dell'autore.
Se ho bisogno di sapere quanti giorni mancano a una data futura, inverto semplicemente la formula:
=Future_date - TODAY()
Quindi diventa:
=A3 - TODAY()

Trova i giorni rimanenti fino alla data con la funzione TODAY(). Immagine dell'autore.
Le mie considerazioni: un rapido confronto tra tutte le funzioni
| Metodo | Cosa mi piace | Cosa non mi piace |
|---|---|---|
| Semplice sottrazione | Veloce e facile | Non tiene conto di weekend o festività |
| DAYS() | Sintassi chiara e strutturata | Funziona solo per i giorni |
| DATEDIF() | Flessibile per giorni, mesi o anni | Genera un errore quando il valore è negativo |
|
NETWORKDAYS() NETWORKDAYS.INTL() |
Esclude weekend e festività | Richiede una configurazione extra per le festività |
| TODAY() | Si aggiorna automaticamente ogni giorno | Funziona solo per calcoli che coinvolgono il giorno corrente |
Tecniche avanzate
Oltre alle basi, se gestisci scenari complessi, ecco alcune tecniche avanzate:
Gestire i valori negativi
Quando l'ordine delle date è invertito, otteniamo un valore negativo. Per risolvere, avvolgo la funzione DAYS() dentro la funzione ABS() così:
=ABS(DAYS(B2,A2))
E puoi vedere i risultati nell'immagine qui sotto:

Usa la funzione ABS() per gestire i valori negativi. Immagine dell'autore.
Gestione degli errori
Ecco gli errori comuni sulle date in Excel che ho incontrato e come li ho risolti.
-
Errore #VALUE!: Succedeva quando il mio sistema era impostato su mm/dd/yyyy per le date, ma la mia formula usava dd/mm/yyyy. L'ho risolto aggiornando le date nella formula per allinearle al formato del mio sistema.
-
Errore #NUM!: Ho ottenuto questo errore usando la funzione
DAYS(), perché una delle date aveva un valore numerico fuori dall'intervallo valido per le date. Per evitarlo, assicurati che il valore rientri nell'intervallo valido. -
Errore #NAME?: Di solito è un problema di refuso (
DATEIF()invece diDATEDIF()). Per evitarlo, controlla bene l'ortografia.
Combinare le funzioni
A volte una singola funzione per le date non basta per compiti complessi, quindi combino più funzioni per creare una formula dinamica che gestisca scenari diversi.
Supponiamo di voler capire quanti giorni di scuola mancano agli esami. Per questo uso NETWORKDAYS() per contare i giorni lavorativi e aggiungo IFERROR() per gestire date non valide. In questo caso, la formula sarebbe così:
=IFERROR(NETWORKDAYS(TODAY(), A2, $B$3:$B$4), "Check Dates")

Combina IFERROR() con NETWORKDAYS. Immagine dell'autore.
Quando potresti aver bisogno di calcolare i giorni tra due date in Excel
Ti condivido alcuni esempi reali di come ho usato di recente queste funzioni nei miei progetti.
Calcolare l'età
Mi è stato dato un elenco di date per calcolare l'età delle persone in base alla loro data di nascita. Per farlo ho usato la funzione DATEDIF(). Puoi vedere il set di dati di esempio qui sotto. Nella cella B2, inserisco
=DATEDIF(A2,TODAY(),"Y")
Questa formula calcola quindi il numero di anni completi tra la data in A2 (data di nascita) e la data di oggi.

Trova l'età usando la funzione DATEDIF(). Immagine dell'autore.
Se ho bisogno di dettagli più specifici, come il totale dei mesi o dei giorni, posso adattare la formula così:
-
mper trovare il numero di mesi dalla nascita. -
dper trovare il numero di giorni.
Monitoraggio della timeline di progetto
Ho anche monitorato i giorni lavorativi rimanenti per un progetto con la funzione NETWORKDAYS(). Per farlo, ho inserito le date di inizio e fine nelle celle A2 e B2 e ho elencato le festività nelle celle C2:C5. Poi, per calcolare i giorni lavorativi del progetto, ho inserito la formula nella cella D2:
=NETWORKDAYS(A2,B2,$C$3:$C$5)

Trova i giorni rimanenti per il progetto con le funzioni NETWORKDAYS(). Immagine dell'autore.
Ogni volta che la timeline del progetto cambiava, aggiornavo semplicemente le date e la formula si adattava automaticamente. In questo modo posso tenere facilmente traccia delle scadenze.
Analisi finanziaria
Una volta dovevo monitorare più scadenze contrattuali. Così ho creato un sistema semplice in Excel per identificare più facilmente una scadenza scaduta o attiva.
Ho semplicemente inserito questa formula nella cella C2:
=IF(B2 < TODAY(), "Expired", "Active")
Questo etichettava automaticamente ogni contratto in base al fatto che la data di scadenza fosse passata o meno.
Uso anche la formattazione condizionale per colorare le celle in base allo stato, per maggiore chiarezza. I contratti Active sono evidenziati in verde, mentre i contratti Expired sono segnati in rosso.
Per farlo, ho selezionato Nuova regola sotto Formattazione condizionale e ho scelto Usa una formula per determinare le celle da formattare. Poi ho inserito separatamente le formule =B2="Expired" e =B2="Active". In questo modo sono riuscito a identificare quali contratti richiedevano attenzione.

Monitora la scadenza del contratto. Immagine dell'autore.
Ora tutto si aggiorna da solo. Le formule si adattano all'istante ogni volta che aggiungo nuovi contratti o aggiorno le date di scadenza.
Intervalli tra i rinnovi dei farmaci
Si può anche calcolare l'intervallo tra i rinnovi delle prescrizioni in Excel. Mettiamo che i tuoi genitori abbiano ritirato una scorta di farmaci per 30 giorni il 1° gennaio 2025, ma oggi è il 5 febbraio 2025 e stai cercando di capire per quanto tempo sono rimasti senza farmaci.
Nel set di dati qui sotto, la cella A2 mostra quando i farmaci sono stati ritirati l'ultima volta. Semplicemente sottraiamo oggi da quella data e aggiungiamo 30. (Questo è solo un esempio per esercitarsi con le funzioni di Excel; per situazioni mediche, consulta il tuo medico.)
=TODAY()-(A3+30)

Trova l'ultimo rinnovo dei farmaci. Immagine dell'autore
In questo modo ho tracciato facilmente il numero di giorni dall'ultimo rinnovo e pianificato il successivo senza andare a tentativi.
Consigli e buone pratiche
Ecco alcuni consigli e buone pratiche per aiutarti lungo il percorso:
-
Mi assicuro sempre che le celle data siano formattate correttamente. Se non lo sono, Excel potrebbe non riconoscerle come date, compromettendo i calcoli. Quindi ricontrollo sempre che le celle siano impostate su Data dalla scheda Home nel gruppo Numero.
-
Mantengo le formule semplici e chiare. Invece di inserire date fisse come
=DAYS("1/10/2025", "1/1/2025"), uso sempre riferimenti di cella come A2 e B2. Così, se devo aggiornare le date, mi basta cambiare i valori nelle celle senza toccare la formula. -
Quando uso la funzione
TODAY(), mi assicuro sempre che la cella sia formattata come Numero — altrimenti mostrerà un errore #### o una data non corretta.
Considerazioni finali
Ti ho mostrato alcuni dei modi migliori per lavorare con le date in Excel, dalla semplice sottrazione a funzioni più avanzate come DAYS(), DATEDIF(), NETWORKDAYS() e TODAY(). Queste funzioni sono ottime per tracciare le timeline e gestire le festività.
Il modo migliore per prenderci la mano è fare pratica. Provale nei tuoi fogli di lavoro e scopri come possono semplificarti il lavoro.
Se sei pronto a fare un ulteriore salto di qualità, ti consiglio i corsi Data Analysis in Excel, Data Preparation in Excel e Data Visualization in Excel. Questi corsi coprono funzionalità e strategie avanzate che possono rendere il tuo lavoro ancora più efficiente.
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.
FAQ
Come calcolo la differenza tra due orari in ore, minuti e secondi ignorando le altre unità?
Puoi usare queste formule:
-
Ore:
=HOUR(B2-A2) -
Minuti:
=MINUTE(B2-A2) -
Secondi:
=SECOND(B2-A2)
Nota: il risultato non supererà 24 ore o 60 minuti/secondi.
Come calcolo il numero di ore tra due orari in Excel?
Per calcolare le ore in decimale, usa =(B2-A2)*24, e per ottenere le ore complete, usa =INT((B2-A2)*24).
Quali sono le scorciatoie da tastiera per inserire rapidamente data o ora correnti in Excel?
Ecco come puoi fare:
- Premi Ctrl + ; per inserire la data corrente.
- Premi Ctrl + Shift + ; per inserire l'ora corrente.
Come calcolo il numero di settimane tra due date?
Per calcolare il numero di settimane tra due date, dividi il numero di giorni per 7. Puoi usare la seguente formula: = (End_Date - Start_Date) / 7.


