Innehållsförteckning
En av de mest fantastiska och mest använda funktionerna i Excel är funktionen VLOOKUP-funktionen . Hittills har vi lärt oss att ta fram en enda matchning från ett intervall av celler med hjälp av denna funktion. Du kan ofta stöta på scenarier där du behöver få fram alla matchande värden för en unik identifierare. I den här artikeln ska vi visa hur du kan ta fram flera matchningar från ett intervall av celler med hjälp av funktionen VLOOKUP-funktionen i Excel.
Ladda ner övningsboken
Du kan ladda ner följande Excel-arbetsbok för att få en bättre förståelse och öva själv.
Utföra Vlookup med flera matchningar.xlsx2 steg till Vlookup med flera matchningar i Excel
Här har vi följande Bokförteckningar från Martin Bookstore Denna datamängd innehåller följande Typ av bok , Bokens namn , och Författare av några böcker under kolumner B , C , och D på motsvarande sätt.
Idag är vårt mål att ta fram alla tändstickor för varje typ av bok med hjälp av VLOOKUP-funktionen Vi utför detta i två steg. Låt oss undersöka dem en efter en.
Här har vi använt oss av Microsoft Excel 365 versionen, men du kan använda vilken annan version som helst.
📌 Steg 01: Skapa ett unikt namn för varje uppslagsvärde
- I början av tabellen infogar du en ny kolumn med rubriken Hjälparkolumn vänster till uppslagskolumnen Typ av bok och skriv in denna formel i cell B5 .
=C5&COUNTIF(C5:$C$25,C5)
Fördelning av formler - COUNTIF(C5:$C$25,C5) returnerar det totala antalet celler i intervallet C5:C25 ( Typ av bok ) som innehåller värdet i cellen C5 ( Roman ). Se COUNTIF-funktion för mer information.
- Med enkla ord, hur många romaner det finns. Det är 7 .
- C5&COUNTIF(C5:$C$25,C5) sammanfogar värdet i cellen C5 ( Roman ) med den.
- Den returnerar alltså Novel7 .
När du drar Handtag för fyllning verktyg, C5 ökar en efter en, som i C5 , C6 , C7 ... men C25 förblir konstant. För varje Typ av bok Om du väljer ett nytt namn, utesluts de tidigare och ett nytt namn skapas.
Till exempel när det gäller romaner, Novell1 till Novel7 genereras, och liknande för Poesi och andra typer av böcker.
- Tryck sedan på ENTER .
- För därefter markören till det högra nedre hörnet av cellen B5 och det kommer att se ut som ett plus (+) tecken. Egentligen är det den Handtag för fyllning verktyg.
- Dubbelklicka nu på den.
Formeln kopieras till resten av cellerna. Alla uppslagsvärden har ett unikt namn, som t.ex. Novell1 , Novel2...., Poesi1 , Poesi2... , etc.
📌 Steg 02: Använd VLOOKUP-funktionen
- Först och främst skapar du en ny kolumn med Kolumnrubrik som uppslagsvärde.
- För det andra infogar du följande formel i cellen G5 som är den första cellen i denna kolumn.
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE)
Fördelning av formler - COUNTIF($C$5:$C$25,G$4) anger hur många celler i intervallet C5:C25 ( Typ av bok ) innehåller värdet i cellen G4 ( Roman ).
- Med enkla ord, hur många romaner det finns totalt. Det är 7 .
Vi har använt den absoluta cellreferensen för intervallet C5:C25 ( $C$5:$C$25 ) eftersom vi vill att den ska förbli oförändrad om vi kopierar formeln till en annan cell.
- INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) blir INDIRECT("A"&7) och returnerar cellreferensen A7 . Se INDIRECT-funktion för mer information.
- ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) blir nu ROW(A1:A7) .Se ROW-funktion för mer information.
- Den returnerar en matris från 1 till 7 som {1, 2, 3, 4, 5, 6, 7} .
Vi använde oss av $A$1 eftersom vi inte vill att den ska ändras om vi kopierar formeln till en annan cell.
- G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))) sammanfogar nu värdet i cellen G4 ( Roman ) med den matris som returneras av ROW-funktion och returnerar en annan array.
- Den returnerar alltså {Novel1, Novel2, ..., Novel7} .
- VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4))),$B$5:$E$25,3,FALSE) blir VLOOKUP({Novel1, Novel2, ..., Novel7},$B$5:$E$25,3,FALSE) .
Den söker efter varje värde i matrisen {Novel1, Novel2, ... Novel7} i uppslagskolumnen B .
Därefter returneras motsvarande namn på romanen från 3:e kolumnen (som den col_index_num är 3 Vi får alltså en förteckning över alla romaner.
- Som vanligt trycker du på ENTER nyckel.
Observera: Det är en array-formel, så glöm inte att trycka på Ctrl + Shift + Enter om du inte använder Excel 365 .
Och för den andra Boktyper ,
- Till att börja med ska du lägga in deras namn sida vid sida som Kolumnrubriker och dra i Handtag för fyllning .
Läs mer: INDIRECT VLOOKUP i Excel
Liknande läsningar
- VLOOKUP fungerar inte (8 orsaker & lösningar)
- Excel LOOKUP vs VLOOKUP: med 3 exempel
- Varför returnerar VLOOKUP #N/A när det finns en matchning? (5 orsaker & lösningar)
- Använd VLOOKUP med flera kriterier i Excel (6 metoder + alternativ)
- Excel VLOOKUP för att hitta sista värdet i kolumnen (med alternativ)
Alternativa sätt att använda Vlookup med flera matchningar i Excel
Om den föregående metoden verkar farlig, oroa dig inte, det finns fler alternativ.
1. Använda FILTER-funktionen
Detta är verkligen den enklaste metoden. Här använder vi bara FILTER-funktion Följ de här enkla stegen.
📌 Steg:
- För det första, skriv ner den Typ av bok som Kolumnrubrik och ange följande formel i cell F5 .
=FILTER($C$5:$C$25,$B$5:$B$25=F$4)
Fördelning av formler Här,
- $C$5:$C$25 ( Bokens namn ) är den Lookup_array Vi letar efter namnen på böckerna. Använd ditt namn.
- $B$5:$B$25 ( Typ av bok ) är den matchande_array Vi vill matcha boktyperna. Använd din bok på samma sätt.
- F4 ( Roman ) är den matchande_värde Vi vill matcha romanerna och du använder den i enlighet med detta.
- Tryck sedan på ENTER .
Om du nu vill ha Namn på böcker av alla de Typer av böcker ,
- Inledningsvis infogar du deras namn som Kolumnrubriker sida vid sida, och dra sedan i Handtag för fyllning verktyg.
2. Användning av kombinationen av funktionerna INDEX, SMALL och ROWS (kompatibel med äldre versioner av Excel)
FILTER-funktion är endast tillgänglig i Office 365 Så om du använder en äldre version av Excel behöver du inte oroa dig, vi har en annan lösning för dig. Det är enkelt och lätt, följ bara med.
📌 Steg:
- I första hand ska du infoga Typ av bok som Kolumnrubrik i cellen F4 och skriv in denna formel i cell F5 .
=IFERROR(INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))),"")
Fördelning av formler - ROW(B5:B25) returnerar en matris av {5, 6, 7, ..., 25} . och RADER(B1:B4) returnerar 4 . Så RAD(B5:B25)-RADER(B1:B4) returnerar en matris av {1, 2, 3, ..., 21} . Se ROW och RÄDER funktion för mer information.
- IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),"") returnerar motsvarande nummer från matrisen {1, 2, 3, ..., 21} värdet i cellen F4 ( Roman ) matchar värdet i någon cell i intervallet B5:B25 ( Typ av bok ). I annat fall returneras en tom cell. Se IF-funktion för mer information.
- SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))) blir SMALL({1, ..., 3, ..., 6, ..., 20, ...},{1, 2, 3, 4, ...., 21}) och returnerar siffrorna först, sedan #NUM! fel i de tomma cellerna. Se SMALL-funktion för mer information.
- INDEX($C$5:$C$25,(SMALL(IF($B$5:$B$25=F4,ROW(B5:B25)-ROWS(B1:B4),""),(ROW(B5:B25)-ROWS(B1:B4))))) blir . INDEX($C$5:$C$25,{1,3,6,11,...,#NUM!}) och returnerar motsvarande Namn på böcker (Romanernas namn) och #NUM! fel. Se den INDEX-funktion för mer information.
- Slutligen har vi förpackat formeln i en IFERROR-funktionen för att omvandla felen till tomma celler.
- Därefter trycker du på ENTER .
- Om du vill kan du nu sätta in den andra Typer av böcker som Kolumnrubriker och dra i Handtag för fyllning Du kommer att få böcker av de andra boktyperna.
3. Vlookup med flera träffar och återge resultaten i en rad
I de tidigare metoderna fick vi resultaten i vertikala kolumner. Men om vi vill få värdena i en rad, hur gör vi då? Här får vi resultaten i Författare namn för olika Boktyper i rad. Följ bara stegen nedan noggrant.
📌 Steg:
- Till att börja med ska du gå till cellen G5 och skriv ner formeln nedan.
=IFERROR(INDEX($D$5:$D$19,SMALL(IF($F5=$B$5:$B$19,ROW($D$5:$D$19)-4,""),COLUMN()-6))),"")
Den här formeln liknar den tidigare formeln, så om du har problem med att förstå den här formeln kan du se den tidigare förklaring .
- Tryck sedan på ENTER nyckel.
Men det finns andra författare som har romaner i detta dataset, så hur kan vi få fram dem?
Dra bara i Handtag för fyllning till höger till cell K5 för att få den andra Författare på Roman . Dessutom kan man dra Handtag för fyllning verktyg till cell K7 för att få fram namnen på Författare för olika typer av böcker. Se bilden nedan för ett förtydligande.
Hur man gör en Vlookup med många matchningar med flera kriterier
I våra tidigare exempel hittade vi värdena för enskilda kriterier. Till exempel fick vi fram titlarna på böcker för en viss boktyp. Men här kommer vi att använda flera kriterier. Vi kommer att leta efter Romaner på Charles Dickens med denna metod. Låt oss se den i praktiken.
📌 Steg:
- Först och främst ska du välja cell H5 och klistra in följande formel.
=IFERROR(INDEX($C$5:$C$25,SMALL(IF(1=((--($F$5=$B$5:$B$25))*(--($G$5=$D$5:$D$25))),ROW($C$5:$C$25)-4,""),ROW()-4)),"")
- Tryck sedan på ENTER .
Hur man Vlookup och returnerar flera matchningar i en cell
I tidigare tillvägagångssätt fick vi värdena i olika celler. Men vi ska visa hur vi kan få resultaten i en enda cell. Så, utan ytterligare dröjsmål, låt oss dyka in!
📌 Steg:
- I första hand gå till cell G5 och skriv in formeln nedan.
=TEXTJOIN(", ",TRUE,IF($F$5=$B$5:$B$25,C5:C25,""))
Här kan IF-funktion hämtar värdet från intervallet C5:C25 där motsvarande värden i intervallet B5:B25 matchar värdet i cellen F5 . Sedan är det TEXTJOIN-funktionen kombinerar värdena i matrisen med ett kommatecken som avgränsare.
- I andra hand trycker du på ENTER .
Läs mer: INDEX MATCH och VLOOKUP-funktionen (9 exempel)
Slutsats
Den här artikeln förklarar hur man på ett enkelt och kortfattat sätt gör vlookup med flera matchningar i Excel. Glöm inte att ladda ner övningsfilen. Tack för att du läste den här artikeln. Vi hoppas att den var till hjälp. Låt oss veta i kommentarsfältet om du har några frågor eller förslag. Besök gärna vår webbplats, ExcelWIKI en leverantör av Excel-lösningar för att få veta mer.