KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come trovare intervalli di date o periodi temporali sovrapposti in Excel?

AutoreSun Data di modifica

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.
trova date sovrapposte

Verificare la sovrapposizione di date/Intervallo di tempo con una formula

Codice VBA – Automatizzare il rilevamento di intervalli di date/Intervallo di tempo sovrapposti per set di dati più grandi o per Genera rapporto

Utilizza la formattazione condizionale – Evidenziare visivamente gli intervalli sovrapposti direttamente nel foglio di lavoro per una più facile identificazione


freccia blu bolla destra 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:
definisci un nome di intervallo per le date di inizio

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.
definisci un nome di intervallo per le date di fine

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.

usa una formula per verificare se l'intervallo di date relativo si sovrappone ad altri

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.

freccia blu bolla destra 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.

Risoluzione dei problemi:

  • 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.

freccia blu bolla destra 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:

  1. 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.
  2. Nella scheda Home, fai clic su Utilizza la formattazione condizionale > Nuova regola.
  3. Seleziona Utilizza una formula per determinare le celle da formattare.
  4. 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
  5. 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

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

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.

ExcelWordOutlookTabsPowerPoint
  • 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