INHOUDSOPGAWE
Ek sal vandag wys hoe om 'n dinamiese lys te skep wat gebaseer is op enkele of veelvuldige kriteria in Excel.
Laai Praktykwerkboek af
Dynamiese lys gebaseer op kriteria.xlsx
Wat is 'n dinamiese lys in Excel?
'n Dinamiese lys is 'n lys wat uit 'n datastel geskep word en outomaties bywerk wanneer enige waarde in die oorspronklike datastel verander word, of nuwe waardes by die oorspronklike datastel gevoeg word.
In die gegewe beeld het ons 'n lys van die name van al die studente wat punte groter as 60 in die eksamen gekry het.
As jy nou die punte van Jennifer Marlo van 68 na 58 verander, en 'n nuwe student genaamd Ross Smith met punte 81 in die tabel byvoeg, sal die lys pas homself outomaties aan.
Dit word 'n dinamiese lys genoem.
3 maniere om dinamiese lys in Excel te skep gebaseer op kriteria
Hier het ons 'n datastel met die studente-ID's, Name, en punte van sommige studente in 'n skool genaamd Sunflower kleuterskool.
Ons doelwit vandag is om 'n dinamiese lys te maak gebaseer op kriteria uit hierdie datastel. Ons sal vandag beide enkel- en meervoudige kriteria gebruik.
1. Die gebruik van FILTER- en OFFSET-funksies (vir nuwe weergawes van Excel)
In die eerste plek sal ons 'n kombinasie van die FILTER , OFFSET en
Die FILTER -funksieis slegs in Office 365 beskikbaar. Dit is dus net vir diegene wat 'n Office 365 -intekening het.
Geval 1: Gebaseer op enkelkriteria
Kom ons probeer 'n dinamiek maak lys van die studente wie se gemiddelde punte groter as of gelyk is aan 60 .
Jy kan hierdie formule gebruik:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Soos jy kan sien, het ons 'n lys van al die studente wat meer as 60 gekry het.
En natuurlik is dit 'n dinamiese lys. Jy verander enige waarde in die datastel of voeg enige nuwe waarde in die datastel by.
Die lys sal outomaties aanpas.
Verduideliking van die Formule:
-
COUNTA(C:C)
gee die aantal rye in kolom C wat nie leeg is nie. Dus geeCOUNTA(C:C)-1
die aantal rye wat waardes het sonder die Kolomkop ( Student Name in hierdie voorbeeld). - As jy dit doen' t het die Kolomkop , gebruik
COUNTA(C:C)
-
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
begin vanaf sel C5 (Naam van die eerste student) en gee 'n reeks van die name van al die studente terug. - Die OFFSET -funksie in kombinasie met die COUNTIF-funksie is gebruik om die formule dinamies te hou. As nog een student by die datastel gevoeg word, sal die
COUNTA(C:C)-1
formule met 1 verhoog en die OFFSET -funksie sal die student insluit. - Net so gee
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
terug WAAR vir al die punte wat groter as of gelyk is aan 60 . - Ten slotte gee
FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
'n lys terug van al die studente wat punte meer as 60 gekry het. - Indien enige nuwe student word by die datastel gevoeg,
COUNTA(C:C)-1
vermeerder met 1 , en die FILTER -funksie verfris die berekening insluitend dit. - Dus die formule bly altyd dinamies.
Let wel:
As jy die punte saam met die name in die lys wil kry, verander net die vyfde argument van die eerste OFFSET -funksie van 1 na 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Geval 2: Gebaseer op veelvuldige kriteria
Kom ons probeer hierdie keer verskeie kriteria.
Ons sal probeer om 'n dinamiese lys te maak van die studente wat het punte meer as of gelyk aan 60 gekry, maar wie se ID's minder as of gelyk is aan 200 .
Jy kan hierdie formule gebruik:
=FILTER(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))
Soos jy kan sien, het ons 'n lys van al die studente wat punte meer as 60 gekry het en ID s minder as 200 .
En nie nodig om te sê nie, dit is 'n dinamiese lys.
As jy enige waarde verander of enige nuwe student by die datastel voeg, sal die lys outomaties aangepas word.
Verduideliking van die Formule:
- Hier het ons twee dinamiese reekse kriteria vermenigvuldig,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- As jy meer as 2 kriteria het, vermenigvuldig al die reekse van kriteria op dieselfde manier.
- Die res is dieselfde as die vorige voorbeeld (van enkele kriteria).Die OFFSET -funksie in kombinasie met die COUNTA -funksie is gebruik om die formule dinamies te hou.
Let wel:
As jy al die kolomme in die lys wil sien ( Kolomme B, C, en D in hierdie voorbeeld), verander die eerste argument van die eerste OFFSET -funksie na die eerste kolom ( B5 in hierdie voorbeeld), en die vyfde argument na die totale aantal kolomme ( 3 in hierdie voorbeeld).
=FILTER(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))
Lees meer: Excel Create Dynamic Lys uit tabel (3 maklike maniere)
2. Gebruik INDEX-MATCH met ander funksies (vir ou weergawes)
Diegene wat nie 'n Office 365 -intekening kan nie die bogenoemde formule gebruik nie.
Ek wys 'n meer komplekse manier vir diegene wat die ouer weergawe van Excel gebruik, deur die INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, en COUNTIFS funksies van Excel. Let daarop dat hierdie formules skikkingsformules is. Dus, om dit in ouer weergawes van Excel toe te pas, moet jy Ctrl+Shift+Enter druk in plaas van net Enter.
Geval 1: Gebaseer op enkelkriteria
Die formule om 'n dinamiese lys te skep van die studente wat meer as of gelyk aan 60 gekry het, sal wees:
=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)
Soos jy kan sien, het ons weer die name gekry van al die studente wat meer as of gelyk aan 60 gekry het .
Hierdie keer het ons in opgang gekryvolgorde van die getalle.
En ja, die lys is dinamies. Voeg 'n nuwe student by die datastel, of verander die punte van enige student in die datastel.
Die lys sal outomaties aanpas.
Verduideliking van die Formule:
- Hier C:C is die kolom waaruit ons die inhoud van die lys wil onttrek ( Student Name in hierdie voorbeeld). Jy gebruik jou een.
- D:D is die kolom waar die maatstaf lê ( Gemiddelde Punte in hierdie voorbeeld). Jy gebruik jou een.
- C5 en D5 is die selle vanwaar my data begin is (net onder die Kolomopskrifte ). Jy gebruik jou een.
- “>=60” is my maatstaf (Groter as of gelyk aan 60 in hierdie voorbeeld). Jy gebruik jou een.
- Behalwe hierdie paar veranderinge, hou die res van die formule onveranderd en gebruik dit in jou datastel. Jy sal 'n dinamiese lys kry volgens jou verlangde maatstaf.
Geval 2: Gebaseer op veelvuldige kriteria
Die INDEX-MATCH formule vir die dinamiese lys gebaseer op verskeie kriteria is 'n bietjie meer kompleks. Tog wys ek dit.
Die formule om die name te kry van die studente wat punte groter as of gelyk aan 60 gekry het, maar ID s minder as het 200 sal wees;
=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)
Verduideliking van die formule:
- Hier C:C is die kolom waaruit ons wil hê aanonttrek die inhoud van die lys ( Student Name in hierdie voorbeeld). Jy gebruik jou een.
- B:B en D:D is die kolomme waar die kriteria lê ( Student ID en Gemiddelde punte in hierdie voorbeeld). Jy gebruik jou een.
- B5, C5, en D5 is die selle vanwaar my data begin is (net onder die Kolomopskrifte ). Jy gebruik jou een.
- Ek het twee kriteria hier vermenigvuldig:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
.As jy meer as twee kriteria het, vermenigvuldig dienooreenkomstig. - Ek het weer die twee kriteria gebruik binne hierdie COUNTIFS -funksie:
COUNTIFS(B:B,"=60")
. Jy gebruik jou ene dienooreenkomstig. - Hou die res van die formule onveranderd en gebruik dit in jou datastel. Jy sal 'n dinamiese lys met veelvuldige kriteria kry.
Lees meer: Hoe om 'n dinamiese data-valideringslys te maak met VBA in Excel
3 . Skep 'n dinamiese aftreklys gebaseer op kriteria deur gebruik te maak van Data Validation Tool
Nou het ons die dinamiese lys geskep. As jy wil, kan jy 'n dinamiese aftreklys skep in enige sel van jou werkblad.
- Om die dinamiese aftreklys te skep, kies enige sel in jou werkblad en gaan na Data > Datavalidering > Data Validation onder die Data Tools afdeling.
- Jy sal die Data Validation kry dialoogkassie. Onder die Laat toe -opsie, kies Lys . En onder die Bron opsie,voer die verwysing in van die eerste sel waar die lys in jou werkblad is saam met 'n HashTag (#) ( $E$5# in hierdie voorbeeld).
- Klik dan OK . Jy sal so 'n aftreklys in jou geselekteerde sel kry.
Lees meer: Hoe om dinamiese aftreklys te skep met VBA in Excel
Hoe om 'n dinamiese unieke lys in Excel te skep gebaseer op kriteria
In hierdie afdeling sal ons wys hoe om 'n unieke lys in Excel te skep gebaseer op kriteria. Ons sal 'n kombinasie van UNIEK en FILTER funksies gebruik. Ons het die datastel gewysig en elke student se gunstelingspeletjies bygevoeg. Wil nou die naam van speletjies weet wat duplikate met kriteria verwyder. Die kriteria is gemiddelde punte van die studente moet groter as 60 wees.
📌 Stappe:
- Sit die formule gebaseer op die kombinasie van UNIEKE en FILTER funksies op Sel G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Ons kry 'n unieke lys gebaseer op kriteria.
Verduideliking van die Formule:
- FILTER(E5:E25,(D5:D25>60)
Dit filtreer die waardes van Bereik E5:E25 , met 'n voorwaarde dat gemiddelde punte bo 60 moet wees.
Resultaat: [Tennis, Vlugbal, Rugby, Tennis, Sokker, Rugby, Rugby, sokker]
- UNIQUE(FILTER(E5:E25,(D5:D25>60))))
Dit gee terug al die uniekewaardes van die vorige resultaat.
Resultaat: [Tennis, Vlugbal, Rugby, Sokker]
Gevolgtrekking
Gebruik hierdie metodes, kan jy 'n dinamiese lys skep gebaseer op enkele of veelvuldige kriteria in enige datastel in Excel. Kyk asseblief na ons webwerf ExcelWIKI en gee jou voorstelle in die kommentaarblokkie.