Hur du extraherar data från Excel baserat på kriterier (5 sätt)

  • Dela Detta
Hugh West

Ibland kan vi behöva söka efter vissa data för att arbeta med. Men när datamängden är enorm är det svårt att hitta det vi söker. I den här artikeln visar vi hur du kan extrahera data från Excel utifrån olika kriterier.

Ladda ner Mall för praxis

Du kan ladda ner den kostnadsfria Excel-mallen för övningar här.

Extrahera data baserat på kriterier.xlsx

5 sätt att extrahera data från Excel baserat på kriterier

I det här avsnittet diskuteras 5 olika sätt att extrahera data från Excel baserat på vissa kriterier.

1. Implementera Array Formula för att extrahera data från Excel baserat på intervallkriterier

Med följande dataset som exempel kommer vi att beskriva processen för att extrahera data baserat på intervall. Antag att vi har ett dataset med uppgifter om studenter, från vilket vi bara vill hämta de studentuppgifter som fick Betyg från 80 till 100 .

Stegen för att extrahera data baserat på ett visst intervall med hjälp av Array formeln anges nedan.

Steg:

  • Först lagrar du villkoret i andra celler för att kunna arbeta med dem senare. Det betyder att vi kommer att extrahera uppgifter om elever som fick Betyg från 80 till 100 Vi lagrade 80 som startvärde och 100 som slutvärde i den Celler I4 och I5 respektive.

