Come trovare intervalli di date o periodi temporali sovrapposti in Excel?
In Excel, intervalli di date o intervalli di tempo sovrapposti possono causare conflitti di pianificazione, problemi di allocazione delle risorse o errori di integrità dei dati. Identificare efficacemente le sovrapposizioni è fondamentale per gestire turni, pianificare eventi, sistemi di prenotazione o cronologie di progetti in cui un periodo non dovrebbe coincidere con un altro. Questo articolo offre indicazioni pratiche, passo dopo passo, sui diversi approcci per individuare intervalli di date o intervalli di tempo sovrapposti in Excel, come illustrato nello screenshot seguente.
Verificare la sovrapposizione di date/Intervallo di tempo con una formula
Verificare la sovrapposizione di date/Intervallo di tempo con una formula
Quando è necessario verificare in modo sistematico se intervalli di date o fasce temporali si sovrappongono, le formule di Excel offrono una soluzione rapida e flessibile. Questo approccio è ideale per set di dati di piccole o medie dimensioni o quando serve un risultato logico (VERO o FALSO) che indichi, riga per riga, la presenza di sovrapposizioni.
Casi d’uso tipici: Pianificazione dei turni dei dipendenti, prenotazioni di eventi, monitoraggio delle fasi di un progetto o gestione degli affitti, dove ogni riga rappresenta un intervallo con un orario o una data di inizio e una data di fine.
Limitazioni: Sebbene efficienti per elenchi di dimensioni moderate, le formule potrebbero rivelarsi meno adatte per set di dati molto grandi o per la generazione di report completi sulle sovrapposizioni tra più record.
1. Seleziona tutte le celle contenenti le tue date di inizio. Con l’intervallo selezionato, fai clic sulla Barra del nome (il campo a sinistra della Barra delle formule) e digita un nome descrittivo, ad esempio datainizio. Premi Invio per confermare. Questo passaggio ti permette di fare riferimento facilmente all’intero elenco nelle formule. Guarda lo screenshot:
2. Allo stesso modo, seleziona le celle della Data di fine, inserisci un nome nella Barra del nome, come datafine, e premi nuovamente Invio. Assegnare nomi agli intervalli rende le formule più leggibili e riutilizzabili.
3. Fare clic su una cella vuota nella stessa riga del primo record – ad esempio C2 – in cui si desidera visualizzare i risultati della sovrapposizione. Inserire la seguente formula:
=SUMPRODUCT((A2<enddate)*(B2>=startdate))>1 Sostituisci A2 con la cella che contiene la data di inizio del tuo record e B2 con quella della data di fine. datafine e datainizio utilizzano nomi definiti. Questa formula verifica se l’intervallo corrente si sovrappone ad almeno un altro nell’elenco. Premi Invio, quindi trascina il quadratino di riempimento verso il basso per applicare la formula a tutte le righe da controllare. Per ogni riga, VERO indica che l’intervallo corrispondente si sovrappone ad almeno un altro; in caso contrario, non è stata rilevata alcuna sovrapposizione.

