Hur man skapar en dynamisk lista i Excel baserat på kriterier (3 sätt)

  • Dela Detta
Hugh West

Idag ska jag visa hur man skapar en dynamisk lista baserad på ett eller flera kriterier i Excel.

Ladda ner övningsboken

Dynamisk lista baserad på kriterier.xlsx

Vad är en dynamisk lista i Excel?

En dynamisk lista är en lista som skapas från en datamängd och som uppdateras automatiskt när något värde i den ursprungliga datamängden ändras eller när nya värden läggs till i den ursprungliga datamängden.

I den givna bilden har vi en lista med namnen på alla elever som fick mer än 60 i undersökningen.

Om du nu ändrar Jennifer Marlos markeringar från 68 till 58 , och lägga till en ny elev som heter Ross Smith med betyg 81 i tabellen, anpassar sig listan automatiskt.

Detta kallas en dynamisk lista.

3 sätt att skapa dynamiska listor i Excel baserat på kriterier

Här har vi en datamängd med Student-ID, Namn, och Marker av några elever i en skola som kallas Sunflower kindergarten.

Vårt mål i dag är att skapa en dynamisk lista baserad på kriterier från denna datamängd. Vi kommer att använda både enkla och flera kriterier i dag.

1. Användning av funktionerna FILTER och OFFSET (för nya versioner av Excel)

Först och främst kommer vi att använda en kombination av FILTER , OFFSET , och LAND funktioner i Excel.

FILTER funktionen finns tillgänglig i Office 365 Detta är alltså endast för dem som har en Office 365 prenumeration.

Fall 1: Baserat på ett enda kriterium

Låt oss försöka göra en dynamisk lista över de elever vars genomsnittliga betyg är större än eller lika med 60 .

Du kan använda den här formeln:

=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ått en lista över alla elever som fick mer än 60 .

Detta är naturligtvis en dynamisk lista, och du kan ändra ett värde i datamängden eller lägga till ett nytt värde i datamängden.

Listan justeras automatiskt.

Förklaring till formeln:

  • COUNTA(C:C) returnerar antalet rader i kolumn C som inte är tomma. Så COUNTA(C:C)-1 returnerar antalet rader som har värden utan Kolumnrubrik ( Elevens namn i det här exemplet).
  • Om du inte har den Kolumnrubrik , använda COUNTA(C:C)
  • OFFSET(C5,0,0,0,COUNTA(C:C)-1,1) börjar från cellen C5 (den första elevens namn) och returnerar ett intervall med alla elevernas namn.
  • OFFSET i kombination med funktionen COUNTIF-funktion har använts för att hålla formeln dynamisk. Om ytterligare en elev läggs till i datamängden kommer COUNTA(C:C)-1 formeln kommer att öka med 1 och OFFSET funktionen kommer att inkludera studenten.
  • På samma sätt, OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60 returnerar TRUE för alla märken som är större än eller lika med 60 .
  • Slutligen, FILTER(OFFSET(C5,0,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60) returnerar en lista över alla elever som fick mer än 60 .
  • Om en ny elev läggs till i datamängden, COUNTA(C:C)-1 ökar med 1 och FILTER funktionen uppdaterar beräkningen som inkluderar den.
  • På så sätt förblir formeln alltid dynamisk.

Observera:

Om du vill få fram markeringarna tillsammans med namnen i listan ändrar du bara det femte argumentet i den första OFFSET funktion från 1 till 2 .

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

Fall 2: Baserat på flera kriterier

Låt oss prova flera kriterier den här gången.

Vi ska försöka skapa en dynamisk lista över de elever som fick mer än eller lika med 60 poäng, men vars ID är mindre än eller lika med 200 .

Du kan använda den här formeln:

=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ått en lista över alla elever som fick mer än 60 och har ID s mindre än 200 .

Och det är inte nödvändigt att berätta att detta är en dynamisk lista.

Om du ändrar något värde eller lägger till en ny elev i datamängden kommer listan att justeras automatiskt.

Förklaring till formeln:

  • Här har vi multiplicerat två dynamiska kriterieområden, (OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200)
  • Om du har mer än 2 kriterier, multiplicera alla intervall av kriterier på samma sätt.
  • Resten är detsamma som i det föregående exemplet (med ett enda kriterium). OFFSET i kombination med funktionen COUNTA funktionen har använts för att hålla formeln dynamisk.

Observera:

Om du vill se alla kolumner i listan ( Kolumnerna B, C, och D i det här exemplet), ändra det första argumentet i den första OFFSET till den första kolumnen ( B5 i det här exemplet), och det femte argumentet för det totala antalet kolumner ( 3 i det här exemplet).

=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 mer: Excel skapar dynamisk lista från tabell (3 enkla sätt)

2. Använda INDEX-MATCH med andra funktioner (för äldre versioner)

De som inte har en Office 365 kan inte använda ovanstående formel.

Jag visar ett mer komplicerat sätt för dem som använder den äldre versionen av Excel, med hjälp av INDEXMATCH, OFFSET, SMALL, IF, ROW, COUNTIF, och COUNTIFS funktioner i Excel. Observera att dessa formler är matrisformler, så för att tillämpa dem i äldre versioner av Excel måste du trycka på Ctrl+Shift+Enter i stället för att bara ange Enter.

Fall 1: Baserat på ett enda kriterium

Formeln för att skapa en dynamisk lista över de elever som fått mer än eller lika med 60 är:

=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,COUNTA(D:D)-1,1),0),0),1),1)

Som du kan se har vi återigen fått namnen på alla elever som fick mer än eller lika med 60 .

Den här gången har vi tagit siffrorna i stigande ordning.

Och ja, listan är dynamisk. Lägg till en ny elev i datamängden eller ändra betygen för någon elev i datamängden.

Listan justeras automatiskt.

Förklaring till formeln:

  • Här C:C är den kolumn från vilken vi vill hämta innehållet i listan ( Elevens namn i det här exemplet). Du använder ditt eget.
  • D:D är den kolumn där kriteriet ligger ( Genomsnittliga poäng i det här exemplet). Du använder ditt eget.
  • C5 och D5 är de celler från vilka mina data har startats (strax under den Kolumnrubriker ). Du använder din.
  • ">=60" är mitt kriterium (större än eller lika med 60 i det här exemplet). Du använder ditt eget.
  • Förutom dessa få ändringar behåller du resten av formeln oförändrad och använder den i din datamängd. Du kommer att få en dynamisk lista enligt det önskade kriteriet.

Fall 2: Baserat på flera kriterier

INDEX-MATCH formeln för den dynamiska listan baserad på flera kriterier är lite mer komplicerad, men jag visar den ändå.

Formeln för att få fram namnen på de elever som fick ett betyg som är större än eller lika med 60 , men har ID s mindre än 200 kommer att vara;

=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,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)

Förklaring till formeln:

  • Här C:C är den kolumn från vilken vi vill hämta innehållet i listan ( Elevens namn i det här exemplet). Du använder ditt eget.
  • B:B och D:D är de kolumner där kriterierna ligger ( Student-ID och Genomsnittliga poäng i det här exemplet). Du använder ditt eget.
  • B5, C5, och D5 är de celler från vilka mina data har startats (strax under den Kolumnrubriker ). Du använder din.
  • Jag har multiplicerat två kriterier här: (OFFSET(D5,0,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,0,COUNTA(B:B)-1,1)<=200) Om du har fler än två kriterier, multiplicera med motsvarande antal.
  • Jag har återigen använt de två kriterierna i denna COUNTIFS funktion: COUNTIFS(B:B,"=60") . Du använder dina dem i enlighet med detta.
  • Behåll resten av formeln oförändrad och använd den i din datamängd. Du får en dynamisk lista med flera kriterier.

Läs mer: Hur man gör en dynamisk datavalideringslista med VBA i Excel

3. Skapa en dynamisk rullgardinslista baserad på kriterier med hjälp av verktyg för datavalidering

Nu har vi skapat den dynamiska listan. Om du vill kan du skapa en dynamisk rullgardinslista i en valfri cell i arbetsbladet.

  • För att skapa den dynamiska rullgardinslistan markerar du en valfri cell i arbetsbladet och går till Data> Datavalidering> Datavalidering under den Verktyg för data sektion.

  • Du kommer att få följande Validering av data dialogrutan. Under Tillåt Alternativ, välj Lista . och enligt Källa alternativet, anger du referensen till den första cellen där listan finns i arbetsbladet tillsammans med en HashTag (#) ( $E$5# i det här exemplet).

  • Klicka sedan på OK Du får en rullgardinslista i den markerade cellen som ser ut så här.

Läs mer: Hur man skapar en dynamisk listrista med VBA i Excel

Skapa en dynamisk unik lista i Excel baserat på kriterier

I det här avsnittet visar vi hur man skapar en unik lista i Excel baserat på kriterier. Vi kommer att använda en kombination av UNIK och FILTER funktioner. Vi har ändrat datasetet och lagt till varje elevs favoritspel. Nu vill vi veta namnet på spelen och ta bort dubbletter med hjälp av kriterierna. Kriterierna är att elevernas genomsnittliga betyg måste vara större än 60 .

📌 Steg:

  • Sätt formeln på grundval av kombinationen av UNIK och FILTER funktioner på Cell G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))

Vi får en unik lista baserad på kriterier.

Förklaring till formeln:

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

Detta filtrerar värdena för Intervall E5:E25 , med villkoret att det genomsnittliga betyget skall ligga över 60 .

Resultat: [Tennis, Volleyboll, Rugby, Tennis, Fotboll, Rugby, Rugby, Rugby, Fotboll]

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

Detta returnerar alla unika värden från det föregående resultatet.

Resultat: [Tennis, volleyboll, rugby, fotboll]

Slutsats

Med hjälp av dessa metoder kan du skapa en dynamisk lista baserad på ett eller flera kriterier i en datamängd i Excel. Ta en titt på vår webbplats ExcelWIKI och ge dina förslag i kommentarsfältet.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.