Excel: evidenziare le scadenze superate con la formattazione condizionale (TODAY, WORKDAY)

Vuoi far saltare all’occhio le attività in ritardo senza aggiornare nulla a mano? Con una singola regola di formattazione condizionale in Excel puoi colorare le scadenze già superate solo se non sono ancora “Complete”, mantenendo il foglio sempre aggiornato rispetto ad oggi.

Indice

Scenario e prerequisiti

Hai un foglio con tre colonne:

  • A — Requested: la data di richiesta inserita dall’utente (es. 2025-09-15).
  • B — Due: calcolata automaticamente 14 giorni dopo con la formula:
    =IF(A2="","",A2+14)
  • C — Complete: vuota finché il lavoro non è terminato; quando chiuso contiene YES (o comunque un testo).

Obiettivo: evidenziare (con un riempimento o un altro stile) solo le date in B che sono già scadute rispetto a oggi e per cui la colonna C è ancora vuota.

Soluzione minima: la formula della regola

Nella finestra Nuova regola di formattazione scegli “Utilizza una formula per determinare le celle da formattare” e inserisci, partendo dalla prima riga di dati (di solito riga 2), questa formula:

=AND($C2="", $B2<TODAY())
  • TODAY() (con le parentesi) restituisce la data odierna.
  • $C2="" verifica che la cella di stato sia vuota (quindi non completata).
  • $B2<TODAY() verifica che la scadenza sia passata.

Imposta l’area di applicazione sul tuo intervallo (es. B2:B3500) e scegli un formato (riempimento rosso tenue, grassetto, ecc.). Excel replicherà automaticamente la logica a tutte le righe successive.

Perché funziona

La regola usa riferimenti misti: la colonna è bloccata ($B e $C), la riga no. Così la riga 3 valuterà $C3 e $B3, la riga 4 valuterà $C4 e $B4 e così via, senza dover creare più regole.

Versione robusta (consigliata)

A volte la colonna B contiene una stringa vuota ("") prodotta dalla formula della scadenza quando A è vuota. In Excel una stringa vuota può comportarsi come zero, facendo risultare vera la condizione ""<TODAY() e colorando righe che in realtà non hanno ancora una data. Per evitare falsi positivi usa questa variante, che controlla che B sia davvero una data:

=AND($C2="", ISNUMBER($B2), $B2<TODAY())

La funzione ISNUMBER (in molte interfacce italiane: VAL.NUMERO) assicura che B contenga un numero seriale di data valido.

Procedura passo‑passo in Excel

  1. Seleziona l’intervallo da evidenziare (ad es. B2:B3500). Se vuoi evidenziare l’intera riga, seleziona l’intero range dati (ad es. A2:C3500 — vedi sezione dedicata più avanti).
  2. Vai in Home > Formattazione condizionale > Nuova regola.
  3. Scegli Utilizza una formula per determinare le celle da formattare.
  4. Inserisci la formula (minima o robusta) riportata sopra, partendo dalla riga 2.
  5. Clicca su Formato… e imposta stile e colori (riempimento, testo in grassetto, eventualmente un bordo leggero).
  6. Conferma con OK fino a chiudere le finestre.

Se usi più regole (es. “scade oggi” o “in arrivo”), apri Gestisci regole e ordinale correttamente. Abilita Interrompi se vero (Stop If True) sulla regola “Scaduto” per evitare conflitti con le altre.

Variante: calcolare il ritardo direttamente dalla richiesta

Se preferisci non affidarti alla colonna B e vuoi calcolare il ritardo direttamente dalla data di richiesta in A, usa questa formula:

=AND($C2="", $A2<>"", $A2<TODAY()-14)

Anche qui aggiungiamo il controllo di non vuoto ($A2<>"") per evitare che righe senza data vengano giudicate in ritardo. In alternativa alla verifica di non vuoto puoi usare:

=AND($C2="", ISNUMBER($A2), $A2<TODAY()-14)

Evidenziare l’intera riga (non solo la data)

Per colorare tutta la riga di una scadenza in ritardo:

  1. Seleziona l’intero blocco dati, ad esempio A2:C3500 (o quante colonne ti servono).
  2. Crea la regola con formula (versione robusta consigliata):
    =AND($C2="", ISNUMBER($B2), $B2<TODAY())
  3. Assicurati che nella formula i riferimenti di colonna B e C siano assoluti (con $) e che la riga sia relativa (senza $), come nell’esempio. Così Excel valuterà correttamente ogni riga.

