LogoExcel SOS
  • Assistente
  • Blog
  • Modelli
  • Prezzi
Contratti in Scadenza? GIORNI Calcola i Giorni Rimasti, UNISCI.TESTO Costruisce l'Alert
2026/04/06
Premium

Contratti in Scadenza? GIORNI Calcola i Giorni Rimasti, UNISCI.TESTO Costruisce l'Alert

Hai decine di contratti fornitori da monitorare? Con GIORNI calcoli i giorni alla scadenza, con UNISCI.TESTO generi alert pronti da inviare. Tutorial pratico.

Valentina gestisce i contratti fornitori di un'azienda di Torino. Quarantadue contratti attivi, ognuno con la sua data di scadenza. Il suo metodo attuale: aprire il file Excel ogni lunedì, scorrere le date una per una, calcolare mentalmente quanti giorni mancano, e scrivere a mano le email di rinnovo.

Ci vuole un'ora. E ogni tanto qualcosa sfugge.

Con due formule, questo processo si riduce a zero minuti — il foglio segnala da solo quali contratti stanno per scadere e genera i messaggi di alert pronti da copiare.

Vuoi il foglio già pronto? Scarica il Tracciatore Scadenze Contratti con GIORNI e UNISCI.TESTO già configurati, semaforo automatico e dashboard inclusi.

Anteprima del tracciatore scadenze contratti in Excel

Il Problema: Decine di Date da Tenere d'Occhio

Il registro contratti di Valentina ha questa forma:

FornitoreTipo ContrattoData InizioData Fine
Acme SrlFornitura IT01/04/202430/04/2026
Beta SpAManutenzione15/06/202314/06/2026
Gamma SasPulizie01/01/202531/12/2025
Delta SrlSicurezza01/03/202428/02/2027

Quarantadue righe così. Ogni settimana dovrebbe calcolare quanti giorni mancano alla scadenza di ogni contratto. E poi scrivere un riassunto per il responsabile: "Contratto Gamma Sas (Pulizie): scaduto il 31/12/2025. Contratto Acme Srl (Fornitura IT): scade tra 24 giorni."

Il problema si risolve in due passaggi:

  1. GIORNI → calcola i giorni esatti alla scadenza
  2. UNISCI.TESTO → assembla il messaggio di alert con tutti i dati

Fumetto: Valentina controlla scadenze contratti con Excel

GIORNI: Conta i Giorni Esatti tra Due Date

GIORNI (in inglese DAYS) calcola la differenza in giorni tra due date. È la formula giusta per scadenze perché restituisce un numero esatto — non mesi approssimati, non anni con decimali: giorni precisi.

Sintassi:

=GIORNI(data_fine; data_inizio)
  • data_fine = la data più recente (la scadenza del contratto)
  • data_inizio = la data di partenza (di solito OGGI())

Attenzione all'ordine: data_fine viene prima, data_inizio dopo. Se inverti, ottieni un numero negativo. Diverso da DATA.DIFF che ha ordine opposto.

Esempi:

=GIORNI("30/04/2026"; OGGI())     → giorni che mancano al 30 aprile 2026
=GIORNI(C2; OGGI())               → giorni alla scadenza del contratto in C2
=GIORNI(OGGI(); C2)               → giorni TRASCORSI dalla data in C2 (ordine invertito)

Per il registro di Valentina:

Se la data di scadenza è in colonna D, in E2:

=GIORNI(D2; OGGI())

Risultato: 24 (mancano 24 giorni alla scadenza del contratto Acme Srl).

Se il risultato è negativo, il contratto è già scaduto — e il valore assoluto indica da quanti giorni.

Aggiungi il semaforo con SE:

Un numero da solo non basta. Aggiungi uno stato leggibile in F2:

=SE(E2<0; "SCADUTO"; SE(E2<=30; "URGENTE"; SE(E2<=90; "ATTENZIONE"; "OK")))
Giorni rimastiStato
< 0SCADUTO
0-30URGENTE
31-90ATTENZIONE
> 90OK

Tre livelli di allerta, leggibili a colpo d'occhio. Aggiungi la formattazione condizionale (rosso/arancio/verde) e il foglio diventa un vero sistema di monitoraggio.

