Come estrarre tutti i record compresi tra due date in Excel?
Quando si lavora con grandi quantità di dati temporizzati in Excel, potrebbe essere necessario estrarre o filtrare tutti i record che rientrano tra due date specifiche. Ad esempio, potresti voler analizzare le transazioni all'interno di un periodo di fatturazione, rivedere le presenze per un determinato mese o semplicemente esaminare le voci registrate in un intervallo di date personalizzato. Cercare manualmente e copiare ogni riga pertinente può essere noioso e soggetto a errori, specialmente quando la quantità di dati cresce. Estrarre efficacemente tutti i record tra due date non solo ti fa risparmiare tempo ed energia, ma riduce anche la probabilità di perdere voci importanti o introdurre errori durante la gestione dei dati.
![]() | ![]() | ![]() |
Di seguito, troverai diversi metodi pratici per estrarre tutti i record tra due date in Excel. Ogni approccio presenta scenari applicativi e vantaggi propri, dalle estrazioni basate su formule (non richiede componenti aggiuntivi), all'utilizzo di Kutools per Excel per maggiore convenienza, fino al codice VBA e al filtro incorporato di Excel – offrendo soluzioni flessibili per diverse esigenze e preferenze degli utenti.
Estrai tutti i record tra due date utilizzando le formule
Estrai tutti i record tra due date utilizzando Kutools per Excel
Usa VBA per estrarre record tra due date
Usa il filtro di Excel per estrarre record tra due date
Estrai tutti i record tra due date utilizzando le formule
Per estrarre tutti i record tra due date in Excel usando le formule, puoi seguire questi passaggi. Questa soluzione è particolarmente utile quando desideri aggiornamenti dinamici: ogni volta che il set di dati originale o le condizioni delle date cambiano, i risultati si aggiornano automaticamente. Tuttavia, se non sei molto familiare con le formule matriciali, l'impostazione iniziale potrebbe sembrare un po' complessa. Se il tuo set di dati è molto grande, questo metodo potrebbe causare prestazioni di calcolo più lente.
1. Prepara un nuovo foglio di lavoro, ad esempio Foglio2, dove specificherai i limiti delle date e visualizzerai i record estratti. Inserisci la data di inizio e la data di fine desiderate nelle celle A2 e B2, rispettivamente. Per chiarezza, puoi aggiungere intestazioni in A1 e B1 (ad esempio "Data di inizio" e "Data di fine").
2. Nella cella C2 del Foglio2, inserisci la seguente formula per contare quante righe nel Foglio1 hanno date che rientrano nell'intervallo specificato:
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2))
Dopo aver inserito la formula, premi Invio. Questo ti aiuta a capire quante voci corrispondono alla tua condizione di filtro, rendendo facile sapere quanti risultati aspettarti.
Nota: In questa formula, Foglio1 si riferisce al tuo foglio dati originale; $A$2:$A$22 è la colonna delle date nei tuoi dati. Modifica queste referenze secondo necessità per i tuoi dati. A2 e B2 sono le celle della data di inizio e fine.
3. Per visualizzare i record corrispondenti, seleziona una cella vuota dove desideri che inizi l'elenco estratto (ad esempio, nel Foglio2, cella A5). Inserisci la seguente formula matriciale:
=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5))))
Dopo aver digitato la formula, premi Ctrl + Maiusc + Invio (invece di solo Invio) per farla funzionare come una formula matriciale. Poi usa la maniglia di riempimento per trascinarla verso destra attraverso tutte le colonne dei tuoi dati e poi verso il basso in modo che tutte le righe corrispondenti siano visualizzate. Continua a trascinare finché non vedi spazi vuoti, il che significa che tutti i dati corrispondenti sono stati estratti.
Suggerimenti:
- Se ottieni zeri, significa che non ci sono più record corrispondenti da restituire. Semplicemente smetti di trascinare ulteriormente.
- La parte INDEX(...) della formula può essere adattata per estrarre altre colonne. Cambia la colonna referenziata nella parte Foglio1!A$2:A$22 se desideri restituire altri campi.
- Questa formula può essere espansa per funzionare con criteri multipli o per estrarre intere righe (ripetendo la formula in ogni colonna).
4. Alcuni risultati delle date potrebbero apparire come numeri a 5 cifre (numeri seriali delle date di Excel). Per convertirli in formato data leggibile, seleziona le celle corrispondenti, vai alla scheda Home , apri il menu a discesa di formattazione e scegli Data breve. Questo renderà i dati estratti più chiari e utilizzabili.
Precauzioni:
- Assicurati che tutte le voci delle date nei tuoi dati originali siano effettivamente in formato data, non memorizzate come testo. Altrimenti, la formula potrebbe non funzionare come previsto.
- Regola gli intervalli delle matrici se cambia la dimensione dei tuoi dati.
- Se vedi errori #NUM! o #N/D, controlla se ci sono date di input vuote o incongruenze nei tuoi dati di origine.
Estrai tutti i record tra due date utilizzando Kutools per Excel
Se preferisci una soluzione più snella e interattiva, la funzione Seleziona celle specifiche in Kutools per Excel può aiutarti a estrarre intere righe che corrispondono al tuo intervallo di date con pochi clic, riducendo al minimo la necessità di formule o impostazioni manuali. Questo è particolarmente adatto agli utenti che gestiscono spesso compiti di filtro complessi o eseguono operazioni in batch su grandi set di dati, poiché riduce la possibilità di errori di formula e velocizza il flusso di lavoro.
Dopo aver installato Kutools per Excel, segui i passaggi qui sotto: (Scarica gratuitamente Kutools per Excel ora!)
1. Prima, seleziona l'intervallo del dataset che desideri analizzare ed estrarre. Poi, clicca Kutools > Seleziona > Seleziona celle specifiche dalla barra multifunzione di Excel. Questo apre una finestra di dialogo per una selezione avanzata.
2. Nel dialogo Seleziona celle specifiche:
- Spunta l'opzione "Riga intera" per selezionare intere righe corrispondenti.
- Imposta la condizione di filtro: scegli Maggiore di e Minore di nei menu a discesa per la tua colonna di date.
- Inserisci manualmente le tue date di inizio e fine nei campi di testo (assicurati che il formato corrisponda ai tuoi dati).
- Assicurati che sia scelta la logica “E” in modo che entrambe le condizioni si applichino contemporaneamente.

