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, si potrebbe voler analizzare le transazioni all'interno di un periodo di fatturazione, revisionare la presenza per un mese particolare o semplicemente esaminare le voci registrate entro un intervallo di date personalizzato. Cercare manualmente e copiare ogni riga pertinente può essere noioso e soggetto a errori, soprattutto quando il volume dei dati aumenta. Estrarre efficacemente tutti i record tra due date non solo ti fa risparmiare tempo ed energia significativi, 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 compresi tra due date in Excel. Ogni approccio ha scenari applicabili e vantaggi propri: dall'estrazione basata su formule (nessun componente aggiuntivo richiesto), all'uso 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 compresi tra due date mediante formule
Estrai tutti i record compresi tra due date mediante 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 compresi tra due date mediante formule
Per estrarre tutti i record compresi tra due date in Excel utilizzando le formule, puoi seguire questi passaggi. Questa soluzione è particolarmente utile quando desideri aggiornamenti dinamici: ogni volta che il dataset originale o le condizioni delle date cambiano, i risultati si aggiornano automaticamente. Tuttavia, se non sei molto familiare con le formule di matrice, l'impostazione iniziale potrebbe sembrare un po' complessa. Se il tuo dataset è molto grande, questo metodo potrebbe causare prestazioni di calcolo più lente.
1. Prepara un nuovo foglio di lavoro, ad esempio Sheet2, dove specificherai i limiti di data 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 (come "Data di inizio" e "Data di fine").
2. Nella cella C2 di Sheet2, inserisci la seguente formula per contare quante righe in Sheet1 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, Sheet1 si riferisce al tuo foglio di dati originale; $A$2:$A$22 è la colonna delle date nel tuo dataset. Regola questi riferimenti secondo necessità per i tuoi dati. A2 e B2 sono le tue celle di data di inizio e fine.
3. Per visualizzare i record corrispondenti, seleziona una cella vuota da cui desideri che inizi l'elenco estratto (ad esempio, in Sheet2, cella A5). Inserisci la seguente formula di array:
=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 semplicemente Invio) per farla funzionare come una formula di array. Quindi usa la maniglia di riempimento per trascinarla verso destra attraverso tutte le colonne del tuo dataset, e poi verso il basso in modo che tutte le righe corrispondenti siano visualizzate. Continua a trascinare fino a vedere 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 Sheet1!A$2:A$22 se vuoi 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 di data possono apparire come numeri a 5 cifre (numeri seriali di data 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 di data nei tuoi dati originali siano veramente in formato data, non memorizzate come testo. Altrimenti, la formula potrebbe non funzionare come previsto.
- Regola gli intervalli di array se la dimensione dei tuoi dati cambia.
- 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 compresi tra due date mediante Kutools per Excel
Se preferisci una soluzione più semplificata 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, minimizzando la necessità di formule o impostazioni manuali. Questo è particolarmente adatto agli utenti che spesso gestiscono attività di filtraggio complesse o eseguono operazioni batch su grandi set di dati, poiché riduce la possibilità di errori di formula e accelera il flusso di lavoro.
Dopo aver installato Kutools per Excel, segui i passaggi seguenti: (Scarica Gratuitamente Kutools per Excel Ora!)
1. Prima, seleziona l'intervallo del tuo 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. Nella finestra di dialogo Seleziona Celle Specifiche:
- Spunta l'opzione "Riga intera" per selezionare righe complete 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 data rientra nell'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 qualsiasi formula.
- Se hai incongruenze nel formato delle date, visualizza i risultati della selezione prima di copiare.
- Usa la funzione per lavori di filtraggio ripetuti o in batch—ripeti rapidamente i passaggi per diversi intervalli di date.
- Se la tua versione di Kutools non mostra una funzionalità come descritto, aggiorna all'ultima versione per la migliore compatibilità.
Analisi dello Scenario: Questo metodo è ideale per gli utenti che gestiscono liste con molte colonne o per coloro che devono estrarre ripetutamente registrazioni complete basandosi su limiti di data 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 vorresti 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 di abilitare le macro e una certa familiarità con l'editor Visual Basic.
Ecco come configurare tale macro:
1. Clicca Sviluppo > Visual Basic per aprire l'editor VBA. Nella nuova finestra Microsoft Visual Basic for Applications, 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 istruzioni 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'intestazione. Clicca OK.
- Seleziona la colonna delle date (inclusa l'intestazione) 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: aaaa-mm-gg, 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 qualsiasi nuova riga corrispondente verrà aggiunta sotto i risultati esistenti ogni volta che eseguirai la macro.
Risoluzione dei problemi:
- Se non succede nulla dopo l'esecuzione, controlla gli intervalli selezionati—intervalli non validi o finestre di dialogo annullate faranno uscire dalla macro.
- Assicurati che le voci della 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 compiti ripetitivi, flussi di lavoro avanzati o quando si condivide una soluzione semi-automatizzata con utenti non tecnici—assegna semplicemente un pulsante per un'operazione ancora più semplice.
Altri Metodi Incorporati di Excel - Usa la funzione Filtro incorporata di Excel
Per gli utenti che preferiscono un approccio semplice e interattivo senza scrivere formule o codici, la funzione Filtro incorporata di Excel offre un modo rapido per visualizzare ed estrarre righe tra due date. Questo è ideale per attività occasionali, controllo visivo o quando è necessario lavorare direttamente con l'interfaccia del foglio di lavoro. Tuttavia, non fornisce aggiornamenti automatici se i criteri di data o i dati cambiano—è necessario 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 nei tuoi dati.
- Clicca OK. Solo le righe con date nel tuo intervallo specificato rimarranno visibili.
- Seleziona tutte le righe visibili, premi Ctrl + C per copiare, vai in un'area vuota o in un altro foglio, e premi Ctrl + V per incollare i risultati filtrati.
Suggerimenti e precauzioni:
- Questo metodo è migliore per ispezioni rapide e visive o estrazioni ad hoc.
- Se la tua colonna di date utilizza formati inconsistenti, correggili prima per garantire che il filtro funzioni correttamente.
- Ricorda di cancellare il filtro quando hai finito per mostrare nuovamente l'intero set di dati.
- Le righe filtrate sono nascoste, non eliminate—i tuoi dati originali rimangono intatti.
Analisi dello Scenario: Il filtro incorporato di Excel è più adatto per tabelle di dimensioni moderate e quando è necessario visualizzare o copiare sottoinsiemi istantaneamente senza salvare formule o macro.
Risoluzione dei problemi e suggerimenti di sintesi:
- Conferma sempre che le celle di data siano formattate in modo coerente su tutto il foglio perché tutte le soluzioni funzionino correttamente.
- Quando si usano formule o VBA, regola i riferimenti di colonna e intervallo per abbinarli 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 incorporato offrono generalmente risultati più veloci e sono meno soggetti a superare i limiti di memoria/calcolo delle formule estensive.
- Se incontri spazi vuoti inaspettati o record mancanti nell'output, verifica attentamente che le condizioni di data, gli intervalli di input e i formati dei dati siano impostati come previsto.
Demo: Estrai tutti i record compresi tra due date mediante Kutools per Excel
I 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 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 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 della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!