Flusso formula: data scadenza → GIORNI → SE → stato semaforo

UNISCI.TESTO: Assembla il Messaggio di Alert

UNISCI.TESTO (in inglese TEXTJOIN) unisce più valori in una stringa unica, con un separatore, ignorando le celle vuote se lo scegli. È diversa da CONCATENA perché può unire un intero intervallo in un colpo solo.

Sintassi:

=UNISCI.TESTO(separatore; ignora_vuote; testo1; [testo2]; ...)
  • separatore = il carattere (o stringa) che mette tra i valori
  • ignora_vuote = VERO per saltare le celle vuote, FALSO per includerle
  • testo1, testo2... = i valori da unire (possono essere intervalli interi)

Esempi:

=UNISCI.TESTO(", "; VERO; A2:A10)
→ "Acme Srl, Beta SpA, Gamma Sas" (solo le celle non vuote)

=UNISCI.TESTO(" | "; VERO; A2; B2; C2)
→ "Acme Srl | Fornitura IT | 30/04/2026"

=UNISCI.TESTO(" - "; FALSO; "Fornitore:"; A2)
→ "Fornitore: - Acme Srl"  ← nota: include il trattino anche se va tra due valori fissi

Costruisci il messaggio di alert:

Il messaggio che Valentina vuole generare è:

"Acme Srl (Fornitura IT): scade tra 24 giorni — URGENTE"

In G2, con fornitore in A2, tipo in B2, giorni in E2 e stato in F2:

=UNISCI.TESTO(""; VERO; A2; " ("; B2; "): scade tra "; E2; " giorni — "; F2)

Risultato: Acme Srl (Fornitura IT): scade tra 24 giorni — URGENTE

Trascina verso il basso per tutti i 42 contratti. In colonna G hai i messaggi pronti da copiare.

Il Combo: Dashboard di Allerta Contratti

Metti insieme GIORNI, SE e UNISCI.TESTO per costruire un foglio di monitoraggio completo.

Struttura del foglio:

ColContenutoFormula
AFornitore(dato)
BTipo contratto(dato)
CData inizio(dato)
DData scadenza(dato)
EGiorni rimasti=GIORNI(D2;OGGI())
FStato=SE(E2<0;"SCADUTO";SE(E2<=30;"URGENTE";SE(E2<=90;"ATTENZIONE";"OK")))
GMessaggio alert=UNISCI.TESTO("";VERO;A2;" (";B2;"): ";SE(E2<0;"scaduto da ";SE(E2=0;"scade oggi! — ";UNISCI.TESTO("";VERO;"scade tra ";E2;" giorni — ")));SE(E2<0;ABS(E2)&" giorni — ";"");F2)

Versione richiesta: UNISCI.TESTO è disponibile da Excel 2019 e Excel 365. Su Excel 2016 o precedenti usa CONCATENA o l'operatore &. Le formule con FILTRO e ORDINA in questa sezione richiedono Excel 365.

Nota: la formula in G è volutamente semplificata per chiarezza. Nella sezione Premium vediamo come gestire anche i casi "scade oggi" e "già scaduto" con un testo diverso.

Versione semplificata (per iniziare):

In G2:

=UNISCI.TESTO(""; VERO; A2; " ("; B2; "): scade tra "; E2; " giorni — "; F2)

Funziona perfettamente per i contratti ancora attivi. Per gestire i contratti scaduti con un testo diverso, aggiunge una virgola SE intorno al messaggio giorni.

Il riepilogo finale — UNISCI.TESTO su tutti i contratti critici:

Vuoi una cella con il riepilogo di tutti i contratti URGENTI da inviare al responsabile?

Supponi di avere i messaggi in G2:G50. In una cella a parte:

=UNISCI.TESTO(CAR(10); VERO; SE(E2:E50<=30; G2:G50; ""))

CAR(10) è il carattere di ritorno a capo — ogni contratto va su una nuova riga. SE(E2:E50<=30; G2:G50; "") filtra solo i contratti con meno di 30 giorni alla scadenza.

Risultato: una cella multi-riga con tutti i contratti urgenti, pronta da copiare in un'email.

Gli Errori da Non Fare

1. Ordine invertito in GIORNI

