INDEX-MATCH med flera matchningar i Excel (6 exempel)

  • Dela Detta
Hugh West

Excel erbjuder olika funktioner och sätt att hämta matchande värden. Beroende på situationen kan användarna välja sina preferenser. Den här handledningen visar hur du får resultat med hjälp av INDEX MATCH med flera matchningar i Excel.

Först och främst ska vi lära känna dagens arbetsbok.

I arken i dagens arbetsbok hittar du produkter och deras prisrelation. Med hjälp av denna relation kommer vi att se några exempel på hur du kan hämta värde med flera kriterier .

I verkligheten kan du behöva hantera datamängder med flera relationer och ställa in olika kriterier för att få fram resultaten. För att hålla det enkelt för tillfället hämtar vi priset för en produkt som matchar namn och storlek.

Ladda ner övningsboken

Du kan ladda ner arbetsboken som användes för demonstrationen med alla formler från länken nedan.

INDEX-MATCH med flera träffar.xlsx

Grunderna för INDEX-MATCH

Grunderna i INDEX-funktionen

INDEX-funktionen returnerar ett värde eller en referens till ett värde i en tabell eller ett intervall. Den kan användas för att hämta enskilda värden eller hela rader och kolumner. Låt oss se syntaxen för INDEX-funktionen.

INDEX(array/referens, radnummer, kolumnnummer, områdesnummer)

matris eller referens: En cell eller ett intervall av celler att titta på

row_number: En rad i matrisen från vilken ett värde ska returneras.

kolumnnummer: Kolumnen i matrisen från vilken ett värde ska returneras.

area_number: Väljer ett referensområde från vilket skärningen av row_num och kolumn_nummer Detta är ett valfritt fält.

När du skriver formeln kan du välja om du vill ange row_number eller . kolumn_nummer . Om du tillhandahåller row_number är det frivilligt att använda kolumn_nummer och vice versa.

Du kan kolla in Stöd från Microsoft för en djupare syntaxfördelning.

Grunderna i MATCH-funktionen

I praktiken är en funktion som du hittar oftare med INDEX funktionen är funktionen MATCH . MATCH används för att hitta positionen för en angiven post i ett intervall av celler. Den returnerar den relativa positionen för en viss post i intervallet.

Syntax för MATCH funktionen är

MATCH(lookup_value, lookup_array, match_type)

lookup_value: Det värde som ska sökas i lookup_array.

lookup_array: Ett intervall av celler som söks.

match_type: Detta är ett valfritt fält. Du kan ange tre värden.

1 = Mindre än eller lika med lookup_value

0 = Exakt uppslagsvärde

-1 = Större eller lika med lookup_value

Om du vill ha en djupare förståelse kan du läsa följande Stöd från Microsoft plats.

6 Lämpliga exempel på användning av INDEX-MATCH-formeln med flera träffar

Nu ska vi omsätta dessa formler och teorier i praktiken i vårt dataset. Vi har löst olika scenarier med hjälp av INDEX-MATCH med flera matchningar i Excel och har inkluderat dem i olika avsnitt för bättre förståelse. Följ med för att se hur vi kan tillämpa dem i olika scenarier eller om du föredrar en specifik, kan du hitta den i tabellen ovan.

1. INDEX-MATCH med flera kriterier

För att hämta värden med flera kriterier Först måste du ange kriterierna. Om du till exempel vill få fram priset på en skjorta i liten storlek (i vår arbetsbok) måste du ange Produktnamn - Skjorta och Storlek - Liten.

Följ de här stegen för att se hur vi kan använda formeln för att hitta en indexmatchning med flera matchningar i Excel.

Steg:

  • Välj först cell G6 .
  • Skriv sedan ned följande formel.

=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

🔎 Uppdelning av formeln

INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))

👉 (G4=B5:B15) och (G5=C5:C15) är båda villkor och returnerar antingen TRUE eller . FALSK beroende på om villkoren är sanna eller inte. Numeriskt sett är de 1 eller 0. Multiplikationen ger alltså 1 om båda villkoren är sanna.