Weekend e giorni lavorativi

Se le tue scadenze contano solo i giorni lavorativi:

  • Per calcolare la scadenza saltando sabato e domenica usa in B (al posto di A2+14):
    =IF(A2="","",WORKDAY($A2,14))
  • Se hai weekend non standard (es. solo domenica) usa WORKDAY.INTL specificando il pattern di weekend, oppure festività in un intervallo dedicato.
  • Per evidenziare in base ai giorni lavorativi trascorsi senza usare B:
    =AND($C2="", NETWORKDAYS($A2, TODAY())>14)

Nota: Le funzioni WORKDAY e NETWORKDAYS possono avere varianti .INTL per personalizzare i giorni non lavorativi e includere un elenco di festività aziendali.

Gestire “Complete” con valori diversi

La condizione $C2="" funziona bene quando la colonna C è realmente vuota finché il lavoro non è completato. Se però in C compaiono spazi, note o stati intermedi (“IN PROGRESS”, “HOLD”…), puoi usare:

  • Vuoto reale o solo spazi:
    =AND(LEN(TRIM($C2))=0, ISNUMBER($B2), $B2<TODAY())
  • Considerare completata qualsiasi riga non vuota:
    =AND($C2="", ISNUMBER($B2), $B2<TODAY()) (formula base) oppure
    =AND(LEN($C2)=0, ISNUMBER($B2), $B2<TODAY())

Tre livelli di avviso (consigli di UX)

Molti team preferiscono distinguere tra scaduto, scade oggi e in scadenza a breve. Crea tre regole (in quest’ordine) e assegna colori diversi:

  1. Scaduto (rosso):
    =AND($C2="", ISNUMBER($B2), $B2<TODAY())
    Attiva Interrompi se vero.
  2. Scade oggi (arancione):
    =AND($C2="", ISNUMBER($B2), $B2=TODAY())
  3. In arrivo (entro 3 giorni) (giallo):
    =AND($C2="", ISNUMBER($B2), $B2>TODAY(), $B2<=TODAY()+3)

Se lavori con date/ore (timestamp) e vuoi considerare il tempo al minuto, sostituisci TODAY() con NOW().

Prestazioni e ambito della regola

Per file di grandi dimensioni, evitare di applicare la regola a un’intera colonna (B:B) se non necessario: meglio limitarsi al blocco effettivo (es. B2:B3500). In alternativa:

  • Trasforma l’elenco in Tabella (Ctrl+T): le regole applicate a una colonna della Tabella si estendono automaticamente alle nuove righe.
  • Usa una colonna helper (es. Overdue?) con formula booleana =AND($C2="", ISNUMBER($B2), $B2<TODAY()) e crea una regola che verifica =$D2=TRUE. È più trasparente e facile da manutenere.

Controllare formati e sistemi data

  • Formato celle: assicurati che B sia formattata come Data. Se vedi numeri tipo 45208, cambia stile in Data breve.
  • Calcolo automatico: File > Opzioni > Formule > Calcolo cartella di lavoro su Automatico, così TODAY() si aggiorna.
  • Sistema data: Excel usa un numero seriale; se importi dati da altre fonti, verifica che non siano testi (in quel caso ISNUMBER fallirà e la regola non scatta).

Conversione per interfacce italiane

Se la tua installazione di Excel è localizzata, potresti dover:

  • sostituire le virgole con i punti e virgola (;) come separatore degli argomenti;
  • usare i nomi funzione tradotti. Ecco una mappatura rapida:
IngleseItalianoNote
IFSELogica condizionale
ANDEConnettivo logico
TODAYOGGIData corrente (senza ora)
NOWADESSOData e ora correnti
ISNUMBERVAL.NUMEROVero se la cella contiene un numero (date incluse)
WORKDAYGIORNO.LAVORATIVOUsa .INTL per weekend personalizzati
NETWORKDAYSGIORNI.LAVORATIVI.TOTUsa .INTL per weekend personalizzati

Esempio (interfaccia italiana, separatore ;):

=E($C2=""; VAL.NUMERO($B2); $B2<OGGI())

Gestione casi particolari

  • Date future immesse per errore: la regola non evidenzierà nulla (corretto). Valuta una regola separata per segnalare date incoerenti ($B2>TODAY()+365).
  • Valori testo in B: la regola robusta li ignora; se vuoi evidenziarli come errore, crea una regola aggiuntiva =AND($C2="",NOT(ISNUMBER($B2)),LEN($B2)>0) con riempimento grigio.
  • Timestamp: usa NOW() al posto di TODAY() se la scadenza è al minuto (es. 2025‑10‑06 15:30).

Esempio pratico

A — RequestedB — DueC — CompleteRisultato atteso
2025-09-10=A2+14 → 2025-09-24Evidenziata (in ritardo)
2025-09-25=A3+14 → 2025-10-09Non evidenziata (non ancora scaduta)
2025-09-20=A4+14 → 2025-10-04YESNon evidenziata (completata)
=IF(A5=””,””,A5+14) → “”Non evidenziata (nessuna data)

Diagnostica rapida se “non funziona”

  1. Controlla l’anteprima in Home > Formattazione condizionale > Gestisci regole: l’intervallo Si applica a copre tutte le righe giuste?
  2. Verifica i riferimenti: in formula appaiono $B2 e $C2 (colonna assoluta, riga relativa)?
  3. Ispeziona i dati: in B ci sono testi o date formattate come testo? In caso, prova la formula con ISNUMBER.
  4. Calcolo: la cartella è su Automatico? Premi F9 per forzare il ricalcolo.
  5. Ordine delle regole: se hai livelli multipli, metti “Scaduto” sopra e attiva Interrompi se vero.

Alternative utili

Regola unica senza usare la colonna B

Vuoi eliminare la dipendenza dalla colonna B? Ecco una formula diretta e solida:

=AND($C2="", ISNUMBER($A2), $A2<TODAY()-14)

Indicatore testuale del ritardo

Aggiungi una colonna ausiliaria (es. D — Status) con:

=IF($C2<>""; "Complete"; IF(ISNUMBER($B2); IF($B2<TODAY(); "Overdue"; IF($B2=TODAY(); "Due today"; "Upcoming")); "No date"))

Così puoi filtrare facilmente e collegare la formattazione condizionale a =$D2="Overdue".

Best practice operative

  • Usa colori coerenti: Rosso per “Scaduto”, Arancione per “Oggi”, Giallo per “A breve”. Evita colori troppo saturi che disturbano la leggibilità del testo.
  • Blocca le colonne chiave quando scorri (Visualizza > Blocca riquadri) per avere sempre sott’occhio Requested/Due/Complete.
  • Proteggi le formule della colonna B (blocca celle e proteggi il foglio) per evitare che vengano sovrascritte.
  • Definisci le festività in un elenco dedicato e passa quell’intervallo a WORKDAY/NETWORKDAYS per calcolare scadenze realistiche.

Ricapitolando

Per evidenziare automaticamente solo le scadenze superate e non ancora completate, imposta una regola di formattazione condizionale con formula:

=AND($C2="", ISNUMBER($B2), $B2<TODAY())

Applica la regola al range di date (o all’intera tabella, se vuoi colorare la riga) e scegli uno stile ben visibile. In alternativa, calcola il ritardo direttamente dalla A con =AND($C2="", ISNUMBER($A2), $A2<TODAY()-14). Con queste impostazioni le scadenze si “auto‑accendono” appena superano la data odierna, senza interventi manuali.


Appendice: guida rapida (copiabile)

Regola minima (colonna B)

=AND($C2="", $B2<TODAY())

Regola robusta (colonna B)

=AND($C2="", ISNUMBER($B2), $B2<TODAY())

Regola alternativa (solo colonna A)

=AND($C2="", ISNUMBER($A2), $A2<TODAY()-14)

Tre livelli

=AND($C2="", ISNUMBER($B2), $B2<TODAY())            
=AND($C2="", ISNUMBER($B2), $B2=TODAY())            
=AND($C2="", ISNUMBER($B2), $B2>TODAY(), $B2<=TODAY()+3)

Suggerimento finale: se il tuo Excel usa i nomi funzione italiani e il separatore ;, converti le formule così: =E($C2=""; VAL.NUMERO($B2); $B2<OGGI()). Il principio non cambia.

Indice