=GIORNI(OGGI(); D2)   ← giorni TRASCORSI (passato positivo, futuro negativo)
=GIORNI(D2; OGGI())   ← giorni RIMANENTI (futuro positivo, passato negativo)

Entrambi sono corretti — ma danno risultati opposti. Decidi quale logica vuoi e usa quella coerentemente in tutto il foglio.

2. UNISCI.TESTO con numeri non formattati

Quando includi un numero in UNISCI.TESTO, Excel lo usa come numero grezzo:

=UNISCI.TESTO(""; VERO; "Scade il "; D2)
→ "Scade il 46385"   ← numero seriale della data, non la data leggibile!

Per ottenere la data formattata, avvolgi con TESTO:

=UNISCI.TESTO(""; VERO; "Scade il "; TESTO(D2; "GG/MM/AAAA"))
→ "Scade il 30/04/2026"

3. GIORNI restituisce un errore #VALORE!

Succede quando la cella della data contiene testo invece di una vera data Excel. Controlla che le date siano inserite come date (non come "30/04/2026" in formato testo). Soluzione rapida:

=SE(VAL.DATA(D2); GIORNI(D2; OGGI()); "Data non valida")

4. Confondere GIORNI con DATA.DIFF

GIORNI(fine; inizio) → fine - inizio in giorni, accetta date passate e future, restituisce negativo se fine < inizio

DATA.DIFF(inizio; fine; "d") → stesso risultato ma con ordine INVERTITO degli argomenti e non accetta scambi

In un foglio di monitoraggio scadenze, GIORNI è più intuitivo perché puoi mettere la data di scadenza come primo argomento.

Tecniche Avanzate: Messaggi Intelligenti e Dashboard Dinamica

Messaggio contestuale: testo diverso per scaduto vs futuro

La formula base in G2 mostra "scade tra -15 giorni" per i contratti scaduti. Migliora il messaggio così:

=UNISCI.TESTO(""; VERO;
  A2; " ("; B2; "): ";
  SE(E2<0;
    "SCADUTO da " & ABS(E2) & " giorni",
    SE(E2=0;
      "scade OGGI",
      "scade tra " & E2 & " giorni — " & F2
    )
  )
)

Risultati:

  • Se scaduto: Gamma Sas (Pulizie): SCADUTO da 96 giorni
  • Se scade oggi: Beta SpA (Manutenzione): scade OGGI
  • Se futuro: Acme Srl (Fornitura IT): scade tra 24 giorni — URGENTE

Lista priorità con ORDINA + FILTRO

Mostra automaticamente i 5 contratti più urgenti in ordine crescente di giorni rimasti:

=ORDINA(
  FILTRO(A2:G50; (E2:E50>=0)*(E2:E50<=90));
  5; 1
)

Dove la colonna 5 (E) contiene i giorni rimasti. Questo crea una tabella dinamica con solo i contratti critici, ordinati dal più urgente.

Riepilogo per email con UNISCI.TESTO a cascata

Per un'email con i contratti urgenti ordinati per scadenza:

=UNISCI.TESTO(CAR(10); VERO;
  SE(ORDINA(FILTRO(E2:E50;E2:E50<=30);1;1)<=30;
    ORDINA(FILTRO(G2:G50;E2:E50<=30);
      ORDINA(FILTRO(E2:E50;E2:E50<=30);1;1); 1);
    "")
)

Questo filtra i contratti in scadenza entro 30 giorni, li ordina per urgenza e li concatena in un unico blocco di testo, separato da ritorni a capo. Copia e incolla direttamente in un'email.

Semaforo con GESTEP (alternativa professionale)

Invece di SE annidati, GESTEP restituisce 1 se il valore supera una soglia, 0 altrimenti. Usa il risultato per costruire un semaforo visivo con caratteri:

=UNISCI.TESTO(""; VERO;
  SCEGLI(GESTEP(E2;90)+GESTEP(E2;30)+GESTEP(E2;0)+1;
    "SCADUTO"; "URGENTE"; "ATTENZIONE"; "OK")
)

GESTEP(E2;0) = 1 se E2 >= 0 (non scaduto) GESTEP(E2;30) = 1 se E2 >= 30 (oltre 30 giorni) GESTEP(E2;90) = 1 se E2 >= 90 (oltre 90 giorni)

