Come si copiano i dati in un altro foglio di lavoro utilizzando il Filtro avanzato in Excel?
In Excel, la funzione Filtro avanzato è uno strumento efficace per estrarre e filtrare i dati in base ai propri criteri. Viene comunemente utilizzata nello stesso foglio di lavoro, ma potresti notare che, quando cerchi di copiare direttamente i risultati filtrati in un foglio diverso, Excel visualizza una finestra di avviso. Questo comportamento può risultare frustrante, soprattutto per chi gestisce dati su più fogli, come nei report o nelle dashboard complesse. La possibilità di trasferire con precisione i dati filtrati in un altro foglio favorisce una presentazione ordinata, semplifica la condivisione e mantiene i record ben organizzati.

Copiare dati in un altro foglio di lavoro con il Filtro avanzato utilizzando il codice VBA
Copiare dati in un altro foglio di lavoro con il Filtro avanzato utilizzando la funzione Filtro avanzato
Excel non consente di usare il Filtro avanzato per copiare direttamente i risultati filtrati in un foglio diverso da quello in cui risiedono i dati. Tuttavia, è possibile superare questo limite seguendo una soluzione pratica che prevede di attivare il foglio di destinazione prima di eseguire il filtro. I passaggi seguenti ti aiuteranno a risolvere questa sfida senza configurazioni complesse o strumenti specializzati. Questo approccio è ideale per chi desidera filtrare e spostare manualmente i dati, ad esempio per trasferimenti occasionali o liste semplici. Se invece hai bisogno di automatizzare operazioni frequenti di filtraggio e copia tra fogli, valuta l’uso del codice VBA, descritto più avanti nella guida.
1. Inizia attivando il foglio di lavoro in cui desideri copiare i risultati filtrati. Così facendo, Excel inserirà automaticamente i dati filtrati nel foglio selezionato quando applicherai il Filtro avanzato. Assicurati che l’area di destinazione non contenga dati esistenti, per evitare sovrascritture indesiderate.

2. Con il foglio di destinazione attivo, vai alla barra multifunzione di Excel, fai clic su Dati, quindi scegli Avanzate nel gruppo Ordina e filtra. Si aprirà la finestra di dialogo Filtro avanzato, dove potrai personalizzare il processo di filtraggio. Assicurati di essere nel foglio corretto prima di procedere: qui appariranno infatti i risultati filtrati.

3. Nella finestra di dialogo Filtro avanzato:
- Seleziona Copia in un'altra posizione in Azione.
- Fai clic
accanto a Intervallo elenco per selezionare il set di dati da filtrare. A questo punto, puoi passare al foglio di origine. - Fai clic
accanto all'Intervallo criteri per specificare i criteri di filtraggio. I criteri possono trovarsi in qualsiasi foglio.

Suggerimenti: L'Intervallo elenco deve includere le intestazioni, affinché i criteri vengano abbinati correttamente. Anche l'Intervallo criteri deve avere intestazioni corrispondenti e contenere la logica per il filtraggio (ad esempio valori, testo o formule). Per evitare errori, assicurati che i criteri siano ben definiti e che gli intervalli non si sovrappongano.
4. Successivamente, fai clic
accanto al campo Copia in. Seleziona quindi la cella nel foglio attivo in cui desideri che inizino ad apparire i risultati filtrati. Dopo aver effettuato le tue scelte, fai clic su OK. Excel trasferirà i dati filtrati dall’origine al foglio corrente e attivo.

