Come filtrare i dati in base alla selezione effettuata in un elenco a discesa in Excel?
In Excel, molti utenti conoscono il filtro standard per elaborare i dati. Tuttavia, in alcuni casi potresti preferire un approccio più interattivo, basato su una selezione da un elenco a discesa. Ad esempio, potresti voler aggiornare dinamicamente le righe dei dati in modo che mostrino solo le informazioni corrispondenti alla voce scelta nel menu a discesa, come illustrato nell’immagine seguente. Questo metodo ti permette di creare report, dashboard e moduli più intuitivi e coinvolgenti. In questo articolo ti presentiamo diversi metodi pratici per filtrare o evidenziare visivamente i dati in base alle selezioni effettuate in uno o due fogli di lavoro, offrendoti soluzioni flessibili adatte a ogni esigenza.

Filtra i dati in base alla selezione di un elenco a discesa in due fogli di lavoro con codice VBA
Filtra i dati in base alla selezione di un elenco a discesa in un foglio di lavoro utilizzando formule di supporto
Per filtrare i dati in base a una Elenco a discesa, puoi impostare una serie di colonne di supporto utilizzando formule per estrarre dinamicamente le righe corrispondenti. Questo metodo è ideale quando desideri mostrare solo i record rilevanti nello stesso foglio di lavoro, senza utilizzare macro. Segui questi passaggi:
1. Inizia inserendo l’elenco a discesa. Seleziona la cella in cui desideri l’elenco a discesa, quindi vai su Dati > Convalida dati > Convalida dati. Questo passaggio crea una cella in cui gli utenti possono scegliere un elemento da usare come filtro.

2. Nella finestra di dialogo Convalida dati, nella scheda Impostazioni, seleziona Elenco dal menu a discesa Consenti, quindi fai clic sul pulsante
per evidenziare l’intervallo di valori del tuo elenco a discesa. Utilizzare un intervallo denominato o una tabella come origine dell’elenco ti aiuta a mantenerlo automaticamente aggiornato in seguito.

3. Una volta configurato il tuo elenco a discesa, scegli un elemento da filtrare. Nella cella D2, inserisci la seguente formula (ipotizzando che la selezione dall’elenco a discesa si trovi nella colonna H):
=ROWS($A$2:A2) Qui, A2 indica la prima cella della colonna contenente i dati da confrontare. Trascina il quadratino di riempimento verso il basso per applicare la formula a tutte le righe pertinenti. Questa colonna di supporto genera numeri di riga consecutivi, facilitando il riferimento successivo alle righe stesse.

4. Successivamente, inserisci nella cella E2:
=IF(A2=$H$2,D2,"") Questa formula verifica se il valore in A2 corrisponde all’elemento selezionato dall’elenco a discesa in H2. Se corrisponde, restituisce il numero di riga da D2; altrimenti lascia la cella vuota. Questo è un passaggio fondamentale per il filtraggio: assicurati che il riferimento alla cella dell’elenco a discesa (qui)H2) non cambi inaspettatamente.

5. Nella cella F2, inserisci:
=IFERROR(SMALL($E$2:$E$17,D2),"") Questa formula estrae il numero di righe dei dati filtrati, consentendoti in seguito di recuperare le voci corrispondenti. Assicurati che l’intervallo E2:E17 copra tutte le tue celle con formule filtrate. Estendi il quadratino di riempimento verso il basso, se necessario.

6. Per visualizzare i risultati filtrati, inserisci la seguente formula nella cella J2:
=IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"") Copia questa formula da J2 a L2 per visualizzare il primo record corrispondente. Questo passaggio sfrutta i risultati delle colonne di supporto per recuperare le righe di dati effettive in base alla selezione effettuata nell’elenco a discesa. Modifica le colonne se i tuoi dati originali utilizzano un intervallo diverso.

Nota: A2:C17 è la tua tabella originale, F2 è la colonna di supporto filtrata e J2 è il punto in cui desideri visualizzare l’output.
7. Trascina il quadratino di riempimento verso il basso in tutte le colonne di output per visualizzare tutti i record corrispondenti.

8. Ora, ogni volta che selezioni un elemento dall’elenco a discesa, la tabella sottostante si aggiorna dinamicamente mostrando solo le righe corrispondenti alla tua scelta.


