Vai al contenuto principale

Come filtrare i dati dalla selezione dell'elenco a discesa in Excel?

In Excel, la maggior parte di noi può filtrare i dati utilizzando la funzione Filtro. Ma hai mai provato a filtrare i dati dalla selezione dell'elenco a discesa? Ad esempio, quando seleziono un elemento dall'elenco a discesa, voglio che le sue righe corrispondenti vengano filtrate come mostrato nella seguente schermata. In questo articolo, parlerò di come filtrare i dati utilizzando l'elenco a discesa in uno o due fogli di lavoro.

Filtra i dati dalla selezione dell'elenco a discesa in un foglio di lavoro con formule di supporto

Filtra i dati dalla selezione dell'elenco a discesa in due fogli di lavoro con codice VBA


Filtra i dati dalla selezione dell'elenco a discesa in un foglio di lavoro con formule di supporto

Per filtrare i dati dall'elenco a discesa, è possibile creare alcune colonne formula helper, eseguire i seguenti passaggi uno per uno:

1. Innanzitutto, inserisci l'elenco a discesa. Fare clic su una cella in cui si desidera inserire l'elenco a discesa, quindi fare clic su Dati > Convalida dati > Convalida dati, vedi screenshot:

2. Nel saltò fuori Convalida dati finestra di dialogo, sotto il file Impostazioni profilo scheda, selezionare Lista dal Consentire menu a discesa, quindi fare clic su pulsante per scegliere l'elenco di dati su cui si desidera creare l'elenco a discesa in base a, vedere screenshot:

3. E poi clicca OK pulsante, l'elenco a discesa viene inserito contemporaneamente e scegli un elemento dall'elenco a discesa, quindi inserisci questa formula: = RIGHE ($ A $ 2: A2) (A2 è la prima cella all'interno della colonna che contiene il valore dell'elenco a discesa) nella cella D2, quindi trascina il quadratino di riempimento sulle celle per applicare questa formula, vedi screenshot:

4. Continua ad inserire questa formula: = SE (A2 = $ H $ 2, D2, "") nella cella E2, quindi trascina il quadratino di riempimento verso il basso per riempire questa formula, vedi screenshot:

Note:: Nella formula sopra :A2 è la prima cella all'interno della colonna che contiene il valore dell'elenco a discesa ,H2 è la cella in cui si trova l'elenco a discesa, D2 è la prima formula della colonna helper.

5. E poi digita questa formula: = SE.ERRORE (PICCOLO ($ E $ 2: $ E $ 17, D2), "") nella cella F2, quindi trascina il quadratino di riempimento sulle celle per riempire questa formula, vedi screenshot:

Note:: Nella formula sopra: E2: E17 è la seconda cella della formula helper, D2 è la prima cella nella prima colonna della formula di supporto.

6. Dopo aver inserito le colonne della formula helper, è necessario visualizzare il risultato filtrato in un'altra posizione, applicare questa formula: =IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"") nella cella J2, quindi trascina il quadratino di riempimento da J2 a L2 e il primo record dei dati basato sull'elenco a discesa è stato estratto, vedi screenshot:

Note:: Nella formula sopra: A2: C17 sono i dati originali che desideri filtrare, F2 è la terza colonna formula helper, J2 è la cella in cui desideri visualizzare il risultato del filtro.

7. E poi continua a trascinare il quadratino di riempimento verso il basso sulle celle per visualizzare tutti i record filtrati corrispondenti, vedi screenshot:

8. D'ora in poi, quando selezioni un elemento dall'elenco a discesa, tutte le righe basate su questa selezione vengono filtrate contemporaneamente, vedi screenshot:


Filtra i dati dalla selezione dell'elenco a discesa in due fogli di lavoro con codice VBA

Se la cella dell'elenco a discesa in Foglio1 e i dati filtrati in Foglio2, quando si sceglie un elemento dall'elenco a discesa, un altro foglio verrà filtrato. Come hai potuto finire questo lavoro in Excel?

Il seguente codice VBA potrebbe farti un favore, per favore fai come segue:

1. Fare clic con il pulsante destro del mouse sulla scheda del foglio che contiene la cella dell'elenco a discesa, quindi scegliere Visualizza codice dal menu contestuale, nel file Microsoft Visual Basic per le applicazioni finestra, copia e incolla il seguente codice nel modulo vuoto:

Codice VBA: filtra i dati dalla selezione dell'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

Note:: Nel codice sopra: A2 è la cella che contiene l'elenco a discesa e Sheet2 è il foglio di lavoro che contiene i dati che si desidera filtrare. Il numero 1 nello script: Filtro automatico 1 è il numero di colonna su cui si desidera filtrare. Puoi cambiarli secondo le tue necessità.

2. D'ora in poi, quando selezioni un elemento dall'elenco a discesa in Sheet1, ei dati corrispondenti verranno filtrati in Sheet2, vedi screenshot:

I migliori strumenti per la produttività in ufficio

Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   Più di 50 Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...

scheda kte 201905


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • 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, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For me, the Formula =ROWS($A$2:A2) didn't workend! It always gave me "2" back. I had to put =ROWS($A2:A2), so without the second "$", in order to reproduce your result.
This comment was minimized by the moderator on the site
How do I add multiple drown down menus? For example,
If i wanted a drop down menu for Product and name?.
This comment was minimized by the moderator on the site
Hey Kev, wondering if you found an answer to your question here? I have been looking for a bit to no avail.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations