La differenza tra due date si basa su un meccanismo che i fogli di calcolo nascondono dietro le loro interfacce: ogni data è memorizzata come un numero intero sequenziale. Excel utilizza il sistema 1900 (il 1° gennaio 1900 vale 1), Google Sheets il sistema 1899. Una sottrazione semplice tra due celle di date restituisce quindi una differenza in giorni, senza funzione particolare. Tutta la complessità appare quando si vuole esprimere questa differenza in mesi, anni o giorni lavorativi.
Serializzazione delle date e trappole del sistema 1900 in Excel
Excel eredita un bug storico di Lotus 1-2-3: il 29 febbraio 1900 è considerato una data valida anche se il 1900 non è un anno bisestile. Questo giorno fantasma sposta di un’unità tutti i numeri di serie precedenti al 1° marzo 1900.
Ulteriori letture : Come scegliere i colori giusti per il tuo legno: il grande dibattito tra bianco e antracite
In pratica, questo spostamento influisce solo sui calcoli riguardanti date situate prima di marzo 1900, un caso raro. Raccomandiamo di tenerlo a mente quando si maneggiano archivi storici o si importano file tra Excel e un sistema che non applica questo stesso bias (database SQL, Python datetime).
Google Sheets aggira il problema adottando il sistema 1899, dove il 30 dicembre 1899 vale 0. Durante un trasferimento di file tra i due fogli di calcolo, una differenza di un giorno può apparire sulle date antiche. La verifica manuale di una data di riferimento conosciuta, prima di qualsiasi calcolo di massa, evita errori silenziosi. Per approfondire questi meccanismi, puoi scoprire le soluzioni su Anekdotes in un contesto dettagliato.
Consigliato : Scopri come convertire un assegno Kadéos in carta facilmente e rapidamente

DATEDIF, FRACTION.ANNO e sottrazione diretta: quale formula per quale bisogno
La sottrazione diretta (cella fine – cella inizio) rimane il metodo più affidabile per ottenere un numero di giorni. Il risultato è un intero, senza ambiguità. Per le settimane, si divide per 7 e si tronca.
La funzione DATEDIF accetta tre argomenti: data di inizio, data di fine e un’unità (“d” per giorni, “m” per mesi, “y” per anni). Permette anche combinazioni come “ym” (mesi rimanenti dopo il conteggio degli anni) o “md” (giorni rimanenti dopo il conteggio dei mesi). Microsoft segnala esplicitamente che DATEDIF può produrre risultati errati in alcuni scenari, in particolare con l’argomento “md” su intervalli che coprono un cambiamento di mese breve (febbraio).
FRACTION.ANNO combinata a TRONCA
Per ottenere un numero di anni decimali tra due date, FRACTION.ANNO (YEARFRAC in inglese) offre un’alternativa più trasparente. Accetta un parametro di base di calcolo che modifica la convenzione di conteggio dei giorni:
- Base 0 (US 30/360): ogni mese è conteggiato come 30 giorni, l’anno come 360. Utilizzata in finanza per le obbligazioni.
- Base 1 (Actual/Actual): giorni reali su anno reale. La scelta più intuitiva per calcoli calendari.
- Base 3 (Actual/365): giorni reali su 365, ignora gli anni bisestili. Comune nella contabilità bancaria.
Imbottigliando FRACTION.ANNO in TRONCA, si isola la parte intera per ottenere un numero di anni completi. TRONCA(FRACTION.ANNO(inizio;fine;1)) restituisce gli anni interi trascorsi, senza arrotondamenti.
Calcolo dei giorni lavorativi con NETWORKDAYS e NETWORKDAYS.INTL
Contare i giorni calendari non è sufficiente in un contesto professionale. La funzione NB.GIORNI.LAVORATIVI (NETWORKDAYS) esclude automaticamente i sabati, le domeniche e i giorni festivi elencati in un intervallo di riferimento.
La sua variante NETWORKDAYS.INTL consente di ridefinire il fine settimana. Il secondo argomento accetta un codice numerico o una stringa binaria di 7 caratteri (uno per giorno della settimana). Un “1” segnala un giorno di riposo. Esempio: “0000011” designa sabato e domenica come fine settimana, “0000010” rimuove solo il sabato.
Questa flessibilità copre i contesti in cui il fine settimana differisce dallo standard occidentale. Osserviamo regolarmente errori su questo parametro quando è configurato manualmente: invertire un solo bit nella stringa falsifica tutto il conteggio.
Gestire l’intervallo dei giorni festivi
NETWORKDAYS si aspetta un intervallo opzionale di date festive. Due buone pratiche:
- Memorizzare i giorni festivi in un foglio dedicato, nominato esplicitamente (“Festivi_2025”), per semplificare la manutenzione annuale.
- Utilizzare un intervallo nominato dinamico (OFFSET + COUNTA o una tabella strutturata) affinché l’aggiunta di un giorno festivo venga presa in considerazione senza modificare la formula.
- Verificare che le date festive siano effettivamente nel formato data e non testo, pena un conteggio silenziosamente errato.

Automatizzare il calcolo della differenza di date negli strumenti no-code
Le piattaforme no-code integrano ora moduli nativi per il calcolo delle durate tra due date. Make (ex-Integromat) offre un modulo “Data & Ora” con un’operazione di differenza parametrizzabile in giorni, ore o minuti, senza scrivere formule.
Il vantaggio rispetto a un foglio di calcolo è duplice. Prima di tutto, il calcolo viene eseguito in un flusso automatizzato (webhook, CRM, strumento di gestione progetti) senza intervento manuale. Inoltre, il fuso orario è gestito a livello di scenario, cosa che un foglio di calcolo classico non fa nativamente sulle date senza componente oraria.
La convergenza tra Excel per il web ed Excel desktop è anche progredita: funzioni come NETWORKDAYS.INTL sono ora supportate in Excel per il web, il che rende i calcoli delle durate di progetto utilizzabili direttamente in un browser, senza versione desktop.
La scelta del metodo dipende dal volume e dal contesto. Per un calcolo occasionale, la sottrazione diretta in un foglio di calcolo rimane il percorso più breve. Non appena il calcolo alimenta un processo ricorrente (fatturazione, monitoraggio del progetto, sollecito contrattuale), l’automazione tramite uno strumento no-code o una formula NETWORKDAYS ben parametrizzata evita errori di copia e incolla che si accumulano silenziosamente, mese dopo mese.
