Excel: evidenziare date ≤ oggi ignorando celle vuote con una regola di formattazione condizionale

Vuoi evidenziare automaticamente in Excel tutte le scadenze fino a oggi ma senza colorare le celle vuote? In questa guida trovi la formula esatta, i passaggi precisi e molte varianti pratiche per adattare la regola a elenchi reali, tabelle, colonne intere e scenari con scadenze imminenti.

Indice

Obiettivo

Nel range J3:J36 vogliamo una regola di formattazione condizionale che:

  • evidenzi le celle che contengono una data minore o uguale a oggi (scadenze già passate o in data odierna);
  • ignori completamente le celle vuote.

Errore comune: perché IF non funziona nella formattazione condizionale

Un tentativo come =IF($J$3:$J$36="","","<=TODAY()") non può funzionare. Le regole di formattazione condizionale non si costruiscono con un IF che restituisce stringhe, ma con una formula booleana (vera/falsa) riferita alla prima cella dell’intervallo. Excel poi estende automaticamente la logica alle altre righe.

Procedura rapida e sicura

  1. Seleziona il range J3:J36.
  2. Vai su Home ▶ Formattazione condizionale ▶ Nuova regola ▶ Usa una formula per determinare le celle da formattare.
  3. Inserisci la formula riferita alla prima cella del range: =AND(J3<=TODAY(), J3<>"") Nelle versioni italiane di Excel la funzione e il separatore sono: =E(J3<=OGGI(); J3<>"")
  4. Fai clic su Formato… e scegli il colore di riempimento (e altri stili) da applicare.
  5. Conferma con OK fino a chiudere le finestre.

Perché la formula funziona

ParteSignificatoRisultato
J3<=TODAY() / J3<=OGGI()La data nella cella di riga 3 è oggi o precedenteVero/Falso
J3<>""La cella non è vuota (esclude celle vuote o con formula che restituisce stringa vuota)Vero/Falso
AND(...) / E(...)La formattazione scatta solo se entrambe le condizioni sono vereApplica formato solo quando ha senso

Non usare riferimenti assoluti ($J$3): la regola deve essere relativa alla prima cella selezionata (J3). Excel replicherà la formula per tutte le righe del range.

Dettagli importanti su separatori e lingua

  • Separatore: in ambienti italiani si usa di norma il punto e virgola (;) nelle formule. Se nel tuo Excel il separatore è la virgola, adatta di conseguenza.
  • Lingua funzioni: TODAY() diventa OGGI(), AND() diventa E(). La logica non cambia.

Alternative robuste e varianti utili

Escludere testi non data con una verifica “soft”

Se nella colonna possono comparire testi vari (es. “TBD”, “—”, “n/d”), la formula base li lascia comunque esclusi perché la cella non è vuota e il confronto con una data restituisce falso. Se vuoi irrobustire ulteriormente la regola, puoi mantenere la condizione “non vuota” e aggiungere eventualmente controlli personalizzati (ad es. escludere stringhe specifiche) con E/AND e O/OR. Esempio in italiano:

=E(J3<>""; J3<>"TBD"; J3<=OGGI())

Evidenziare solo scaduto (escludendo oggi)

Vuoi colorare solo ciò che è già passato e non la data odierna? Usa il minore stretto:

=E(J3<OGGI(); J3<>"")

Evidenziare scadenze entro X giorni

Per mettere in evidenza le scadenze imminenti (oggi compreso) entro un orizzonte di, ad esempio, 7 giorni:

=E(J3<>""; J3>=OGGI(); J3<=OGGI()+7)

Per colorare in modo diverso “oggi” rispetto ai “prossimi 7 giorni”, crea due regole e imposta l’ordine con Interrompi se vero (vedi più avanti).

Includere l’ora esatta (scadenze con orario)

Se le tue celle contengono anche l’ora (data+ora), OGGI() considera solo la data (mezzanotte). Se vuoi che la formattazione rispetti anche l’orario corrente, usa la funzione che restituisce data+ora corrente:

  • In inglese: NOW()
  • In italiano: ADESSO()

Formula esempio (italiano):

=E(J3<>""; J3<=ADESSO())

Come far convivere più regole (e priorità)

Nella finestra Gestisci regole puoi impostare più condizioni con diversificazione cromatica. Un set molto usato:

  1. Scaduto (rosso): =E(J3<>""; J3<OGGI())  → attiva Interrompi se vero.
  2. Oggi (arancione): =E(J3<>""; J3=OGGI())  → attiva Interrompi se vero.
  3. In 7 giorni (giallo): =E(J3<>""; J3>OGGI(); J3<=OGGI()+7).