Potenzia gli elenchi a discesa di Excel con le funzionalità avanzate di Kutools
Migliora la tua produttività con le funzionalità avanzate per gli elenchi a discesa di Kutools per Excel. Questo set di strumenti supera le capacità base di Excel per ottimizzare il tuo flusso di lavoro, inclusi:
- Crea un elenco a discesa con selezioni multiple: seleziona più voci contemporaneamente per gestire i dati in modo efficiente.
- Elenco a discesa con casella di controllo: migliora l’interazione dell’utente e la chiarezza nei tuoi fogli di lavoro.
- Crea un elenco a discesa dinamico...: si aggiorna automaticamente in base alle modifiche ai dati, garantendo sempre la massima precisione.
- Rendi l'elenco a discesa cercabile: trova subito le voci che ti servono, risparmiando tempo e semplificandoti la vita.
Filtra i dati in base alla selezione di un elenco a discesa in due fogli di lavoro con codice VBA
A volte potrebbe essere necessario filtrare i dati in un foglio di lavoro dopo aver selezionato un elemento da un elenco a discesa situato in un foglio diverso. Ad esempio, Foglio1 contiene la selezione, mentre Foglio2 ospita la tabella da filtrare. In questi casi, VBA rappresenta una soluzione pratica, poiché le formule non possono aggiornare direttamente altri fogli in risposta a un evento. Questo approccio è ideale per dashboard, report o cartelle di lavoro riepilogative in cui l’intervallo di origine e l’input dell’utente sono separati per maggiore chiarezza.
1. Fai clic con il pulsante destro sulla scheda del foglio (ad esempio, Foglio1) che contiene la cella con l’elenco a discesa e scegli Visualizza codice. Nella finestra di Microsoft Visual Basic, Applications Edition, copia e incolla il seguente codice nel modulo vuoto:
Codice VBA: Filtra i dati in base alla selezione di un elenco a discesa in due fogli:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Not Intersect(Range("A2"), Target) Is Nothing Then
Application.EnableEvents = False
If Range("A2").Value = "" Then
Worksheets("Sheet2").ShowAllData
Else
Worksheets("Sheet2").Range("A2").AutoFilter 1, Range("A2").Value
End If
Application.EnableEvents = True
End If
End Sub
Nota: Nel codice, A2 indica la cella con l’elenco a discesa, Foglio2 è il foglio in cui avviene il filtro e Filtro automatico 1 specifica la colonna da filtrare. Modifica questi riferimenti in base alla struttura dei tuoi dati. Assicurati che i nomi dei fogli e delle celle corrispondano esattamente alla tua configurazione per evitare errori in fase di esecuzione. In caso di comportamenti anomali, verifica la protezione del foglio, la presenza di celle unite o di dati nascosti che potrebbero interferire con il metodo Filtro automatico.

2. Ora, selezionando qualsiasi elemento dall’elenco a discesa in Foglio1, i dati in Foglio2 vengono filtrati all’istante, garantendo un’analisi fluida tra fogli per reporting e revisione.

Tieni presente che le soluzioni basate su VBA richiedono l’abilitazione delle macro. Salva sempre la cartella di lavoro come file .xlsm se desideri conservare il codice. Nel caso in cui il filtro non si aggiorni, controlla le impostazioni di sicurezza delle macro e assicurati che i riferimenti e i nomi dei fogli di lavoro corrispondano. Evita di utilizzare dati sensibili o critici per l’azienda senza un backup adeguato, poiché le macro possono apportare modifiche in blocco.
Utilizza la formattazione condizionale - Evidenzia automaticamente tutte le righe corrispondenti alla selezione dell’elenco a discesa
Se il tuo obiettivo non è nascondere o estrarre righe, ma semplicemente evidenziare visivamente quelle corrispondenti alla selezione dell’elenco a discesa, la formattazione condizionale offre un approccio rapido e intuitivo. Utilizza questo metodo quando desideri che gli utenti si concentrino sulle righe pertinenti senza rimuovere o spostare i dati.
L’uso più comune è in dashboard, report o elenchi estesi, dove l’evidenziazione mostra immediatamente quali voci sono collegate alla scelta corrente, migliorando la leggibilità dei dati.
- Seleziona il tuo intervallo dati: ad esempio, seleziona A2:C100.
- Accedi allo strumento Utilizza la formattazione condizionale: Vai su Home > Utilizza la formattazione condizionale > Nuova regola.
- Crea la tua regola: Scegli Usa una formula per determinare le celle da formattare, quindi inserisci una formula come:
Questo evidenzia qualsiasi riga in cui il valore nella colonna A corrisponde alla selezione effettuata dall’elenco a discesa in H2.=$A2=$H$2 - Imposta la formattazione: Fai clic su Formato, quindi scegli un colore di riempimento o un formato testo. Premi OK per confermare.
Vantaggi: configurazione rapida, funziona immediatamente al cambiamento delle selezioni e non altera la struttura della tabella. Tuttavia, questa opzione evidenzia soltanto i record (senza filtrarli né estrarli). Per tabelle di grandi dimensioni, utilizza colori ad alto contrasto per assicurarti che l’intervallo della riga evidenziata sia ben visibile. Le regole di formattazione condizionale si basano sulle celle: se i riferimenti alle celle sono errati, potrebbe non venire evidenziata l’intera riga come previsto. Usa riferimenti assoluti (ad esempio $H$2) nella formula per garantire coerenza.
Per rimuovere l’evidenziazione, vai su Utilizza la formattazione condizionale > Cancella regole. Per applicare l’evidenziazione in base a più condizioni o su più colonne, modifica la formula in modo da controllare ulteriori colonne oppure utilizza la funzione E.
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