Indholdsfortegnelse
I dag vil jeg vise, hvordan du kan oprette en dynamisk liste baseret på et eller flere kriterier i Excel.
Download arbejdsbog til øvelser
Dynamisk liste baseret på kriterier.xlsx
Hvad er en dynamisk liste i Excel?
En dynamisk liste er en liste, der oprettes ud fra et datasæt og opdateres automatisk, når en værdi i det oprindelige datasæt ændres, eller når der tilføjes nye værdier til det oprindelige datasæt.
I det givne billede har vi en liste med navnene på alle de elever, der har fået karakterer på mere end 60 i undersøgelsen.
Hvis man nu ændrer mærkerne for Jennifer Marlo fra 68 til 58 , og tilføj en ny studerende ved navn Ross Smith med karakterer 81 i tabellen, vil listen automatisk tilpasse sig selv.
Dette kaldes en dynamisk liste.
3 måder at oprette en dynamisk liste i Excel baseret på kriterier på
Her har vi et datasæt med Elev-ID'er, Navne, og Marks af nogle elever i en skole kaldet Sunflower børnehave.
Vores mål i dag er at lave en dynamisk liste baseret på kriterier fra dette datasæt. Vi vil i dag bruge både enkelt- og flerkriterier.
1. Brug af FILTER- og OFFSET-funktionerne (til nye versioner af Excel)
Først og fremmest vil vi bruge en kombination af FILTER , OFFSET , og COUNTA funktioner i Excel.
FILTER funktionen er tilgængelig i Office 365 Så dette er kun for dem, der har en Office 365 abonnement.
Tilfælde 1: Baseret på et enkelt kriterium
Lad os prøve at lave en dynamisk liste over de elever, hvis karaktergennemsnit er større end eller lig med 60 .
Du kan bruge denne formel:
=FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
Som du kan se, har vi fået en liste over alle de studerende, der har fået mere end 60 .
Det er naturligvis en dynamisk liste, og du kan ændre enhver værdi i datasættet eller tilføje en ny værdi i datasættet.
Listen tilpasses automatisk.
Forklaring af formlen:
COUNTA(C:C)
returnerer antallet af rækker i kolonne C, der ikke er tomme. SåCOUNTA(C:C)-1
returnerer antallet af rækker, der har værdier uden Kolonneoverskrift ( Navn på den studerende i dette eksempel).- Hvis du ikke har den Kolonneoverskrift , bruge
COUNTA(C:C)
OFFSET(C5,0,0,0,COUNTA(C:C)-1,1)
starter fra celle C5 (navn på den første elev) og returnerer et område med navnene på alle eleverne.- OFFSET funktion i kombination med COUNTIF-funktion er blevet anvendt for at holde formlen dynamisk. Hvis der tilføjes en elev mere til datasættet, vil
COUNTA(C:C)-1
formlen vil stige med 1 og OFFSET funktionen vil omfatte den studerende. - På samme måde,
OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60
returnerer TRUE for alle de mærker, der er større end eller lig med 60 . - Endelig,
FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
returnerer en liste over alle de elever, der har fået karakterer over 60 . - Hvis der tilføjes en ny elev til datasættet,
COUNTA(C:C)-1
stiger med 1 , og den FILTER funktionen opdaterer beregningen, herunder den. - Formlen forbliver således altid dynamisk.
Bemærk:
Hvis du vil have markeringerne sammen med navnene på listen, skal du blot ændre det femte argument i den første OFFSET funktion fra 1 til 2 .
=FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)
Case 2: Baseret på flere kriterier
Lad os prøve med flere kriterier denne gang.
Vi vil forsøge at lave en dynamisk liste over de elever, der har fået karakterer på 60 eller derover, men hvis ID'er er mindre end eller lig med 200 .
Du kan bruge denne formel:
=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))
Som du kan se, har vi fået en liste over alle de elever, der har fået mere end 60 og har ID s mindre end 200 .
Og det er ikke nødvendigt at fortælle, at dette er en dynamisk liste.
Hvis du ændrer en værdi eller tilføjer en ny elev til datasættet, justeres listen automatisk.
Forklaring af formlen:
- Her har vi ganget to dynamiske kriterieområder sammen,
(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)
- Hvis du har mere end 2 kriterier, multipliceres alle kriterieintervaller på samme måde.
- Resten er det samme som i det foregående eksempel (med enkeltkriterier). Den OFFSET funktion i kombination med COUNTA funktionen er blevet anvendt for at holde formlen dynamisk.
Bemærk:
Hvis du vil se alle kolonnerne på listen ( Kolonne B, C, og D i dette eksempel), ændres det første argument i den første OFFSET funktion til den første kolonne ( B5 i dette eksempel), og det femte argument til det samlede antal kolonner ( 3 i dette eksempel).
=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)))
Læs mere: Excel opretter dynamisk liste fra tabel (3 nemme måder)
2. Brug af INDEX-MATCH med andre funktioner (for gamle versioner)
De, der ikke har en Office 365 abonnement ikke kan bruge ovenstående formel.
Jeg viser en mere kompleks måde for dem, der bruger den ældre version af Excel, ved at bruge INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, og COUNTIFS funktioner i Excel. Bemærk, at disse formler er array-formler. Så for at anvende dem i ældre versioner af Excel skal du trykke på Ctrl+Shift+Enter i stedet for blot Enter.
Tilfælde 1: Baseret på et enkelt kriterium
Formlen til at oprette en dynamisk liste over de studerende, der har fået mere end eller lig med 60, er:
=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)
Som du kan se, har vi igen fået navnene på alle de elever, der har fået mere end eller lig med 60 .
Denne gang har vi fået tallene i stigende rækkefølge.
Og ja, listen er dynamisk. Tilføj en ny elev til datasættet, eller ændr karaktererne for en elev i datasættet.
Listen justerer sig selv automatisk.
Forklaring af formlen:
- Her C:C er den kolonne, hvorfra vi ønsker at udtrække indholdet af listen ( Navn på den studerende i dette eksempel). Du bruger din ene.
- D:D er den kolonne, hvor kriteriet ligger ( Gennemsnitlige karakterer i dette eksempel). Du bruger din ene.
- C5 og D5 er de celler, hvorfra mine data er blevet startet (lige under Kolonneoverskrifter ). Du bruger din ene.
- ">=60" er mit kriterium (Større end eller lig med 60 i dette eksempel). Du bruger din ene.
- Bortset fra disse få ændringer skal du beholde resten af formlen uændret og bruge den i dit datasæt. Du vil få en dynamisk liste i overensstemmelse med det ønskede kriterium.
Case 2: Baseret på flere kriterier
INDEX-MATCH formlen for den dynamiske liste baseret på flere kriterier er lidt mere kompliceret, men jeg viser den alligevel.
Formlen til at få navnene på de elever, der har fået karakterer større end eller lig med 60 , men har ID s mindre end 200 vil være;
=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)
Forklaring af formlen:
- Her C:C er den kolonne, hvorfra vi ønsker at udtrække indholdet af listen ( Navn på den studerende i dette eksempel). Du bruger din ene.
- B:B og D:D er de kolonner, hvor kriterierne ligger ( Elev-ID og Gennemsnitlige karakterer i dette eksempel). Du bruger din ene.
- B5, C5, og D5 er de celler, hvorfra mine data er blevet startet (lige under Kolonneoverskrifter ). Du bruger din ene.
- Jeg har her multipliceret to kriterier:
(OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)
Hvis du har mere end to kriterier, skal du multiplicere dem tilsvarende. - Jeg har igen brugt de to kriterier inde i denne COUNTIFS funktion:
COUNTIFS(B:B,"=60")
. Du bruger dem i overensstemmelse hermed. - Behold resten af formlen uændret, og brug den i dit datasæt. Du får en dynamisk liste med flere kriterier.
Læs mere: Sådan laver du en dynamisk datavalideringsliste ved hjælp af VBA i Excel
3. Opret en dynamisk drop down-liste baseret på kriterier ved hjælp af datavalideringsværktøjet
Nu har vi oprettet den dynamiske liste. Hvis du ønsker det, kan du oprette en dynamisk drop-down-liste i en hvilken som helst celle i regnearket.
- For at oprette den dynamiske rulleliste skal du vælge en vilkårlig celle i regnearket og gå til Data> Datavalidering> Datavalidering under den Dataværktøjer sektion.
- Du vil få den Validering af data dialogboksen. Under Tillad Valgmulighed, vælg Liste . og under den Kilde skal du indtaste referencen til den første celle, hvor listen findes i dit regneark, sammen med en HashTag (#) ( $E$5# i dette eksempel).
- Klik derefter på OK Du vil få en rulleliste i den valgte celle som følger.
Læs mere: Sådan oprettes dynamisk drop down-liste ved hjælp af VBA i Excel
Sådan oprettes en dynamisk unik liste i Excel baseret på kriterier
I dette afsnit vil vi vise, hvordan du kan oprette en unik liste i Excel baseret på kriterier. Vi vil bruge en kombination af UNIK og FILTER Vi ændrede datasættet og tilføjede hver elevs favoritspil. Nu ønsker vi at kende navnet på spil, der fjerner dubletter med kriterier. Kriterierne er, at elevernes gennemsnitlige karakterer skal være større end 60 .
📌 Trin:
- Sæt formlen baseret på kombinationen af UNIK og FILTER funktioner på Celle G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Vi får en unik liste baseret på kriterier.
Forklaring af formlen:
- FILTER(E5:E25,(D5:D25>60)
Dette filtrerer værdierne for Område E5:E25 , med en betingelse om, at de gennemsnitlige karakterer skal ligge over 60 .
Resultat: [Tennis, Volleyball, Rugby, Tennis, Fodbold, Rugby, Rugby, Rugby, Fodbold]
- UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Dette returnerer alle de unikke værdier fra det foregående resultat.
Resultat: [Tennis, volleyball, rugby, fodbold]
Konklusion
Ved hjælp af disse metoder kan du oprette en dynamisk liste baseret på et enkelt eller flere kriterier i ethvert datasæt i Excel. Se venligst vores websted ExcelWIKI og giv dine forslag i kommentarfeltet.