Disponi le regole nell’ordine indicato e, per le prime due, spunta Interrompi se vero così ogni cella prenderà il primo formato utile.

Applicare la regola a colonne intere o elenchi variabili

Colonna intera

Puoi applicare la regola all’intera colonna J (es. J:J) selezionandola prima di creare la regola. La formula resta riferita alla prima cella dati (J1 o quella che usi come inizio). Attenzione: su file molto grandi può avere un minimo impatto prestazionale.

Elenchi che crescono

Se l’elenco cresce nel tempo, due approcci efficaci:

  • Intervallo “ampio” (ad es. J3:J1000) per coprire aggiunte future.
  • Tabella Excel (Ctrl+T): quando il range è una Tabella, la formattazione si estende automaticamente alle nuove righe. Nota: le formule di formattazione condizionale non accettano sempre i riferimenti strutturati; seleziona quindi le celle dati della colonna interessata e mantieni un riferimento relativo normale (es. se la prima cella dati è C2, usa =E(C2<=OGGI(); C2<>"")).

Compatibilità, aggiornamento e ricalcolo

  • Aggiornamento giornaliero: OGGI() si aggiorna ogni giorno aprendo il file o ricalcolando (F9). Non serve intervento manuale.
  • Compatibilità versioni: le formule presentate funzionano nelle versioni moderne di Excel per Windows e Mac. Anche in Excel su web la logica è la stessa.
  • Calendari e fusi orari: OGGI() e ADESSO() usano l’orologio del sistema in cui è aperto il file.

Diagnostica rapida: perché non si colora nulla?

  1. Le celle sono davvero date? Prova a cambiare il formato in Numero: se vedi numeri interi (es. 45508) hai vere date; se vedi testo, Excel non le riconosce come date.
  2. Riferimento corretto? Nella formula la cella deve essere J3 (o la prima del range selezionato), senza $ davanti.
  3. Ordine delle regole: se altre regole colorano prima e hai attivato “Interrompi se vero”, la nostra potrebbe non eseguire. Porta la regola in alto o disattiva l’interruzione dove non serve.
  4. Separatore giusto: se la formula contiene virgole ma il tuo Excel pretende il punto e virgola (o viceversa), la regola risulta non valida.
  5. Valori non vuoti ma “spazi”: se una cella contiene solo spazi, J3<>"" la considera non vuota. Pulisci gli spazi o aggiungi una variante (vedi sotto).

Varianti per casi particolari

Celle con soli spazi

Per ignorare celle che sono visivamente vuote ma contengono spazi digitati per errore, usa una condizione che “ripulisce” la cella prima del controllo:

=E(LUNGHEZZA(ANNULLA.SPAZI(J3))>0; J3<=OGGI())

In inglese: =AND(LEN(TRIM(J3))>0, J3<=TODAY()).

Due colori: scaduto vs oggi

Vuoi distinguere visivamente scaduto da oggi? Crea due regole distinte sull’intervallo e assegna due formati:

  • Scaduto: =E(J3<>""; J3<OGGI())
  • Oggi: =E(J3<>""; J3=OGGI())

Evidenziare i “non compilati” a parte

Se oltre a ignorare i vuoti vuoi anche segnalare le celle non compilate (per qualità dati), assegna una seconda regola con formato tenue:

=J3=""

Esempio completo: scaduto, oggi, in 7 giorni

Applichiamo tre regole all’intervallo J3:J36 con colori diversi e priorità ordinate:

  1. Scaduto (rosso): =E(J3<>""; J3<OGGI()) Spunta Interrompi se vero.
  2. Oggi (arancione): =E(J3<>""; J3=OGGI()) Spunta Interrompi se vero.
  3. Entro 7 giorni (giallo): =E(J3<>""; J3>OGGI(); J3<=OGGI()+7)

Risultato: le date passate risultano in rosso, quelle di oggi in arancione, quelle imminenti in giallo. Le celle vuote restano neutre.

Best practice per lavorare con le date

  • Inserimento coerente: digita le date nel formato accettato dal tuo sistema (es. gg/mm/aaaa in Italia). Evita testi come “31-13-2025”.
  • Convalida dati: applica una Convalida dati che accetti solo date (Home ▶ Dati ▶ Convalida dati) per prevenire errori di digitazione.
  • Formato cella: imposta un formato data uniforme (es. 14/03/2012 o 14 mar 2012) per leggibilità costante.
  • Sporco nei dati: se importi da CSV o sistemi esterni, può esserci testo che sembra una data. Valuta una fase di pulizia (ad es. testo in colonne, rimozione spazi, conversioni guidate).

