Come creare un elenco dinamico in Excel in base a criteri (3 modi)

  • Condividi Questo
Hugh West

Oggi vi mostrerò come creare un elenco dinamico basato su criteri singoli o multipli in Excel.

Scarica il quaderno di esercizi

Elenco dinamico basato su criteri.xlsx

Che cos'è un elenco dinamico in Excel?

Un elenco dinamico è un elenco creato a partire da un insieme di dati e si aggiorna automaticamente quando un valore dell'insieme di dati originale viene modificato o vengono aggiunti nuovi valori all'insieme di dati originale.

Nell'immagine data, abbiamo un elenco dei nomi di tutti gli studenti che hanno ottenuto un punteggio superiore a 60 nell'esame.

Ora, se si cambiano i marchi di Jennifer Marlo da 68 a 58 e aggiungere un nuovo studente di nome Ross Smith con voti 81 nella tabella, l'elenco si regolerà automaticamente.

Si tratta di un elenco dinamico.

3 modi per creare un elenco dinamico in Excel in base a dei criteri

Qui abbiamo un insieme di dati con il valore Documenti di identità degli studenti, Nomi, e Marchi di alcuni studenti di una scuola chiamata Sunflower kindergarten.

L'obiettivo di oggi è creare un elenco dinamico basato sui criteri di questo set di dati. Oggi utilizzeremo criteri singoli e multipli.

1. Utilizzo delle funzioni FILTRO e OFFSET (per le nuove versioni di Excel)

Prima di tutto, utilizzeremo una combinazione di FILTRO , OFFSET , e CONTE funzioni di Excel.

Il FILTRO è disponibile in Office 365 Quindi questo è solo per coloro che hanno una Office 365 abbonamento.

Caso 1: Basato su un singolo criterio

Proviamo a fare un elenco dinamico degli studenti la cui media dei voti è maggiore o uguale a 60 .

È possibile utilizzare questa formula:

=FILTRO(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

Come si può vedere, abbiamo ottenuto un elenco di tutti gli studenti che hanno ottenuto più di 60 .

Ovviamente si tratta di un elenco dinamico, in cui è possibile modificare qualsiasi valore dell'insieme di dati o aggiungere un nuovo valore all'insieme di dati.

L'elenco si adatta automaticamente.

Spiegazione della formula:

  • CONTA(C:C) restituisce il numero di righe della colonna C che non sono vuote. Quindi COUNTA(C:C)-1 restituisce il numero di righe che hanno valori senza l'attributo Intestazione della colonna ( Nome dello studente in questo esempio).
  • Se non si dispone della Intestazione della colonna , utilizzare CONTA(C:C)
  • OFFSET(C5,0,0,COUNTA(C:C)-1,1) parte dalla cella C5 (nome del primo studente) e restituisce un intervallo di nomi di tutti gli studenti.
  • Il OFFSET in combinazione con la funzione Funzione COUNTIF è stato utilizzato per mantenere la formula dinamica. Se un altro studente viene aggiunto al set di dati, il parametro COUNTA(C:C)-1 aumenterà di 1 e il OFFSET La funzione includerà lo studente.
  • Allo stesso modo, OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60 ritorni VERO per tutti i marchi che sono maggiori o uguali a 60 .
  • Infine, FILTRO(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) restituisce un elenco di tutti gli studenti che hanno ottenuto un punteggio superiore a 60 .
  • Se un nuovo studente viene aggiunto al set di dati, COUNTA(C:C)-1 aumenta di 1 , e il FILTRO aggiorna il calcolo includendolo.
  • La formula rimane quindi sempre dinamica.

Nota:

Se si vogliono ottenere i segni insieme ai nomi nell'elenco, basta cambiare il quinto parametro del primo metodo OFFSET da 1 a 2 .

=FILTRO(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

Caso 2: Basato su più criteri

Questa volta proviamo con più criteri.

Cercheremo di creare un elenco dinamico degli studenti che hanno ottenuto voti superiori o uguali a 60, ma i cui ID sono inferiori o uguali a 200 .

È possibile utilizzare questa formula:

=FILTRO(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))

Come si può vedere, abbiamo ottenuto una lista di tutti gli studenti che hanno ottenuto voti superiori a 60 e hanno ID meno di 200 .

E non c'è bisogno di dirlo, questa è una lista dinamica.

Se si modifica un valore o si aggiunge un nuovo studente al set di dati, l'elenco si adatta automaticamente.

Spiegazione della formula:

  • In questo caso abbiamo moltiplicato due gamme dinamiche di criteri, (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
  • Se si dispone di più di 2 moltiplicare tutti gli intervalli di criteri allo stesso modo.
  • Il resto è uguale a quello dell'esempio precedente (di criteri singoli). OFFSET in combinazione con la funzione CONTE per mantenere la formula dinamica.

Nota:

Se si vogliono vedere tutte le colonne dell'elenco ( Colonne B, C, e D in questo esempio), cambiare il primo parametro del primo metodo OFFSET alla prima colonna ( B5 in questo esempio), e il quinto argomento al numero totale di colonne ( 3 in questo esempio).

=FILTRO(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))

Per saperne di più: Excel crea un elenco dinamico dalla tabella (3 modi semplici)

2. Utilizzo di INDEX-MATCH con altre funzioni (per le vecchie versioni)

Coloro che non hanno un Office 365 l'abbonamento non può essere utilizzato con la formula di cui sopra.

Per coloro che utilizzano la versione precedente di Excel, mostro un modo più complesso, utilizzando il comando INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, e COUNTIFS di Excel. Si noti che queste formule sono formule a matrice, per cui per applicarle nelle versioni precedenti di Excel è necessario premere il tasto Ctrl+Maiusc+Invio invece del semplice Invio.

Caso 1: Basato su un singolo criterio

La formula per creare un elenco dinamico degli studenti che hanno ottenuto un punteggio maggiore o uguale a 60 sarà:

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,

OFFSET(D5,0,0,COUNTA(D:D)-1,1),"),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)

Come si può vedere, abbiamo di nuovo i nomi di tutti gli studenti che hanno ottenuto un punteggio superiore o uguale a 60 .

Questa volta abbiamo messo in ordine crescente i numeri.

E sì, l'elenco è dinamico. Aggiungete un nuovo studente al set di dati o modificate i voti di qualsiasi studente nel set di dati.

L'elenco si regolerà automaticamente.

Spiegazione della formula:

  • Qui C:C è la colonna da cui si vuole estrarre il contenuto dell'elenco ( Nome dello studente in questo esempio). Si usa il proprio.
  • D:D è la colonna in cui si trova il criterio ( Media dei voti in questo esempio). Si usa il proprio.
  • C5 e D5 sono le celle da cui sono partiti i miei dati (proprio sotto il Intestazioni di colonna ). Usate il vostro.
  • "=60" è il mio criterio (maggiore o uguale a 60 in questo esempio). Si usa il proprio.
  • A parte queste poche modifiche, mantenete invariato il resto della formula e utilizzatela nel vostro set di dati. Otterrete un elenco dinamico in base al criterio desiderato.

Caso 2: Basato su più criteri

Il ACCOPPIAMENTO DELL'INDICE La formula per l'elenco dinamico basato su più criteri è un po' più complessa. Tuttavia, la sto mostrando.

La formula per ottenere i nomi degli studenti che hanno ottenuto un punteggio maggiore o uguale a 60 , ma hanno ID meno di 200 sarà;

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),"),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)

