Cuprins
Astăzi vă voi arăta cum să creați o listă dinamică bazată pe criterii unice sau multiple în Excel.
Descărcați caietul de practică
Lista dinamică bazată pe criterii.xlsx
Ce este o listă dinamică în Excel?
O listă dinamică este o listă care este creată dintr-un set de date și se actualizează automat atunci când orice valoare din setul de date original este modificată sau când se adaugă noi valori la setul de date original.
În imaginea dată, avem o listă cu numele tuturor elevilor care au obținut note mai mari decât 60 în cadrul examenului.
Acum, dacă schimbi semnele lui Jennifer Marlo de la 68 la 58 , și adăugați un nou student numit Ross Smith cu notele 81 în tabel, lista se va ajusta automat.
Aceasta se numește listă dinamică.
3 moduri de a crea o listă dinamică în Excel bazată pe criterii
Aici avem un set de date cu Legitimații de student, Nume, și Marks a unor elevi de la o școală numită Grădinița Floarea Soarelui.
Obiectivul nostru de astăzi este de a crea o listă dinamică pe baza criteriilor din acest set de date. Astăzi vom utiliza atât criterii unice, cât și criterii multiple.
1. Utilizarea funcțiilor FILTER și OFFSET (pentru versiunile noi de Excel)
În primul rând, vom folosi o combinație de FILTRU , OFFSET , și COUNTA funcții ale Excel.
The FILTRU este disponibilă în Office 365 Deci, acest lucru este doar pentru cei care au un Office 365 abonament.
Cazul 1: Pe baza unui singur criteriu
Să încercăm să facem o listă dinamică a elevilor a căror medie a notelor este mai mare sau egală cu 60 .
Puteți folosi această formulă:
=FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
După cum puteți vedea, avem o listă cu toți elevii care au obținut mai mult de 60 .
Și, evident, aceasta este o listă dinamică. Modificați orice valoare din setul de date sau adăugați orice valoare nouă în setul de date.
Lista se va ajusta automat.
Explicația formulei:
COUNTA(C:C)
returnează numărul de rânduri din coloana C care nu sunt goale. DeciCOUNTA(C:C)-1
returnează numărul de rânduri care au valori fără Antet de coloană ( Numele elevului în acest exemplu).- Dacă nu aveți Antet de coloană , utilizați
COUNTA(C:C)
OFFSET(C5,0,0,0,COUNTA(C:C)-1,1)
pornește de la celula C5 (numele primului elev) și returnează un interval cu numele tuturor elevilor.- The OFFSET în combinație cu funcția Funcția COUNTIF a fost folosită pentru a menține formula dinamică. Dacă se adaugă încă un elev la setul de date, formula
COUNTA(C:C)-1
formula va crește cu 1 și OFFSET funcția va include elevul. - În mod similar,
OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60
returnează ADEVĂRAT pentru toate mărcile care sunt mai mari sau egale cu 60 . - În cele din urmă,
FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
returnează o listă cu toți elevii care au obținut note mai mari decât 60 . - În cazul în care un nou elev este adăugat la setul de date,
COUNTA(C:C)-1
crește cu 1 , iar FILTRU reîmprospătează calculul care îl include. - Astfel, formula rămâne întotdeauna dinamică.
Notă:
Dacă doriți să obțineți mărcile împreună cu numele din listă, trebuie doar să modificați al cincilea argument al primei secvențe OFFSET funcția din 1 la 2 .
=FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
Cazul 2: Bazat pe criterii multiple
Să încercăm mai multe criterii de data aceasta.
Vom încerca să facem o listă dinamică a elevilor care au obținut note mai mari sau egale cu 60, dar ale căror ID-uri sunt mai mici sau egale cu 200 .
Puteți folosi această formulă:
=FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)))
După cum vedeți, avem o listă cu toți elevii care au obținut note mai mari decât 60 și au ID e mai mică decât 200 .
Și nu este nevoie să vă spun, aceasta este o listă dinamică.
Dacă modificați orice valoare sau adăugați un nou elev la setul de date, lista se va ajusta automat.
Explicația formulei:
- Aici am înmulțit două intervale dinamice de criterii,
(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)
- Dacă aveți mai mult de 2 criterii, se înmulțesc toate intervalele de criterii în același mod.
- Restul este la fel ca în exemplul anterior (de criteriu unic). OFFSET în combinație cu funcția COUNTA a fost utilizată pentru a menține formula dinamică.
Notă:
Dacă doriți să vedeți toate coloanele din listă ( Coloanele B, C, și D în acest exemplu), modificați primul argument al primei secvențe OFFSET la prima coloană ( B5 în acest exemplu), iar cel de-al cincilea argument la numărul total de coloane ( 3 în acest exemplu).
=FILTER(OFFSET(B5,0,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200))
Citiți mai mult: Excel Creați o listă dinamică din tabel (3 moduri simple)
2. Utilizarea INDEX-MATCH cu alte funcții (pentru versiuni vechi)
Cei care nu au un Office 365 abonamentul nu poate folosi formula de mai sus.
Prezint o modalitate mai complexă pentru cei care folosesc o versiune mai veche a Excel, folosind INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, și CONSILIERI din Excel. Rețineți că aceste formule sunt formule de tip matrice. Astfel, pentru a le aplica în versiunile mai vechi de Excel, trebuie să apăsați Ctrl+Shift+Introducere în loc de doar Enter.
Cazul 1: Pe baza unui singur criteriu
Formula pentru a crea o listă dinamică a elevilor care au obținut un punctaj mai mare sau egal cu 60 va fi:
=INDEX(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1),0),0),1),1)
După cum vedeți, am obținut din nou numele tuturor elevilor care au obținut o valoare mai mare sau egală cu 60 .
De data aceasta am luat în ordine crescătoare a numerelor.
Și da, lista este dinamică. Adăugați un nou elev la setul de date sau modificați notele oricărui elev din setul de date.
Lista se va ajusta automat.
Explicația formulei:
- Aici C:C este coloana din care dorim să extragem conținutul listei ( Numele elevului în acest exemplu). Folosește-l pe al tău.
- D:D este coloana în care se află criteriul ( Media notelor în acest exemplu). Folosește-l pe al tău.
- C5 și D5 sunt celulele de unde au fost pornite datele mele (chiar sub Titluri de coloană ). îl folosești pe al tău.
- ">=60" este criteriul meu (mai mare sau egal cu 60 în acest exemplu). Folosește-l pe al tău.
- În afară de aceste câteva modificări, păstrați restul formulei neschimbate și utilizați-o în setul dvs. de date. Veți obține o listă dinamică în funcție de criteriul dorit.
Cazul 2: Bazat pe criterii multiple
The INDEX-MATCH formula pentru lista dinamică bazată pe criterii multiple este puțin mai complexă. Totuși, o prezint.
Formula pentru a obține numele elevilor care au obținut note mai mari sau egale cu 60 , dar au ID e mai mică decât 200 va fi;
=INDEX(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1),0),0),1),1)
Explicația formulei:
- Aici C:C este coloana din care dorim să extragem conținutul listei ( Numele elevului în acest exemplu). Folosește-l pe al tău.
- B:B și D:D sunt coloanele în care se află criteriile ( ID-ul studentului și Media notelor în acest exemplu). Folosește-l pe al tău.
- B5, C5, și D5 sunt celulele de unde au fost pornite datele mele (chiar sub Titluri de coloană ). îl folosești pe al tău.
- Am multiplicat aici două criterii:
(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)
Dacă aveți mai mult de două criterii, înmulțiți-le corespunzător. - Am folosit din nou cele două criterii în interiorul acestui CONSILIERI funcție:
COUNTIFS(B:B,"=60")
. Folosiți-le pe cele pe care le aveți în mod corespunzător. - Păstrați restul formulei neschimbate și utilizați-o în setul de date. Veți obține o listă dinamică cu criterii multiple.
Citiți mai mult: Cum se face o listă dinamică de validare a datelor folosind VBA în Excel
3. Creați o listă verticală dinamică bazată pe criterii folosind instrumentul de validare a datelor
Acum am creat lista dinamică. Dacă doriți, puteți creați o listă dinamică derulantă în orice celulă din foaia de calcul.
- Pentru a crea lista dinamică derulantă, selectați orice celulă din foaia de calcul și accesați Date> Validarea datelor> Validarea datelor în cadrul Instrumente de date secțiune.
- Veți obține Validarea datelor Sub caseta de dialog Permiteți Opțiune, alegeți Lista . și sub Sursa opțiunea, introduceți referința primei celule în care se află lista din foaia de calcul, împreună cu o HashTag (#) ( $E$5# în acest exemplu).
- Apoi faceți clic pe OK Veți obține o listă derulantă în celula selectată, după cum urmează.
Citiți mai mult: Cum să creați o listă dinamică cu picături folosind VBA în Excel
Cum să creați o listă dinamică unică în Excel pe baza unor criterii
În această secțiune, vom arăta cum să creăm o listă unică în Excel pe baza unor criterii. Vom folosi o combinație de UNIC și FILTRU Am modificat setul de date și am adăugat jocurile preferate ale fiecărui elev. Acum, dorim să aflăm numele jocurilor eliminând dublurile cu ajutorul criteriilor. Criteriile sunt: media notelor elevilor trebuie să fie mai mare de 60 .
📌 Pași:
- Puneți formula bazată pe combinația de UNIC și FILTRU funcții pe Celula G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Obținem o listă unică bazată pe criterii.
Explicația formulei:
- FILTER(E5:E25,(D5:D25>60)
Aceasta filtrează valorile din Gama E5:E25 , cu condiția ca media notelor să fie peste 60 .
Rezultat: [Tenis, Volei, Rugby, Tenis, Fotbal, Rugby, Rugby, Rugby, Fotbal]
- UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Aceasta returnează toate valorile unice din rezultatul anterior.
Rezultat: [Tenis, Volei, Rugby, Fotbal]
Concluzie
Folosind aceste metode, puteți crea o listă dinamică bazată pe un singur criteriu sau pe mai multe criterii în orice set de date din Excel. Vă rugăm să consultați site-ul nostru web ExcelWIKI și dați-ne sugestiile dumneavoastră în caseta de comentarii.