
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.

Il Problema: Decine di Date da Tenere d'Occhio
Il registro contratti di Valentina ha questa forma:
| Fornitore | Tipo Contratto | Data Inizio | Data Fine |
|---|---|---|---|
| Acme Srl | Fornitura IT | 01/04/2024 | 30/04/2026 |
| Beta SpA | Manutenzione | 15/06/2023 | 14/06/2026 |
| Gamma Sas | Pulizie | 01/01/2025 | 31/12/2025 |
| Delta Srl | Sicurezza | 01/03/2024 | 28/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:
- GIORNI → calcola i giorni esatti alla scadenza
- UNISCI.TESTO → assembla il messaggio di alert con tutti i dati

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 rimasti | Stato |
|---|---|
< 0 | SCADUTO |
| 0-30 | URGENTE |
| 31-90 | ATTENZIONE |
> 90 | OK |
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.

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 valoriignora_vuote= VERO per saltare le celle vuote, FALSO per includerletesto1, 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 fissiCostruisci 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:
| Col | Contenuto | Formula |
|---|---|---|
| A | Fornitore | (dato) |
| B | Tipo contratto | (dato) |
| C | Data inizio | (dato) |
| D | Data scadenza | (dato) |
| E | Giorni rimasti | =GIORNI(D2;OGGI()) |
| F | Stato | =SE(E2<0;"SCADUTO";SE(E2<=30;"URGENTE";SE(E2<=90;"ATTENZIONE";"OK"))) |
| G | Messaggio 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
Autore

Altri articoli

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.


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.


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.

Newsletter
Unisciti alla community
Iscriviti alla nostra newsletter per le ultime novità e aggiornamenti