Spiegazione della formula:

  • Qui C:C è la colonna da cui si vuole estrarre il contenuto dell'elenco ( Nome dello studente in questo esempio). Si usa il proprio.
  • B:B e D:D sono le colonne in cui si trovano i criteri ( ID studente e Media dei voti in questo esempio). Si usa il proprio.
  • B5, C5, e D5 sono le celle da cui sono partiti i miei dati (proprio sotto il Intestazioni di colonna ). Usate il vostro.
  • In questo caso ho moltiplicato due criteri: (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200) Se i criteri sono più di due, moltiplicare di conseguenza.
  • Ho utilizzato nuovamente i due criteri all'interno di questo COUNTIFS funzione: COUNTIFS(B:B,"=60") . Usate i vostri di conseguenza.
  • Mantenete invariato il resto della formula e utilizzatela nel vostro set di dati. Otterrete un elenco dinamico con più criteri.

Per saperne di più: Come creare un elenco dinamico di convalida dei dati utilizzando VBA in Excel

3. Creare un elenco a discesa dinamico basato su criteri utilizzando lo strumento di convalida dei dati

Ora abbiamo creato l'elenco dinamico. Se si vuole, è possibile creare un elenco a discesa dinamico in qualsiasi cella del foglio di lavoro.

  • Per creare l'elenco a discesa dinamico, selezionare una cella qualsiasi del foglio di lavoro e andare su Dati> Convalida dei dati> Convalida dei dati sotto il Strumenti per i dati sezione.

  • Otterrete il Convalida dei dati Sotto la finestra di dialogo Consentire Opzione, scegliere Elenco . e sotto il Fonte inserire il riferimento della prima cella in cui si trova l'elenco nel foglio di lavoro, insieme a un'opzione HashTag (#) ( $E$5# in questo esempio).

  • Quindi fare clic su OK Si otterrà un elenco a discesa nella cella selezionata, come questo.

Per saperne di più: Come creare un elenco a discesa dinamico utilizzando VBA in Excel

Come creare un elenco unico dinamico in Excel in base a dei criteri

In questa sezione mostreremo come creare un elenco unico in Excel in base a dei criteri. Utilizzeremo una combinazione di UNICO e FILTRO Abbiamo modificato il dataset e aggiunto i giochi preferiti di ogni studente. Ora, vogliamo conoscere il nome dei giochi eliminando i duplicati con i criteri. I criteri sono la media dei voti degli studenti deve essere maggiore di 60 .

📌 Passi:

  • Mettere la formula in base alla combinazione di UNICO e FILTRO funzioni su Cellula G5 .
=UNIQUE(FILTRO(E5:E25,(D5:D25>60))

Otteniamo un elenco unico basato su criteri.

Spiegazione della formula:

  • FILTER(E5:E25,(D5:D25>60)

Questo filtra i valori di Gamma E5:E25 con la condizione che la media dei voti debba essere superiore a 60 .

Risultato: [Tennis, Pallavolo, Rugby, Tennis, Calcio, Rugby, Rugby, Calcio].

  • UNIQUE(FILTRO(E5:E25,(D5:D25>60))

Restituisce tutti i valori univoci del risultato precedente.

Risultato: [Tennis, Pallavolo, Rugby, Calcio].

Conclusione

Utilizzando questi metodi, è possibile creare un elenco dinamico basato su criteri singoli o multipli in qualsiasi set di dati in Excel. Date un'occhiata al nostro sito web ExcelWIKI e date i vostri suggerimenti nella casella dei commenti.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.