👉 MATCH(1,(G4=B5:B15)*(G5=C5:C15),0) returnerar den position där båda villkoren är sanna. I det här fallet är det 1.

👉 INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) returnerar värdet i den position som den föregående delen av formeln returnerade.

  • Slutligen trycker du på Gå in på .

Så här kan vi använda INDEX MATCH för flera kriterier eller matchningar i Excel.

Läs mer: Hur du matchar flera kriterier från olika matriser i Excel

2. INDEX-MATCH med flera kriterier tillhör rader och kolumner

I det här avsnittet kommer vi att diskutera hur man utför en sökning genom att testa två eller flera kriterier i rader och kolumner Det kan tyckas vara lite svårt och komplicerat.

Vi ändrar lite i vårt exempel, vår tabell är nu arrangerad på ett sådant sätt att storleksvärdena (Small, Large, M, XL) representerar enskilda kolumner.

På samma sätt som i föregående avsnitt anger du produkten och den önskade storleken som kriterievärden.

Följ de här stegen för att se hur vi kan använda formeln för det här avsnittet.

Steg:

  • Välj först cell I6 .
  • Skriv sedan ned följande formel i den.

=INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))

🔎 Uppdelning av formeln

👉 MATCH(I4,B5:B7,0) returnerar den exakta överensstämmelsen med värdet av I4 i intervallet B5:B7 .

👉 På samma sätt, MATCH(I5,C4:F4,0) returnerar den exakta överensstämmelsen med värdet av I5 i intervallet C4:F4 .

👉 Slutligen, INDEX(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) tar resultatet av den första funktionen som radnummer och den andra funktionen som kolumnnummer och returnerar det värde som finns i positionen från intervallet C5:F7 .

  • Därefter trycker du på Gå in på .

Vi kan alltså använda INDEX-MATCH med flera kriterier som tillhör rader och kolumner.

Läs mer: Excel-index Matcha ett/flera kriterier med ett/flera resultat

Liknande läsningar

  • INDEX MATCH med 3 kriterier i Excel (4 exempel)
  • INDEX MATCH över flera blad i Excel (med alternativ)
  • Summera med INDEX-MATCH-funktioner under flera kriterier i Excel
  • Indexmatchning av summan av flera rader i Excel (3 sätt)
  • INDEX-MATCH-formel för att hitta lägsta värde i Excel (4 lämpliga sätt)

3. INDEX-MATCH från kolumner som inte är intilliggande

I det här avsnittet visar vi ett exempel på hur man hämtar matchande värden med hjälp av två kolumner som inte ligger bredvid varandra. Dessutom behöver vi funktionen IFERROR för detta scenario.

Detta kommer att vara datasetet för demonstrationen.

Följ de här stegen för att se hur vi kan använda INDEX-MATCH för de icke närliggande kolumnerna (produkt och mängd) i detta dataset.

Steg:

  • Välj först cell G6 .
  • Skriv sedan ned följande formel i den.

=IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Inget värde")

🔎 Uppdelning av formeln

IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Inget värde")

👉 MATCH(G5,B4:B7,0) hittar den exakta överensstämmelsen med värdet i cellen G5 i intervallet B4:B7 .

👉 och MATCH(F6,B4:D4,0) hittar den exakta matchningen av F6 är intervallet B4:D4 .

👉 Därefter INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) tar det första funktionsvärdet som radnummer och det andra funktionsvärdet som kolumnnummer och returnerar värdet i den positionen i intervallet B4:D7 .

👉 Slutligen, IFERROR(INDEX(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Inget värde") returnerar strängen "No Value" om det uppstår ett fel när formeln utförs, annars returneras det vanliga värdet.

  • Tryck sedan på Gå in på på tangentbordet.

Vi kan alltså hitta den önskade matchningen med hjälp av INDEX-MATCH från icke angränsande kolumner för valda kriterier, även för flera kriterier, i Excel.

4. INDEX-MATCH från flera tabeller

För att hitta matchningar från flera tabeller kan vi använda INDEX-MATCH Vid sidan av denna funktion behöver vi följande SMALL , ISNUMMER , ROW , COUNTIF , och IFERROR funktioner också.

I exempelbladet har vi 2 butikers produkter. Med hjälp av detta blad ska vi se hur vi kan utföra uppgiften.

Följ de här stegen för att se hur vi kan använda kombinationen av de här funktionerna tillsammans med INDEX-MATCH med flera matchningar från den här uppsättningen tabeller i Excel.

Steg:

  • Välj först cell C14 .
  • Skriv nu ned följande formel.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

🔎 Uppdelning av formeln

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) hittar den exakta matchningen av C12 i intervallet B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) kontrollerar om värdet är ett tal i funktionen.

👉 IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") ROW($B$6:$B$10))) kontrollerar om den föregående funktionen är ett tal eller inte. Om det är så, returnerar den utgångsvärdet för MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) som är den position där matchen av radnummer matchas i den första och den andra ROW Annars returneras en tom sträng.

👉 SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))) returnerar den ROWS($A$1:A1) -t minsta värde från matrisen.

👉 Slutligen. INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)))) returnerar värdet på den positionen i intervallet C6:C10 .

👉 INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12)))) gör samma sak, men från den andra tabellen eftersom intervallerna är tydligt olika i denna del av formeln.

👉 Slutligen tar hela funktionen hela funktionen och returnerar den INDEX-MATCH kombinationer. Effekten av IFERROR funktionen är att om det uppstår fel när formeln körs så returnerar den inget värde.

  • Tryck sedan på Gå in på .

  • Därefter markerar du cellen igen och klickar och drar ikonen för fyllningshandtaget nedåt för flera celler för att hitta resten av värdena från tabellerna. Du kan dra extra celler, Excel stoppar värdena när det inte finns några fler av dem.

Så här kan vi använda INDEX-MATCH med kriterier från flera tabeller i Excel.

Läs mer: Flera kriterier i Excel med hjälp av funktionerna INDEX, MATCH och COUNTIF

5. INDEX-MATCH från flera arbetsblad

Vi kan använda formeln INDEX-MATCH på olika blad. Här har vi två tabeller på två olika arbetsblad.

Bladet Shop 1 för Shop 1 och bladet Shop 2 för Shop 2.

För att få fram resultatet behöver vi bara ange arknamnet före cellreferensen. Följ de här stegen för mer information.

Steg:

  • Välj först cell C14 från arket "Shop 1".
  • Skriv sedan ned följande formel.

=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

🔎 Uppdelning av formeln

IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))), INDEX(‘Shop 2’!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH(‘Shop 2’!$B$6:$B$10, $C$12, 0)), MATCH(ROW(‘Shop 2’!$B$6:$B$10), ROW(‘Shop 2’!$B$6:$B$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))

👉 MATCH($B$6:$B$10, $C$12, 0) söker efter den exakta överensstämmelsen med värdet i cell C12 i intervallet B6:B10 .

👉 ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) kontrollerar om resultatet från föregående funktion är ett tal eller inte. Detta avgör om det fanns en matchning eller inte. Detta är bara för att omvandla talvärdet till ett boolskt värde.

👉 Därefter IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") kontrollerar om det boolska värdet finns och returnerar MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) om värdet är sant, annars returneras en tom sträng. MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) del är den nummerserie där RAD($B$6:$B$10) och RAD($B$6:$B$10) Detta är bara ett praktiskt knep för att begränsa det totala antalet rader i ett valt avsnitt.

👉 Efter det, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1) söker efter den ROWS($A$1:A1) -t minsta värde från utgången av den IF del.

👉 Slutligen, INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)))) tar resultatet av den föregående funktionen som radnummer och ROWS($A$1:A1) som kolumnnummer och returnerar det värde som befinner sig i denna position i intervallet C6:C10 .

👉 På samma sätt, INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), "") gör samma sak, men från det andra arket. Eftersom arket heter "Shop 2" har vi lagt till det innan vi väljer intervall/celler. Du behöver inte lägga till dem på det ark du gör beräkningar på. Vi gjorde alltså inte det för "Shop 1" i den föregående delen av formeln.

👉 Slutligen har vi lagt till hela funktionen i en IFERROR Anledningen till detta är att man vill returnera ett tomt fält om det skulle uppstå fel när formeln körs.

  • Slutligen trycker du på Gå in på .

  • Markera cellen igen och klicka sedan på och dra ikonen för fyllningshandtaget för vissa celler nedåt (mer än den uppskattade mängden för utdatacellen bör vara bra).

Vi kommer därför att hitta alla matchningar med hjälp av INDEX-MATCH från flera kalkylblad i Excel.

6. INDEX-MATCH för flera kriterier utan matris

Vi kan också använda INDEX-MATCH för flera matchningar eller kriterier utan någon matris. Låt oss till exempel ta följande dataset.

Men vi behöver en hjälpkolumn för att uppnå detta först. Vi kommer att använda funktionen CONCATENATE Följ de här stegen för att få en fullständig guide.

Steg:

  • Välj först cell F5 och skriv ned följande formel.

=CONCATENATE(C5,",",",D5,",",",E5)

  • Tryck sedan på Gå in på .

  • Markera nu cellen igen och klicka och dra ikonen för fyllningshandtaget till slutet av kolumnen för att kopiera formeln för resten av cellerna.

  • Därefter ska vi hitta INDEX-MATCH för alla 100-tal i det ursprungliga datasetet. Välj en cell för att lagra värdet ( H5 i det här fallet).
  • Lägg sedan in följande formel.

=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))

🔎 Uppdelning av formeln

👉 MATCH(“100,100,100”,F5:F19,0) söker efter den exakta matchningen av 100,100,100 i intervallet F5:F19 .

👉 Då INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) returnerar värdet i den position där värdet matchar.

  • Slutligen trycker du på Gå in på .

På så sätt kan vi använda INDEX-MATCH för flera kriterier eller matchningar i Excel utan någon matris.

Hur man returnerar flera värden vertikalt med INDEX-MATCH Formula i Excel

Om du vill returnera flera värden vertikalt med hjälp av INDEX-MATCH kan du titta på följande exempel.

Följ de här stegen för att se hur vi kan uppnå detta för datasetet.

Steg:

  • Välj först cell F5 .
  • För det andra skriver du ned följande formel.

=IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),""")

🔎 Uppdelning av formeln

👉 RAD($B$5:$B$14) returnerar en matris som innehåller radnumren i intervallet. B5:B14 .

👉 RAD($B$5:$B$14)-RAD($B$5)+1 returnerar skillnaden mellan arrayen och cellens radnummer. B5 som i det här fallet bara är en matris från 1 till 10.

👉 IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) kontrollerar var värdet i cellen E5 är lika i intervallet B5:B14 och returnerar numret i matrisen där det är sant från den föregående matrisen.

👉 SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1) returnerar det minsta talet från matrisen.

👉 INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))) återger sedan värdet i den positionen i intervallet C5:C14 .

👉 Slutligen, IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1))),""") ser till att en tom sträng returneras om ett värde leder till ett fel i formeln.

  • För det tredje trycker du på Gå in på .

  • Markera sedan cellen igen. Slutligen klickar du på och drar ikonen för fyllningshandtaget nedåt i några celler för att få med alla värden.

På så sätt kan vi returnera flera värden vertikalt med hjälp av INDEX-MATCH i Excel.

Läs mer: INDEX MATCH med flera kriterier i ett annat ark (2 sätt)

Slutsats

Det var allt för idag. Vi har försökt visa dig ett par olika sätt att INDEX MATCH med flera matchningar. Hoppas att du tycker att detta är till hjälp. Kommentera gärna om något verkar svårt att förstå. Du är välkommen att meddela oss om du har några andra metoder för uppgiften.

För fler guider av det här slaget, besök Exceldemy.com .

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.