Vi måste också lagra kolumnen där vi kommer att leta efter våra lagrade värden. Det innebär att markeringarna 80 och 100 finns i kolumnen Kolumn för markeringar som är den 3:e kolumnen i vårt dataset, så vi lagrade 3 som kolumnvärde Cell I6 .

  • För det andra, i en annan cell, där du vill ha resultatet (vi ville ha vårt resultat i Cell G11 ), skriv följande formel,
  • =INDEX($B$5:$E$14,SMALL(IF((INDEX($B$5:$E$14,,$I$6)=$I$4),MATCH(ROW($B$5:$E$14),ROW($B$5:$E$14)),""),ROWS(G11:$G$11)),COLUMNS($A$1:A1)))

    • För det tredje trycker du på Ctrl + Shift + Enter på tangentbordet.

    Därefter får du de första extraherade uppgifterna som motsvarar ditt villkor i resultatcellen. Johnny vars ID är 3 fick 80 poäng Biologi och hans post lagras i datasetet före andra, så vi fick Johnnys ID 3 i resultatcellen.

    • Dra nu runt kolumnerna och raderna genom att Handtag för fyllning för att hämta information om endast de elever som fick Betyg från 80 till 100 .

    Fördelning av formler

    • INDEX($B$5:$E$14,,$I$6)
      • Output: {60;30;80;55;87;95;100;42;25;18}
      • Förklaring: INDEX-funktionen returnerar vanligtvis ett enskilt värde eller en hel kolumn eller rad från ett givet cellområde. 3 lagras i Cell $I$6 , så att hela kolumnen returneras. 3 ( Marker kolumnen) från hela datamängden ( $B$5:$E$14 ) som resultat.
    • INDEX($B$5:$E$14,,$I$6)<=$I$5 -> blir,
      • {60;30;80;55;87;95;100;42;25;18}<=100
      • Utgång: {TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
      • Förklaring: Vi lagrade 100 i den Cell $I$5 Eftersom alla värden är mindre än 100 ($I$5) , så den returnerar en kolumn full av TRUE .

    På samma sätt,

    • INDEX($B$5:$E$14,,$I$6)>=$I$4 -> blir,
      • { 60;30;80;55;87;95;100;42;25;18}>=80
      • Utgång: {FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE}
      • Förklaring: Vi lagrade 80 i den Cell $I$4 Så den returnerar TRUE när värdet från kolumnen är lika med eller större än 80 ; i annat fall återges FALSK .
    • (INDEX($B$5:$E$14,,$I$6)=$I$4) -> blir,
      • {TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
      • Utgång: {0;0;0;1;0;0;1;1;1;1;0;0;0;0;0}
      • Förklaring: Boolska värden har numeriska motsvarigheter, TRUE = 1 och FALSE = 0 (noll) De konverteras när en aritmetisk operation utförs i en formel.
    • RAD($B$5:$E$14)
      • Output: {5;6;7;8;9;10;11;12;13;14}
      • Förklaring: ROW-funktionen beräknar radnumret för en cellreferens.
    • MATCH(ROW($B$5:$E$14),ROW($B$5:$E$14)) -> blir,
      • MATCH({5;6;7;8;9;10;11;12;13;14},{5;6;7;8;9;10;11;12;13;14})
      • Utgång: {1; 2; 3; 4; 4; 5; 6; 7; 8; 9; 10}
      • Förklaring: Funktionen MATCH returnerar den relativa positionen för ett objekt i en matris eller cellreferens som matchar ett angivet värde i en viss ordning.
    • IF((INDEX($B$5:$E$14,,$I$6)=$I$4),MATCH(ROW($B$5:$E$14),ROW($B$5:$E$14)),"") -> blir,
      • IF( {0;0;1;0;1;1;1;0;0;0}), {1; 2; 3; 4; 5; 6; 7; 8; 9; 10},"")
      • Utgång: {""; ""; 3; ""; 5; 6; 7; ""; ""; ""; ""}
      • Förklaring: IF-funktionen returnerar ett värde om det logiska testet är TRUE och ett annat värde om det logiska testet är FALSK .
    • SMALL(IF((INDEX($B$5:$E$14,,$I$6)=$I$4),MATCH(ROW($B$5:$E$14),ROW($B$5:$E$14)),ROW($B$5:$E$14)),""),ROWS(G11:$G$11)) -> blir,
      • SMALL({""; ""; 3; ""; 5; 6; 7; ""; ""; ""; ""},ROWS(G11:$G$11)) -> blir,
      • SMALL({""; ""; 3; ""; 5; 6; 7; ""; ""; ""; ""},1)
      • Utgång: 3
      • Förklaring: Funktionen SMALL returnerar den k:e minsta värde från en grupp nummer. 3 är den minsta i denna grupp.
    • INDEX($B$5:$E$14,SMALL(IF((INDEX($B$5:$E$14,,$I$6)=$I$4),MATCH(ROW($B$5:$E$14),ROW($B$5:$E$14)),""),ROWS(G11:$G$11)),COLUMNS($A$1:A1))) -> blir,
      • INDEX($B$5:$E$14,3,,1)
      • Resultat: {3; "Johnny", 80, "Biology"}
      • Förklaring: INDEX funktionen returnerar ett värde från ett cellområde( $B$5:$E$14 ), som specificeras av värdet baserat på ett rad- och kolumnnummer.

    Läs mer: Hur du extraherar data från en cell i Excel (5 metoder)

    2. Implementera Array Formula för att extrahera data från Excel baserat på flera villkor

    I avsnittet ovan extraherade vi data baserat på ett visst intervall, men i det här avsnittet ska vi visa hur du extraherar data baserat på flera villkor.

    Titta på samma dataset som tidigare, men i stället för att lagra ett intervall av värden (betyg 80 till 100) som ett villkor har vi lagrat flera villkor, t.ex. att hämta elevernas uppgifter från både kemi- och biologiavdelningarna. .

    Stegen för att extrahera data baserat på flera villkor med hjälp av Array formeln anges nedan.

    Steg:

    • För det första lagrar du villkoren i andra celler för att kunna arbeta med dem senare. Det betyder att eftersom vi kommer att hämta elevernas uppgifter från Kemi och Biologi avdelningar, vi lagrade Kemi och Biologi i den Celler H5 och H6 respektive.
    • För det andra, i en annan cell, där du vill ha resultatet (vi ville ha vårt resultat i Cell G11 ), skriv följande formel,
    =INDEX($B$5:$E$14, SMALL(IF(COUNTIF($H$5:$H$6,$E$5:$E$14), MATCH(ROW($B$5:$E$14), ROW($B$5:$E$14)), ""), ROWS(G11:$G$11)), COLUMNS($B$5:B5)))

    • För det tredje, tryck på Ctrl + Shift + Enter på tangentbordet.

    Senare kommer du att få de första extraherade uppgifterna som motsvarar dina villkor i resultatcellen. Johnny vars ID är 3 är från Institutionen för biologi och hans post lagras i datasetet före andra, så vi fick Johnnys ID 3 i resultatcellen.

    • Dra nu runt kolumnerna och raderna genom att Handtag för fyllning för att hämta information om endast de elever som kommer från den Avdelning Kemi och Biologi .

    Fördelning av formler

    • COUNTIF($H$5:$H$6,$E$5:$E$14) -> blir,
      • COUNTIF({"Kemi"; "Biologi"},{"Matematik"; "Fysik"; "Biologi"; "Kemi"; "Fysik"; "Fysik"; "Matematik"; "Kemi"; "Matematik"; "Biologi"}
      • Utgång: {0;0;0;1;1;1;0;0;0;0;0;1;0;1}
      • Förklaring: Funktionen COUNTIF gör det möjligt att identifiera celler i intervallet $H$5:$H$6 som är lika med $E$5:$E$14 .
    • IF(COUNTIF($H$5:$H$6,$E$5:$E$14), MATCH(ROW($B$5:$E$14), ROW($B$5:$E$14)), "") -> blir,
      • IF({0;0;0;1;1;1;0;0;0;0;1;0;1},MATCH(ROW($B$5:$E$14), ROW($B$5:$E$14)), "") -> blir,
      • IF({0;0;1;1;0;0;0;1;0;1},{ 1; 2; 3; 4; 5; 6; 7; 8; 9; 10},"")
      • Utgång: {""; ""; 3; 4; ""; ""; ""; ""; 8; "";10}
      • Förklaring: IF funktionen har tre argument, det första måste vara ett logiskt uttryck. Om uttrycket utvärderas till TRUE så händer en sak (argument 2) och om FALSK en annan sak händer (argument 3). Det logiska uttrycket beräknades i steg 1, TRUE är lika med 1 och FALSK är lika med 0 (noll) . Row nej 3, 4, 8 och 10 utvärdera TRUE (1) .
    • SMALL(IF(COUNTIF($H$5:$H$6,$E$5:$E$14), MATCH(ROW($B$5:$E$14), ROW($B$5:$E$14)), ""), ROWS(G11:$G$11))) -> blir,
      • SMALL({""; ""; 3; 4; ""; ""; ""; 8; "";10},ROWS(G11:$G$11)) -> blir,
      • SMALL({""; ""; 3; 4; ""; ""; ""; 8; "";10},1)
      • Utgång: 3
      • Förklaring: SMALL funktionen returnerar den k:e minsta värde från en grupp nummer. 3 är den minsta i denna grupp.
    • INDEX($B$5:$E$14, SMALL(IF(COUNTIF($H$5:$H$6,$E$5:$E$14), MATCH(ROW($B$5:$E$14), ROW($B$5:$E$14)), ""), ROWS(G11:$G$11)), COLUMNS($B$5:B5))) -> blir,
      • INDEX($B$5:$E$14, 3, KOLUMNER($B$5:B5)) -> blir,
      • INDEX($B$5:$E$14, 3, 1)
      • Resultat: {3; "Johnny", 80, "Biology"}
      • Förklaring: INDEX funktionen returnerar ett värde från ett cellområde( $B$5:$E$14 ), som specificeras av värdet baserat på ett rad- och kolumnnummer.

    Läs mer: Återge flera värden i Excel baserat på ett enda kriterium (3 alternativ)

    3. Använda Filter Command Tool för att extrahera data från Excel baserat på intervallkriterier

    Filtreringsverktyget i Excel är ett av de mest använda och effektiva verktygen för att extrahera specifika uppgifter utifrån olika kriterier.

    Titta på följande dataset. Tidigare använde vi det som exempel för att extrahera uppgifter om elever som fick betyg från 80 till 100 genom att implementera Array-formeln. Men i det här avsnittet kommer vi att lära oss hur man gör det genom att använda Excels filterverktyg .

    Stegen för att extrahera data baserat på ett visst intervall med hjälp av Excels filter anges nedan.

    Steg:

    • Först väljer du bara de rubrik av datamängden.
    • För det andra, gå till Data -> Filter .

    • För det tredje kommer den att infoga en rullgardins-knapp i varje huvudnamn på datamängden.

    • Eftersom vi vill extrahera data baserat på märkena, klickar vi på rullgardinsmenyn bredvid Marks kolumn.
    • Därefter väljer du i rullgardinslistan Antal filter -> Mellan... (återigen, eftersom vi hämtar data mellan 80 och 100 , så vi väljer alternativet Mellan Du kan välja andra alternativ från listan enligt dina kriterier.)

    • Nu, från popup-fönstret Anpassat AutoFilter väljer du 80 från rullgardinslista som visas genom att klicka på rullgardins-knapp bredvid är större än eller lika med och välj 100 i etikettrutan är mindre än eller lika med .
    • Senare klickar du på OK .

    Slutligen får du alla uppgifter endast för de elever som fick Betyg från 80 till 100 .

    Läs mer: Hur man extraherar data från en bild till Excel (med snabba steg)

    Liknande läsningar

    • Hur du importerar data till Excel från en annan Excel-fil (2 sätt)
    • VBA-kod för att konvertera textfiler till Excel (7 metoder)
    • Hur man konverterar textfil till Excel automatiskt (3 lämpliga sätt)
    • Konvertera Excel till textfil med avgränsare (2 enkla metoder)
    • Hur man importerar textfiler med flera avgränsare till Excel (3 metoder)

    4. Använda avancerade filter för att extrahera data från Excel baserat på intervallkriterier

    Om du inte vill gå igenom alla de steg som visas i avsnittet Filter kan du använda Avancerat filter i Excel för att extrahera data baserat på ett visst intervall.

    För att använda det avancerade filteralternativet i Excel måste du definiera villkoret i arbetsbladet för att kunna använda det senare. Se följande bild där vi definierar vårt villkor för att få ut elevernas uppgifter om Poäng 80-100 i två olika celler som >=80 och <=100 under Marker och vi kommer att använda cellreferensnummer. av dessa celler senare i vårt arbete.

    Stegen för att extrahera data baserat på ett visst intervall med hjälp av Excels avancerade filter beskrivs nedan.

    Steg:

    • Välj först den hela datatabellen .
    • För det andra, gå till Data -> Avancerat .

    • Slutligen ser du intervallet för din utvalda uppgifter i rutan bredvid Lista över intervall alternativ.
    • I rutan bredvid Kriterieområde , välj den celler som uppfyller de fastställda villkoren Du kommer att se att arbetsbladets namn genereras automatiskt där, efter cellreferensnumren för de fördefinierade villkoren.
    • Slutligen klickar du på OK .

    Därför får du alla uppgifter endast för de elever som har fått Betyg från 80 till 100 .

    Läs mer: Extrahera filtrerade data i Excel till ett annat ark (4 metoder)

    5. Extrahera data från Excel-definierad tabell baserat på intervallkriterier

    Du kan extrahera data från en Excel-definierad tabell från ditt Excel-arbetsblad med hjälp av Filter alternativ.

    Vi tar följande oorganiserade dataset, som vi först definierar som en Excel-tabell och sedan extraherar data därifrån.

    Stegen för att extrahera data från en definierad tabell i Excel baserat på ett visst intervall anges nedan.

    Steg:

    • I början väljer du alla celler från ditt dataset och tryck på Ctrl T .

    • Därefter visas en popup-fönster Skapa en tabell En ruta visas, som visar den intervallet i din datauppsättning som värden . Behåll kryssrutan Min tabell har rubriker märkt.
    • Senare klickar du på OK .

    Den kommer att automatiskt generera en tabell baserat på ditt dataset med en rullgardins-knapp tillsammans med rubrikerna.

    • Klicka sedan, på samma sätt som vi tidigare visade dig, på rullgardinsmenyn bredvid Marks eftersom vi vill extrahera data baserat på märkena.
    • Senare väljer du i rullgardinslistan Antal filter -> Mellan... (återigen, eftersom vi hämtar data mellan 80 och 100 väljer vi alternativet Mellan Du kan välja andra alternativ från listan enligt dina kriterier.)

    • Nu, från popup-fönstret Anpassat AutoFilter väljer du 80 från rullgardinslista som visas genom att klicka på rullgardins-knapp bredvid är större än eller lika med och välj 100 i etikettrutan är mindre än eller lika med .
    • Slutligen klickar du på OK .

    I slutändan får du en Excel-definierad tabell som endast innehåller uppgifter om de elever som fick Betyg från 80 till 100 .

    Läs mer: Hur du extraherar data från en tabell baserat på flera kriterier i Excel

    Tänk på

    • Eftersom intervallet för datatabellmatrisen för att söka efter värdet är fast, glöm inte att sätta in dollar ($) framför cellreferensnumret för matristabellen.
    • När du arbetar med arrayvärden får du inte glömma att trycka på Ctrl + Shift + Enter på tangentbordet medan du extraherar resultat. Om du bara trycker på Gå in på fungerar endast när du använder Microsoft 365 .
    • Efter att ha tryckt på Ctrl + Shift + Enter märker du att formellfältet omsluter formeln i hängande parenteser {} , och deklarerar den som en array-formel. Skriv inte in dessa parenteser {} Excel gör det automatiskt åt dig.

    Slutsats

    I den här artikeln har vi lärt oss hur man extraherar data från Excel baserat på olika kriterier. Jag hoppas att den här artikeln har varit till stor nytta för dig. Ställ gärna frågor om du har några frågor om ämnet.

    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.