Guida passo‑passo illustrata (senza immagini)

  1. Seleziona J3:J36.
  2. Home ▶ Formattazione condizionaleNuova regola.
  3. Scegli Usa una formula per determinare le celle da formattare.
  4. Scrivi: =E(J3<=OGGI(); J3<>"") (Oppure in inglese: =AND(J3<=TODAY(), J3<>""))
  5. Premi Formato…, definisci il Riempimento (e se vuoi anche carattere e bordo).
  6. Conferma con OK, poi ancora OK.
  7. Verifica: cambia una data a ieri, oggi e domani per controllare i tre comportamenti (scatta/ non scatta/ non scatta).

Domande frequenti

La formula con “<=OGGI()” colora anche le date future con orario 00:00?

No. Colora solo date minori o uguali a oggi. Le date future, anche con orario 00:00, non soddisfano la condizione.

Le celle con formula che restituisce stringa vuota (“”) vengono ignorate?

Sì. La condizione J3<>"" è falsa quando la cella contiene una stringa vuota, quindi la formattazione non si attiva.

Meglio J3<>"" o NON(VAL.VUOTO(J3))?

J3<>"" è preferibile perché ignora sia celle realmente vuote sia celle con formula che restituisce stringa vuota. ISBLANK/VAL.VUOTO considera “vuota” solo una cella senza formula.

Posso usare una sola regola per tutta la colonna?

Sì. Seleziona la colonna (o un intervallo molto ampio) e inserisci la formula riferendoti alla prima cella utile. Su file molto grandi valuta l’impatto prestazionale.

Posso combinare più condizioni (es. “oggi o già scadute” e “solo se stato=Attivo”)?

Sì. Basta aggiungere altre clausole nella funzione E. Esempio: se la colonna K contiene lo stato e vuoi colorare solo le righe con “Attivo”:

=E(J3<>""; J3<=OGGI(); K3="Attivo")

Checklist veloce

  • Hai selezionato esattamente l’intervallo giusto (prima di creare la regola)?
  • Nella formula il riferimento è relativo alla prima cella (J3) senza $?
  • Hai usato OGGI()/TODAY() e il separatore corretto?
  • L’ordine delle regole non blocca la nostra?
  • Le celle sono vere date e non testo che sembra una data?

Riepilogo essenziale

Per evidenziare in Excel le date ≤ oggi ignorando i vuoti in J3:J36 (o in qualsiasi altro intervallo), crea una regola di formattazione condizionale con questa formula:

=AND(J3<=TODAY(), J3<>"")

Oppure, in italiano:

=E(J3<=OGGI(); J3<>"")

È semplice, affidabile e si aggiorna da sola ogni giorno. Da qui puoi costruire facilmente altre varianti (solo scaduto, scadenze imminenti, distinzione per colore) e applicarla a colonne intere o elenchi che crescono.


Appendice: esempi pronti da copiare

ObiettivoFormula (IT)Note
Evidenziare ≤ oggi (ignora vuoti)=E(J3<=OGGI(); J3<>"")Versione base consigliata
Solo scaduto (prima di oggi)=E(J3<OGGI(); J3<>"")Esclude la data odierna
Oggi esatto=E(J3=OGGI(); J3<>"")Utile per regola separata
Entro 7 giorni=E(J3>OGGI(); J3<=OGGI()+7; J3<>"")Oggi escluso; includilo sostituendo J3>=OGGI()
Data/ora ≤ adesso=E(J3<=ADESSO(); J3<>"")Usa l’orario corrente
Ignorare celle con soli spazi=E(LUNGHEZZA(ANNULLA.SPAZI(J3))>0; J3<=OGGI())Pulizia spazi prima del test

Con queste ricette la tua colonna delle scadenze sarà sempre leggibile e aggiornata, senza falsi positivi dovuti a celle vuote o testi casuali.


Nota finale sulla performance: se il foglio contiene migliaia di righe e molte regole, preferisci intervalli mirati (es. J3:J2000) invece di J:J, limita il numero di condizioni per cella e usa tabelle per propagare automaticamente le regole alle nuove righe.

Hai altre colonne dipendenti (es. “Stato”, “Responsabile”)? Integra la logica nella stessa formula con ulteriori clausole E(...) e ottieni una evidenziazione “intelligente” davvero aderente al tuo processo.


In sintesi: una sola formula ben impostata vale più di molte scorciatoie. Con =E(J3<=OGGI(); J3<>"") ottieni esattamente ciò che serve: scadenze di oggi o già passate, e nessun effetto collaterale sulle celle vuote.

Indice