Assicurati che sia datainizio che datafine facciano riferimento alle intere colonne contenenti i valori di inizio e fine. Adatta i riferimenti di cella se le colonne sono diverse o se gli intervalli includono intestazioni.
Note importanti e risoluzione dei problemi:
- Se si riceve un errore #VALORE!, verificare che i nomi delle celle e i riferimenti siano corretti e che le colonne delle date non contengano testo o dati di data/ora malformati.
- Questo approccio tiene conto dei casi di sovrapposizione in cui gli intervalli temporali non sono del tutto distinti. Gli intervalli che si toccano soltanto agli estremi — ovvero quando la data di fine di uno coincide esattamente con la data di inizio dell’altro — generalmente non vengono considerati sovrapposti, ma è possibile regolare questo comportamento modificando la disuguaglianza nella formula.
- Per l’intervallo di tempo (incluse ore e minuti), la formula funziona esattamente come per le date, purché le celle siano formattate in modo coerente come orari o date.
Codice VBA – Automatizzare il rilevamento di intervalli di date/Intervallo di tempo sovrapposti per set di dati più grandi o per Genera rapporto
Se lavori regolarmente con set di dati di grandi dimensioni e hai bisogno di un metodo più automatizzato per identificare le sovrapposizioni – specialmente per generare report riassuntivi o contrassegnare contemporaneamente tutte le voci in conflitto – VBA può semplificare notevolmente il processo. Questo approccio elimina i controlli manuali, è ideale per centinaia o migliaia di intervalli e può essere personalizzato per evidenziare o elencare tutte le coppie sovrapposte.
Quando utilizzarlo: Ideale per utenti avanzati che gestiscono grandi database di pianificazione o risorse condivise, e per chiunque abbia bisogno di generare registri completi di tutte le sovrapposizioni rilevate, anziché un semplice flag VERO/FALSO per riga.
Potenziali svantaggi: Richiede l’abilitazione delle macro, una buona familiarità con VBA e un backup accurato dei dati prima del primo utilizzo, per evitare sovrascritture accidentali.
1. Fare clic su Strumenti per sviluppatori > Visual Basic per aprire la finestra di Microsoft Visual Basic, Applications. Quindi fare clic su Inserisci > Modulo e incollare il codice seguente nella finestra del modulo:
Sub FindOverlappingDateRanges()
Dim ws As Worksheet
Dim i As Long, j As Long
Dim lastRow As Long
Dim overlapList As String
Dim msg As String
Dim Start1, End1, Start2, End2
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Assumes data starts in row 2
overlapList = ""
For i = 2 To lastRow
Start1 = ws.Cells(i, 1).Value
End1 = ws.Cells(i, 2).Value
If Start1 <> "" And End1 <> "" Then
For j = 2 To lastRow
If i <> j Then
Start2 = ws.Cells(j, 1).Value
End2 = ws.Cells(j, 2).Value
If Start2 <> "" And End2 <> "" Then
If Start1 < End2 And End1 > Start2 Then
overlapList = overlapList & "Row " & i & " overlaps with Row " & j & vbCrLf
End If
End If
End If
Next j
End If
Next i
If overlapList <> "" Then
msg = "The following rows have overlapping date/time ranges:" & vbCrLf & overlapList
Else
msg = "No overlapping date/time ranges found."
End If
MsgBox msg, vbInformation, "KutoolsforExcel"
End Sub 2. Dopo aver inserito il codice, fai clic su Esegui o premi Invio per eseguirlo. La macro analizza le coppie di intervalli di date presenti nelle colonne A (Inizio) e B (Fine) e segnala eventuali sovrapposizioni rilevate, mostrando una finestra di messaggio con l’elenco di tutte le righe in conflitto per facilitare la verifica o l’analisi.
- Assicurati che le date di inizio e di fine siano rispettivamente nelle colonne A e B, a partire dalla riga 2 (con la riga 1 utilizzata come intestazione). Modifica gli intervalli se i tuoi dati sono organizzati in modo diverso.
- Tutte le celle devono contenere valori validi di data e ora, senza alcuna cella vuota nell’intervallo confrontato.
- Esegui il backup dei file importanti prima di eseguire o modificare codice VBA, per evitare qualsiasi perdita di dati.
Suggerimento: Puoi migliorare il codice VBA per contrassegnare direttamente le sovrapposizioni nel foglio di lavoro, colorando le righe o scrivendo i risultati in una colonna adiacente.
Utilizza la formattazione condizionale – Evidenziare visivamente gli intervalli sovrapposti direttamente nel foglio di lavoro per una più facile identificazione
Utilizza la formattazione condizionale è un metodo pratico per evidenziare visivamente gli intervalli di date o orari sovrapposti direttamente nel foglio di calcolo. Questa soluzione è particolarmente utile in calendari complessi, Diagramma di Gantt o cronologie di eventi, dove si desidera individuare immediatamente quali record sono in conflitto.
Ideale per: Utenti che desiderano un feedback immediato direttamente sul foglio o segnali visivi, senza dover inserire formule in ogni riga o eseguire codice. Perfetto per controlli interattivi dei dati e presentazioni.
Limitazioni: I set di dati di grandi dimensioni potrebbero risultare lenti; inoltre, sebbene le sovrapposizioni siano evidenziate, non vengono generati né dettagli sulle coppie né conteggi.
Procedura:
- Seleziona l’intervallo delle date di inizio (ad esempio,)A2:A100) e delle date di fine (B2:B100), oppure seleziona entrambe le colonne insieme se gli intervalli sono affiancati.
- Nella scheda Home, fai clic su Utilizza la formattazione condizionale > Nuova regola.
- Seleziona Utilizza una formula per determinare le celle da formattare.
- Inserire questa formula nella casella della formula (ipotizzando che la selezione inizi dalla riga 2):
=SUMPRODUCT(($A2<$B$2:$B$100)*($B2>$A$2:$A$100))>1 - Fai clic su Formato…, scegli un colore di riempimento per evidenziare gli intervalli sovrapposti e fai clic su OK per applicare.
Dopo aver applicato la regola, qualsiasi riga in cui l’intervallo selezionato si sovrappone ad almeno un altro nel proprio intervallo verrà evidenziata visivamente, consentendo di individuare facilmente i problemi senza dover esaminare ogni singola voce.
Suggerimento: Modifica $A$2:$A$100 e $B$2:$B$100 per adattarli al tuo effettivo intervallo di dati e assicurati che i riferimenti corrispondano alla prima riga della selezione.
Precauzioni: Se desideri evidenziare solo una delle due colonne (ad esempio, soltanto la Data di inizio), applica comunque la logica corrispondente della formula. Valuta attentamente la sovrapposizione agli estremi in base alle tue esigenze specifiche.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi