Excel: perché YEAR restituisce 1905 e come estrarre l’anno corretto da Project End Date

Se in Excel l’estrazione dell’anno con YEAR/ANNO mostra un valore come 1905 invece di quello atteso, il problema non è la formula ma il formato della cella. Qui trovi la correzione immediata, le cause e le tecniche per evitare l’errore in futuro.

Indice

Descrizione del problema

In un file di progetto, la data di fine attività viene calcolata con una formula di aggregazione, ad esempio:

=MAXIFS(J$2:J$46; C$2:C$46; C2)

dove l’intervallo J$2:J$46 contiene le date di fine effettive o previste, e C$2:C$46 contiene l’identificativo del progetto. Su questa data è stato poi richiesto di mostrare l’anno di go‑live in una colonna dedicata, ad esempio “PLANNED PROJECT GO LIVE YEAR”, con una delle due formule:

=YEAR([@[Project End Date]])
=YEAR(MAXIFS(J$2:J$46; C$2:C$46; C2))

Nonostante il fatto che le celle di origine siano formattate come data e contengano date corrette, il risultato visualizzato nella colonna dell’anno appare come 1905 anziché, per esempio, 2024.

La causa reale

Il calcolo è corretto: YEAR (ANNO) restituisce un numero intero che rappresenta l’anno (per esempio 2024). L’errore nasce quando la cella che riceve il risultato è formattata come data con un formato personalizzato solo apparentemente “numerico”, tipicamente yyyy. In questo caso Excel non “vede” un semplice 2024, ma lo interpreta come numero di serie di una data: il giorno 2024 a partire dal 1° gennaio 1900. Il corrispondente calendario è il 16 luglio 1905. Se alla stessa cella è applicato un formato data, ciò che vedi è quindi una data del primo decennio del Novecento invece del numero dell’anno.

Come Excel interpreta i numeri

In Excel le date sono memorizzate come numeri seriali. Per impostazione predefinita in Windows, il valore 1 corrisponde al 01/01/1900, il valore 2 al 02/01/1900, e così via. Qualunque numero inserito in una cella formattata come data viene convertito nel corrispondente giorno del calendario a partire da quella origine. Ecco perché il numero 2024, se la cella è formattata come data, diventa una data di luglio del 1905.

La funzione YEAR (ANNO) invece restituisce sempre un numero puro. Se il formato cella è “Generale” o “Numero”, vedrai 2024. Se il formato è una data (per esempio dd/mm/yyyy o yyyy), Excel mostrerà il numero come data del passato: ecco il comportamento anomalo.

Soluzione immediata e sicura

  1. Seleziona l’intera colonna “PLANNED PROJECT GO LIVE YEAR”.
  2. Apri Formato celleNumero.
  3. Imposta Generale oppure Numero (decimali 0, separatore delle migliaia a scelta).
  4. In alternativa, applica un formato personalizzato puramente numerico come 0, senza codici data.

Dopo questa modifica, la stessa formula mostrerà correttamente 2024 (o l’anno che ti serve), poiché il risultato è trattato come numero e non più “convertito” in data.

Alternative quando serve testo

Se desideri un valore già formattato come stringa di testo – per esempio perché la colonna alimenta un connettore o un file di scambio che richiede testo e non numeri – usa TEXT (TESTO):

=TEXT([@[Project End Date]];"yyyy")

Questo restituisce la stringa "2024". Essendo testo, il valore rimane uguale indipendentemente dal formato della cella. Attenzione: una colonna di anni in formato testo non è adatta a ordinamenti numerici, somme o filtri tra intervalli numerici; usala quando il requisito è chiaramente “testo”.

Riconoscere subito il problema

Prima di cambiare formule, verifica il tipo del risultato:

  • Controllo visivo: seleziona la cella dell’anno e osserva la barra della formula. Se vedi 2024 ma nella cella compare una data del 1905, il formato è errato.
  • Funzione di diagnosi: usa =TYPE(YEAR([@[Project End Date]])). Se restituisce 1, significa “numero”. Un numero mostrato come data conferma il problema di formattazione.
  • Formato della cella: apri Formato celleCategoria. Se è “Data” o un personalizzato con codici come yyyy, modificalo.

Tabella di esempi pratici