Note e risoluzione problemi:
- Se i tuoi criteri non trovano alcuna corrispondenza, Excel copierà nel foglio di destinazione solo le intestazioni di colonna.
- Assicurati sempre di attivare il foglio di destinazione prima di avviare il Filtro avanzato; in caso contrario, Excel mostrerà un avviso e bloccherà la copia tra fogli diversi.
- Se l’area di posizionamento dell’elenco si sovrappone a dati esistenti, questi potrebbero essere sovrascritti senza ulteriori avvisi.
- Con set di dati di grandi dimensioni, il filtraggio e la copia potrebbero richiedere alcuni secondi. Attendi che Excel abbia completato l'elaborazione prima di apportare ulteriori modifiche.
- Se compaiono messaggi di errore, controlla gli intervalli Elenco e Criteri per individuare righe vuote, intestazioni non corrispondenti o celle unite, che potrebbero interferire con il filtraggio.
Questo metodo manuale è ideale per attività occasionali o semplici e offre un feedback immediato in caso di errori. Per flussi di lavoro più complessi o operazioni ripetute, l’automazione con VBA fa risparmiare tempo e riduce gli errori, come illustrato di seguito.
Copiare dati in un altro foglio di lavoro con il Filtro avanzato utilizzando il codice VBA
Per gli utenti che lavorano frequentemente con il filtraggio tra fogli diversi o che necessitano di un’automazione più robusta, il VBA (Visual Basic for Applications) offre un modo efficiente per trasferire dati filtrati tra fogli di lavoro, aggirando i limiti dell’interfaccia standard. Questa soluzione è particolarmente utile in scenari che implicano una gestione ripetitiva dei dati o report che richiedono una logica di filtro coerente.
1. Inizia attivando il foglio di lavoro che contiene i dati da filtrare e copiare. Questo passaggio definisce il contesto necessario per l’esecuzione del codice e per le richieste di selezione.
2. Premi ALT + F11 in Excel per aprire l'editor Microsoft Visual Basic for Applications.
3. Nella finestra dell’editor VBA, fai clic su Inserisci > Modulo per aggiungere un nuovo modulo. Copia quindi il codice seguente e incollalo nella finestra del modulo:
Codice VBA: Copiare dati in un altro foglio di lavoro con il Filtro avanzato:
Sub Advancedfiltertoanothersheet()
'Updateby Extendoffice
Dim xStr As String
Dim xAddress As String
Dim xRg As Range
Dim xCRg As Range
Dim xSRg As Range
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the filter range:", "Kutools for Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xCRg = Application.InputBox("Please select the criteria range:", "Kutools for Excel", "", , , , , 8)
If xCRg Is Nothing Then Exit Sub
Set xSRg = Application.InputBox("Please select the output range:", "Kutools for Excel", "", , , , , 8)
If xSRg Is Nothing Then Exit Sub
xRg.AdvancedFilter xlFilterCopy, xCRg, xSRg, False
xSRg.Worksheet.Activate
xSRg.Worksheet.Columns.AutoFit
End Sub 4. Dopo aver inserito il codice, esegui la macro premendo il tasto F5. Comparirà una finestra di dialogo per selezionare l’intervallo di filtro (i dati con intestazioni da filtrare). Seleziona l’intervallo desiderato e fai clic su OK.

5. La finestra successiva ti chiederà di selezionare l’intervallo dei criteri. Anche questo deve includere le intestazioni e contenere i criteri da applicare per il filtraggio. Seleziona le celle con i criteri e fai clic su OK.

6. Comparirà infine una finestra di dialogo che ti chiederà di selezionare l'area di posizionamento dell'elenco nel foglio di destinazione. Puoi passare a un foglio diverso, se necessario, quindi seleziona la cella in cui desideri far iniziare l’output filtrato. Premi OK dopo aver effettuato la selezione.

7. I dati filtrati vengono copiati automaticamente nella posizione specificata del foglio selezionato, e le colonne nel foglio di destinazione si adattano automaticamente alla larghezza ideale. Non perderai alcun dato originale in nessuno dei due fogli, a meno che la destinazione scelta non contenga già contenuti: in tal caso, questi potrebbero essere sovrascritti.
- Precauzioni:
- Assicurati che sia l'intervallo del filtro che quello dei criteri includano le intestazioni e non contengano celle unite o righe vuote, per evitare errori.
- Assicurati che la cella di destinazione per l'output sia posizionata in modo da poter contenere l’intero set di dati filtrati, altrimenti potresti sovrascrivere i dati adiacenti.
- Se ripeti spesso questa procedura, puoi salvare la macro e assegnarle una scorciatoia per un accesso ancora più rapido.
- In caso di errori o se la macro non viene eseguita come previsto, assicurati che le macro siano abilitate e che la cartella di lavoro sia salvata in un formato che supporti le macro (.xlsm).
Risoluzione problemi e suggerimenti:
- Se selezioni “Seleziona intervallo” in modo errato o lo lasci vuoto, la macro verrà chiusa senza apportare modifiche: rieseguila semplicemente e seleziona nuovamente le aree corrette.
- Quando lavori con set di dati di grandi dimensioni, attendi il completamento del processo prima di eseguire qualsiasi altra azione.
- Puoi modificare il codice VBA per integrare logiche più avanzate, come la rimozione dei duplicati o la copia dell’intera riga.
In sintesi, entrambe le soluzioni permettono di copiare dati filtrati in un altro foglio tramite il Filtro avanzato: i metodi manuali sono perfetti per attività semplici o occasionali, mentre l’approccio con VBA è ideale per scenari di gestione dati regolari e automatizzati. La scelta migliore dipenderà dal tuo flusso di lavoro, dal tuo livello di competenza tecnica e da quanto spesso devi ripetere queste operazioni.
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