La somma 0/1/2/3 diventa l'indice per SCEGLI: 1=SCADUTO, 2=URGENTE, 3=ATTENZIONE, 4=OK.

Calcolo automatico della data di reminder

Vuoi ricevere un avviso 30 giorni prima della scadenza? Aggiungi una colonna "Data Reminder":

=DATA.MESE(D2; -1)

Sottrae un mese dalla data di scadenza. Combina con GIORNI per sapere quanti giorni mancano al reminder:

=GIORNI(DATA.MESE(D2; -1); OGGI())

Se il risultato è negativo significa che la finestra di reminder è già aperta — devi contattare il fornitore ora.

Accedi per continuare a leggere

Questo è un contenuto premium. Accedi al tuo account per visualizzare il contenuto completo.


Approfondisci:

  • Scarica il Tracciatore Scadenze Contratti — semaforo e dashboard già pronti
  • Formule Data in Excel: OGGI, DATA.DIFF, FINE.MESE e non solo — le altre formule data per il monitoraggio
  • SE Annidati e Alternative: PIU.SE, SWITCH, SCEGLI — come costruire semafori multi-livello
  • Chiedi all'Assistente AI — hai contratti con rinnovo automatico o date ricorrenti? L'AI ti aiuta ad adattare le formule
Tutti gli articoli

Autore

avatar for Excel SOS
Excel SOS

Categorie

  • Formule
  • Tutorial
Il Problema: Decine di Date da Tenere d'OcchioGIORNI: Conta i Giorni Esatti tra Due DateUNISCI.TESTO: Assembla il Messaggio di AlertIl Combo: Dashboard di Allerta ContrattiGli Errori da Non FareTecniche Avanzate: Messaggi Intelligenti e Dashboard DinamicaMessaggio contestuale: testo diverso per scaduto vs futuroLista priorità con ORDINA + FILTRORiepilogo per email con UNISCI.TESTO a cascataSemaforo con GESTEP (alternativa professionale)Calcolo automatico della data di reminder

Altri articoli

I Numeri Non Si Sommano? Come VALORE e CONTA.NUMERI Salvano i Dati Importati
Premium
ErroriFormule

I Numeri Non Si Sommano? Come VALORE e CONTA.NUMERI Salvano i Dati Importati

Scopri perche i numeri importati da CSV o PDF non si sommano e come correggerli con VALORE e CONTA.NUMERI.

avatar for Excel SOS
Excel SOS
2026/04/05
Formule Testo in Excel: Pulisci e Trasforma i Dati come un Professionista
FormuleTutorial

Formule Testo in Excel: Pulisci e Trasforma i Dati come un Professionista

CONCATENA, SINISTRA, DESTRA, STRINGA.ESTRAI, MAIUSC, ANNULLA.SPAZI: le formule testo di Excel spiegate con esempi reali per pulire dati importati e costruire contenuti.

avatar for Excel SOS
Excel SOS
2026/03/09
Turni a Rotazione Automatica in Excel: RESTO Separa i Turni, NUM.SETTIMANA.ISO Conta le Settimane ISO
Premium
FormuleTutorial

Turni a Rotazione Automatica in Excel: RESTO Separa i Turni, NUM.SETTIMANA.ISO Conta le Settimane ISO

Gestisci la rotazione di turni, fornitori o attività settimanali con due formule. RESTO identifica settimane pari e dispari, NUM.SETTIMANA.ISO segue lo standard europeo.

avatar for Excel SOS
Excel SOS
2026/04/07

Newsletter

Unisciti alla community

Iscriviti alla nostra newsletter per le ultime novità e aggiornamenti

LogoExcel SOS

Excel facile: chiedi all'AI, ottieni la formula

GitHub
Prodotto
  • Funzionalità
  • Cerca Formule
  • Modelli Excel
  • Prezzi
Risorse
  • Documentazione
  • Blog
Azienda
  • Chi siamo
  • Contatti
Legale
  • Cookie Policy
  • Informativa sulla privacy
  • Termini di servizio
© 2026 Excel SOS. All Rights Reserved.