FormulaFormato cellaValore visualizzatoTipo del risultatoSpiegazione
=YEAR([@[Project End Date]])Generale2024NumeroYEAR restituisce un intero e il formato Generale lo mostra com’è.
=YEAR([@[Project End Date]])Data con yyyy16/07/1905Numero mostrato come dataIl numero 2024 viene interpretato come giorno 2024 dal 01/01/1900.
=TEXT([@[Project End Date]];"yyyy")Qualsiasi2024TestoLa funzione produce testo; il formato cella non incide sull’output.
=YEAR(MAXIFS(J$2:J$46;C$2:C$46;C2))Generale2024NumeroCombinazione di aggregazione e estrazione dell’anno: corretto con formato numerico.

Schema di calcolo consigliato per progetti

Per evitare effetti collaterali, progetta la tabella con colonne “di calcolo” e colonne “di presentazione”. Un flusso tipico per il go‑live potrebbe essere:

  1. Data di fine progetto (calcolo): =MAXIFS(J$2:J$46; C$2:C$46; C2) – formato Data.
  2. Anno go‑live (numero): =YEAR([@[Project End Date]]) – formato Generale o Numero.
  3. Anno go‑live testo (presentazione): =TEXT([@[Project End Date]];"yyyy") – quando una stringa è necessaria.

Separare “numero” da “testo” riduce i rischi in grafici, tabelle pivot e filtri avanzati.

Compatibilità e varianti di lingua

In ambienti localizzati, i nomi delle funzioni possono essere tradotti e i separatori cambiano. Ecco le corrispondenze più comuni:

  • YEARANNO
  • MAXIFSMAX.PIÙ.SE
  • TEXTTESTO

Nei sistemi in lingua italiana il separatore degli argomenti è spesso il punto e virgola ;, come negli esempi di questo articolo. In ambienti con separatore delle funzioni ,, adatta le formule di conseguenza.

Quando preferire il testo

Usa una stringa di anno formattata con TEXT quando:

  • devi concatenare l’anno dentro un codice o un identificativo (es. =TEXT([@[Project End Date]];"yyyy")&"‑GO");
  • esporti verso sistemi che non distinguono tra “numero” e “data” e richiedono esplicitamente testo;
  • stai costruendo etichette per grafici dove il motore del grafico interpreta l’asse come categoria, non come scala numerica.

Evita il testo quando servono ordini cronologici, filtri tra intervalli o raggruppamenti numerici: tieni in quel caso l’anno come intero.

Diagnostica rapida con formule di controllo

Queste formule aiutano a capire che cosa sta succedendo nella cella dell’anno:

  • Tipo del risultato: =TYPE(YEAR([@[Project End Date]]))1 indica “numero”.
  • Formato di cella con CELL: =CELL("format";A2) restituisce un codice del formato; utile per intercettare formati data applicati involontariamente.
  • Verifica origine data: =ISNUMBER([@[Project End Date]]) (VAL.NUMERO in alcune localizzazioni) per confermare che la data sia davvero un numero e non testo.

Attenzione al sistema data

Excel può usare due sistemi di data: quello “1900” (predefinito in Windows) e quello “1904” (storicamente usato su Mac). Se una cartella di lavoro è impostata sul sistema 1904, il numero 2024 mostrato come data corrisponderà a una data del 1909, non del 1905. La radice del problema resta la stessa: un numero puro viene forzato a data per via del formato di cella. Per verificare o cambiare il sistema data: File → Opzioni → Avanzate → Quando si calcola la cartella di lavoro → Usa il sistema di date 1904.

Se MAXIFS non è disponibile

In versioni di Excel precedenti in cui MAXIFS non esiste, puoi calcolare la data di fine progetto con alternative equivalenti:

  • Formula matriciale (oggi in molte versioni non serve più la conferma con Ctrl+Shift+Invio):
    =MAX(IF(C$2:C$46=C2; J$2:J$46))
  • AGGREGATE:
    =AGGREGATE(14;6;J$2:J$46/(C$2:C$46=C2))  dove 14 è il massimo e 6 ignora errori.

Una volta ottenuta la data, il resto non cambia: estrai l’anno con YEAR e applica un formato numerico.

Esempio completo con tabella

Immagina una tabella di progetto con queste colonne: Project ID (C), Project End Date (J), PLANNED PROJECT GO LIVE YEAR (K). Un caso sintetico è il seguente:

Project IDProject End Date (J)Formula anno (K)Formato KValore visualizzato
PJ‑00131/05/2024=YEAR(J2)Data con yyyy16/07/1905
PJ‑00131/05/2024=YEAR(J2)Generale2024
PJ‑002=MAXIFS(J$2:J$46;C$2:C$46;C3)=YEAR(J3)NumeroAnno corretto