3. Clicca OK. Kutools selezionerà istantaneamente tutte le righe la cui colonna di date rientra nel tuo intervallo specificato. Poi, premi Ctrl + C per copiare le righe selezionate, vai in un foglio vuoto o in una nuova posizione e premi Ctrl + V per incollare i risultati estratti.
Suggerimenti e precauzioni:
- L'approccio Kutools non richiede di cambiare i tuoi dati originali o scrivere alcuna formula.
- Se hai inconsistenza nei formati delle date, controlla i risultati della selezione prima di copiare.
- Usa la funzione per attività di filtro ripetute o in batch - ripeti rapidamente i passaggi per diversi intervalli di date.
- Se la tua versione di Kutools non mostra una funzione come descritto, aggiorna all'ultima versione per la migliore compatibilità.
Analisi dello scenario: Questo metodo è ideale per gli utenti che gestiscono elenchi con molte colonne o per coloro che devono estrarre ripetutamente record completi in base a limiti di date variabili.
Codice VBA - Usa una macro per filtrare automaticamente ed estrarre tutte le righe tra due date specificate
Se il tuo flusso di lavoro include spesso l'estrazione di dati tra due date e vuoi automatizzare completamente il processo, usare una macro VBA può essere una scelta intelligente. Con VBA, puoi chiedere agli utenti di selezionare la colonna delle date, inserire le date di inizio e fine, e filtrare e copiare automaticamente le righe corrispondenti in un nuovo foglio. Questo approccio risparmia sforzo manuale e riduce gli errori, ma richiede l'abilitazione delle macro e una certa familiarità con l'editor Visual Basic.
Ecco come configurare tale macro:
1. Clicca Sviluppatore > Visual Basic per aprire l'editor VBA. Nella nuova finestra Microsoft Visual Basic per Applicazioni, clicca Inserisci > Modulo, poi copia e incolla il seguente codice nel Modulo:
Sub ExtractRowsBetweenDates_Final()
'Updated by Extendoffice
Dim wsSrc As Worksheet
Dim wsDest As Worksheet
Dim rngTable As Range
Dim colDate As Range
Dim StartDate As Date
Dim EndDate As Date
Dim i As Long
Dim destRow As Long
Dim dateColIndex As Long
Dim cellDate As Variant
Set wsSrc = ActiveSheet
Set rngTable = Application.InputBox("Select the data table (including headers):", "KutoolsforExcel", Type:=8)
If rngTable Is Nothing Then Exit Sub
Set colDate = Application.InputBox("Select the date column (including header):", "KutoolsforExcel", Type:=8)
If colDate Is Nothing Then Exit Sub
On Error GoTo DateError
StartDate = CDate(Application.InputBox("Enter the start date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
EndDate = CDate(Application.InputBox("Enter the end date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
On Error GoTo 0
On Error Resume Next
Set wsDest = Worksheets("FilteredRecords")
On Error GoTo 0
If wsDest Is Nothing Then
Set wsDest = Worksheets.Add
wsDest.Name = "FilteredRecords"
rngTable.Rows(1).Copy
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
End If
destRow = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row + 1
dateColIndex = colDate.Column - rngTable.Columns(1).Column + 1
For i = 2 To rngTable.Rows.Count
cellDate = rngTable.Cells(i, dateColIndex).Value
If IsDate(cellDate) Then
If cellDate >= StartDate And cellDate <= EndDate Then
rngTable.Rows(i).Copy
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteFormats
destRow = destRow + 1
End If
End If
Next i
Application.CutCopyMode = False
wsDest.Columns.AutoFit
MsgBox "Filtered results have been added to '" & wsDest.Name & "'.", vbInformation
Exit Sub
DateError:
MsgBox "Invalid date format. Please enter dates as yyyy-mm-dd.", vbExclamation
End Sub
2. Per eseguire la macro, clicca il pulsante (Esegui) o premi F5.
Poi segui le indicazioni per completare i passaggi:
- Seleziona la tabella dati (inclusi gli header) Quando appare la prima casella di input, seleziona l'intera tabella, inclusa la riga dell'header. Clicca OK.
- Seleziona la colonna delle date (incluso l'header) Quando appare la seconda casella di input, seleziona solo la colonna delle date, inclusa l'intestazione. Clicca OK.
- Inserisci le date di inizio e fine Ti verrà chiesto di inserire la data di inizio (formato: yyyy-mm-dd, ad esempio, 2025-06-01)Poi inserisci la data di fine (ad esempio, 2025-06-30)Clicca OK dopo ciascuna.
Un foglio di lavoro denominato FilteredRecords verrà creato automaticamente (se non esiste già). Le righe corrispondenti (dove la data rientra tra le date di inizio e fine) verranno copiate in quel foglio. E nuove righe corrispondenti verranno aggiunte sotto i risultati esistenti ogni volta che esegui la macro.
Risoluzione dei problemi:
- Se nulla accade dopo l'esecuzione, controlla i range selezionati – range non validi o dialoghi annullati causeranno l'uscita dalla macro.
- Assicurati che le voci nella colonna delle date siano vere date di Excel; se memorizzate come testo, convertile prima per un filtraggio accurato.
Analisi dello scenario: Questa soluzione VBA è particolarmente preziosa per attività ripetitive, flussi di lavoro avanzati o quando si condivide una soluzione semi-automatica con utenti non tecnici – basta assegnare un pulsante per un'operazione ancora più semplice.
Altri metodi integrati di Excel - Usa la funzione Filtro integrata di Excel
Per gli utenti che preferiscono un approccio semplice e interattivo senza scrivere formule o codice, la funzione Filtro integrata di Excel offre un modo rapido per visualizzare ed estrarre righe tra due date. Questo è ideale per compiti occasionali, controlli visivi o quando è necessario lavorare direttamente con l'interfaccia del foglio di lavoro. Tuttavia, non fornisce aggiornamenti automatici se i criteri delle date o i dati cambiano – devi ripetere i passaggi per ogni nuova sessione di filtro.
Ecco come usarla:
- Seleziona l'intervallo dei tuoi dati, assicurandoti che le intestazioni delle colonne siano incluse.
- Vai alla scheda Dati sulla barra multifunzione, poi clicca Filtro. Piccole frecce a discesa appariranno accanto a ciascuna intestazione.
- Clicca la freccia per la tua colonna di date e scegli Filtri Data > Tra....
- Nella finestra di dialogo, inserisci le date di inizio e fine desiderate. Assicurati che il formato corrisponda al formato delle date dei tuoi dati.
- Clicca OK. Solo le righe con date nel tuo intervallo specificato rimarranno visibili.
- Seleziona tutte le righe visibili, premi Ctrl + C per copiarle, vai in un'area vuota o in un altro foglio, e premi Ctrl + V per incollare i risultati filtrati.
Suggerimenti e precauzioni:
- Questo metodo è il migliore per ispezioni rapide e visive o estrazioni ad hoc.
- Se la tua colonna delle date utilizza formati inconsistenti, correggili prima per garantire che il filtro funzioni correttamente.
- Ricorda di cancellare il filtro quando hai finito per rivelare nuovamente l'intero set di dati.
- Le righe filtrate sono nascoste, non eliminate – i tuoi dati originali rimangono intatti.
Analisi dello scenario: Il filtro integrato di Excel è più adatto per tabelle di dimensioni moderate e quando hai bisogno di visualizzare o copiare sottoinsiemi istantaneamente senza salvare formule o macro.
Risoluzione dei problemi e suggerimenti di riepilogo:
- Conferma sempre che le celle delle date siano formattate in modo consistente in tutto il foglio di lavoro affinché tutte le soluzioni funzionino correttamente.
- Quando si usano formule o VBA, regola le referenze di colonna e intervallo per corrispondere alla struttura effettiva del tuo foglio per evitare errori di indice o riferimento.
- Per prestazioni su set di dati molto grandi, Kutools o il filtro integrato offrono generalmente risultati più rapidi e sono meno probabili superare i limiti di memoria/calcolo delle formule estese rispetto alle formule matriciali estensive.
- Se incontri spazi vuoti imprevisti o record mancanti nell'output, verifica attentamente che le condizioni delle date, gli intervalli di input e i formati dei dati siano impostati come previsto.
Demo: Estrai tutti i record tra due date utilizzando Kutools per Excel
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!