Buone pratiche per evitare errori

  • Imposta il formato della colonna prima di scrivere la formula. Crea la colonna “Anno” e assegna subito “Generale” o “Numero”.
  • Evita formati data su risultati numerici. I codici yyyy, mmm, dd sono sempre interpretati come data.
  • Separa i livelli: calcolo della data, estrazione dell’anno numerico, eventuale conversione a testo per la presentazione.
  • Usa TEXT solo quando serve. Un anno come testo non è adatto a filtri tra intervalli (“tra 2021 e 2024”).
  • Controlla i report condivisi. Se più persone formattano colonne, blocca il formato usando stili o protezione del foglio.
  • Sanifica i dati importati. Con “Testo in colonne”, “Valori” o Power Query assicurati che i campi data siano davvero numerici.

Uso in grafici e tabelle pivot

Se l’anno è un numero intero, i grafici possono costruire un asse continuo su base temporale e le tabelle pivot possono raggruppare correttamente. Se invece l’anno è testo, otterrai un asse categoriale e un ordinamento alfabetico (ad esempio 2019, 2020, 2021, 2023, 2022 può diventare 2019, 2020, 2021, 2022, 2023 solo se i valori sono numeri). Tieni quindi una colonna numerica per analisi e, se serve, deriva a parte l’etichetta testuale.

Scorciatoie per correggere colonne già sbagliate

  • Converti formati impropri: seleziona la colonna → HomeNumeroGenerale. Se l’errore persiste, verifica che non ci siano regole di formattazione condizionale che riportano formati data.
  • Forza il ricalcolo: premi Ctrl+Alt+F9 se i risultati non si aggiornano.
  • Rimuovi formati data ereditati: HomeCancellaCancella formati, poi imposta “Numero”.

Domande frequenti

Perché vedo un anno del primo Novecento?
Perché la cella dell’anno è formattata come data e il numero dell’anno viene interpretato come “numero di serie della data”. Imposta “Generale” o “Numero”.

Funziona anche se la data di fine è calcolata?
Sì. Che la data venga da MAXIFS, da una formula matriciale o sia digitata manualmente, YEAR restituisce un intero. È solo il formato cella che determina la visualizzazione errata.

Meglio YEAR o TEXT(...;"yyyy")?
Usa YEAR per analisi e calcoli, TEXT per etichette o export testuali. In caso di dubbio, conserva entrambi in due colonne.

Perché talvolta non compare il 1905 ma un altro anno del passato?
Potresti essere su una cartella di lavoro impostata sul sistema di date 1904. Il problema è lo stesso: formato data applicato a un numero.

Checklist finale

  • La colonna dell’anno ha formato Generale o Numero.
  • Le date di origine sono veri numeri data (non testo).
  • Se serve un’etichetta, c’è una colonna dedicata con TEXT(...;"yyyy").
  • Grafici, pivot e filtri lavorano sul numero, non sul testo.
  • Il sistema data della cartella è noto e coerente tra i file.

Esempi pronti da incollare

Anno numerico dalla data di fine calcolata

=YEAR(MAXIFS(J$2:J$46; C$2:C$46; C2))

Etichetta testuale dell’anno

=TEXT([@[Project End Date]];"yyyy")

Versione con nomi in italiano

=ANNO(MAX.PIÙ.SE(J$2:J$46; C$2:C$46; C2))
=TESTO([@[Project End Date]];"aaaa")

Nota: il codice formato "aaaa" nelle versioni localizzate stampa l’anno a quattro cifre; verifica la tua localizzazione se preferisci "yyyy".

Conclusione

Quando l’estrazione dell’anno in Excel mostra un valore nel passato, non cambiare le formule: cambia il formato della cella. Lavorando con una colonna numerica per l’anno e, se necessario, una colonna separata per l’etichetta testuale, i tuoi report su go‑live saranno coerenti, affidabili e pronti per tabelle pivot, grafici e dashboard.


Riepilogo operativo

  1. Calcola la data di fine progetto con MAXIFS o alternative equivalenti.
  2. Estrai l’anno con YEAR/ANNO.
  3. Imposta la colonna dell’anno su Generale o Numero.
  4. Se occorre un’etichetta, usa TEXT(...;"yyyy").

Seguendo questi passaggi, la colonna “PLANNED PROJECT GO LIVE YEAR” mostrerà sempre l’anno corretto – senza più sorprese come 1905.

Indice