XLOOKUP vs INDEX-MATCH i Excel (alla möjliga jämförelser)

  • Dela Detta
Hugh West

I dag kommer jag att göra en jämförande analys av XLOOKUP vs INDEX-MATCH-funktioner Excel I de tidigare versionerna av Excel , använde vi tidigare HLOOKUP , den VLOOKUP och INDEX-MATCH funktioner för att leta efter ett visst värde i ett antal celler. Men med framväxten av Office 365 Excel har gett oss en ny och dynamisk funktion som kallas för XLOOKUP funktion för att utföra en liknande operation på ett mer sofistikerat sätt. I den här artikeln kommer jag att försöka jämföra de vanligaste funktionerna, funktionen XLOOKUP och INDEX-MATCH .

Ladda ner övningsboken

Ta den här provfilen för att få en bättre förståelse.

XLOOKUP och INDEX-MATCH-funktioner.xlsx

Introduktion till XLOOKUP-funktionen

XLOOKUP funktionen används för att hitta ett visst värde inom ett intervall av celler eller en array. Därefter returneras den första motsvarande matchningen. Den visar också den närmaste eller ungefärliga matchningen när det inte finns någon exakt matchning.

Syntax:

=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])

Argument:

  • Lookup_value : Det är det värde som vi söker efter i en specifik kolumn i intervallet.
  • Lookup_array : Det är den matris där vi söker efter Lookup_value . Kan vara både rad och kolumn.
  • Return_array: Det är den kolumn från vilken motsvarande värde för Lookup_value kommer att returneras.

Valfria argument:

  • If_not_found : Det är det värde som kommer att returneras om Lookup_array inte har lookup_value.
  • Match_mode : Det är ett nummer som anger vilken typ av matchning som Lookup_value Detta är ett valfritt argument som kan innehålla fyra värden.
  1. När den är 0 , XLOOKUP söker efter en exakt matchning (standard).
  2. När den är 1 , XLOOKUP söker först efter en exakt matchning. Om en exakt matchning inte hittas, matchar den nästa mindre värde.
  3. När den är -1 , XLOOKUP söker först efter en exakt matchning. Om en exakt matchning inte hittas, matchar den nästa större värde.
  4. När den är 2 , XLOOKUP kommer först att söka efter en ungefärlig matchning med hjälp av jokertecken (gäller endast för strängar).
  • Sök_läge : Det är ett tal som anger vilken typ av sökning som utförs på lookup_array. Det är också valfritt och kan också ha fyra värden:
  1. Om det är 1 , XLOOKUP kommer att söka uppifrån och ner i Lookup_array (Standard).
  2. När den är -1 , XLOOKUP kommer att söka från botten till toppen i
  3. Om det är 2 , XLOOKUP gör en binär sökning i stigande ordning.
  4. När den är -2 , XLOOKUP gör en binär sökning i fallande ordning.

Introduktion till INDEX-MATCH-funktioner

Kombinationen av INDEX-MATCH används för att hämta ett värde från en given plats och matcha det med källintervallet.

Syntax:

=INDEX(array,MATCH(lookup_value,lookup_array,match_type),no_of_column)

Argument:

För INDEX-funktionen:

  • Array : Det är ett intervall av celler från vilket vi vill hämta ett värde.
  • MATCH(lookup_value,lookup_array,match_type): Det är radnumret för det område där Lookup_value matchar ett visst värde i Lookup_array .
  • No_of_column: Det är numret på den kolumn i matrisen från vilken vi vill returnera ett värde som motsvarar Lookup_value .

För funktionen MATCH:

  • Lookup_value: Det är värdet som vi söker.
  • Lookup_array: Det är den matris i vilken vi söker efter den Lookup_value Den kan vara både en rad och en kolumn.
  • Match_typ: Det är ett heltal som anger vilken typ av matchning vi letar efter. Detta är valfritt.
  1. När den är -1 , MATCH kommer först att leta efter en exakt matchning. Om en exakt matchning inte hittas, kommer den att leta efter nästa större värde (standard) (motsatt till XLOOKUP ).

Villkoret är dock att Lookup_array måste sorteras i stigande ordning, annars visas ett fel.

  1. När den är 1 , MATCH söker också först efter en exakt matchning. Om en exakt matchning inte hittas, söker den efter nästa mindre värde (tvärtom till XLOOKUP ).

Villkoret är dock att Lookup_array måste sorteras i fallande ordning den här gången, annars visas ett fel.

  1. När den är 0 , MATCH söker efter en exakt matchning.

Läs mer: Hur man väljer specifika data i Excel (6 metoder)

7 Jämförelser mellan användningen av funktionerna XLOOKUP och INDEX-MATCH

Nu när vi har brutit ner formeln ska vi diskutera några likheter och olikheter mellan de två funktionerna. Innan vi går över till huvuddiskussionerna visar jag de viktigaste punkterna i en tabell för att underlätta för dig.

Diskussionspunkt Likhet/olikhet Förklaring
Kolumn lookup_array Likhet Båda stöder en kolumn som lookup_array.
Row lookup_array Likhet Båda stöder en rad som lookup_array.
Ingen matchning av lookup_value Olikhet XLOOKUP har standardinställningsalternativet för ingen matchning av lookup_value, men INDEX-MATCH har det inte.
Ungefärlig matchning Partiell likhet XLOOKUP kan hitta nästa mindre eller nästa större värde när det inte finns någon exakt matchning. INDEX-MATCH kan också göra det, men lookup_array måste sorteras i stigande eller fallande ordning.
Matchande jokertecken Likhet Båda stöder matchande Wildcards.
Matchning av flera värden Partiell likhet XLOOKUP kan ta reda på antingen det första eller det sista värdet när flera värden matchar varandra, men INDEX-MATCH kan bara återge det första värdet som matchar varandra.
Formel för arrayer Likhet Båda stöder formeln array.

1. XLOOKUP och INDEX-MATCH för att söka upp värdet i kolumnen

Det finns en likhet mellan de två funktionerna i denna aspekt. För den XLOOKUP och INDEX-MATCH kan lookup_array vara en kolumn för båda funktionerna. Här letar vi efter den exakta Poäng i fysik av studentens namn i C ell F5 , Jennifer Marlo . Vi ville söka uppifrån och ner i Elevens namn kolumnen och återge " Ej funnen " om ingen matchning har hittats.

  • För XLOOKUP , tillämpa formeln i Cell G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)

  • För INDEX-MATCH , använda denna formel i Cell G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3)

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

2. XLOOKUP och INDEX-MATCH för att söka upp värdet i raden

Det finns också en likhet mellan de två funktionerna i denna aspekt. För den XLOOKUP och INDEX-MATCH , den Lookup_array kan också vara en rad för båda funktionerna. Till exempel har vi en ny datamängd med ID:er , Namn , och Poäng i fysik och Årskurserna .

Låt oss för ett ögonblick tänka på att detta är en mycket stor datamängd, och vi vet inte hur många av de Betyg: kolumnen är. För att ta reda på en viss elevs betyg måste vi sedan använda kolumnen Rubriksrad (B4:E4) som lookup_array och ordet " Betyg: " som den Lookup_value Vi kan göra det med hjälp av både XLOOKUP och INDEX-MATCH .

  • För att ta reda på vilken grad av 3:e elev , den XLOOKUP formeln kommer att vara så här i Cell G5 .
=XLOOKUP("Grade",B4:E4,B7:E7, "Not Found",0,1)

  • I detta fall ska INDEX-MATCH formeln kommer att vara:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))

3. XLOOKUP och INDEX-MATCH när ingen matchning hittas

De två funktionerna skiljer sig åt i denna aspekt. Om lookup_value inte stämmer överens med något värde i Lookup_array kan du ange ett fast värde som ska returneras i XLOOKUP För att göra det måste du ställa in det värdet i if_not_found argument. Å andra sidan finns det inget sådant alternativ i INDEX-MATCH Det kommer att ge ett fel. Du måste använda funktionen IFERROR utanför för att hantera felet. I den givna datamängden kommer vi att ta reda på hur många Elevnamn med ID 100 .

  • För detta använder du följande XLOOKUP formeln i Cell G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)

  • Å andra sidan kan man tillämpa följande INDEX-MATCH formel.
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)

  • Eftersom den returnerar ett fel måste du använda en IFERROR funktionen utanför för att hantera felet.
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2), "Ej funnen")

Liknande läsningar

  • Excel INDEX MATCH för att återge flera värden i en cell
  • Excel INDEX-MATCH-formel för att returnera flera värden horisontellt
  • Hur man använder INDEX-MATCH-formeln i Excel för att generera flera resultat
  • [Rättad!] INDEX MATCH ger inte rätt värde i Excel (5 orsaker)
  • Hur man använder INDEX MATCH i stället för VLOOKUP i Excel (3 sätt)

4. XLOOKUP och INDEX-MATCH vid ungefärliga matchningar

Det finns en partiell likhet mellan de två funktionerna i denna aspekt. I den XLOOKUP funktion, om den Lookup_value inte matchar något värde i Lookup_array kan du ändra formeln så att den returnerar nästa mindre eller nästa större värde. Ange argumentet match_type till -1 om du vill ha nästa mindre värde och ställ in det på 1 om du vill ha nästa större värde.

Vi kommer till exempel att ta reda på vilken elev som har fått betyget 50 eller nästa större märke.

  • Du hittar värdet genom att tillämpa följande XLOOKUP formel.
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)

  • Som du kan se finns det ingen elev med betyget 50 Det är därför den visar den som följer omedelbart efter. 50 , 51 av Desmond Hayes .

Samma alternativ finns i INDEX-MATCH Men bristen är att du måste sortera lookup_array i fallande ordning om du vill ha nästa större värde. Annars returneras ett fel. Och för att få nästa mindre värde måste du sortera i stigande ordning.

  • Först och främst infogar du den här formeln i Cell G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)

  • Som ett resultat ser du att resultatet visar en #N/A fel.
  • Sortera därför Cellområde D5:D16 i stigande ordning så får du rätt värde.

Särskild anmärkning: I XLOOKUP funktion, -1 fungerar för nästa mindre värde, men i INDEX-MATCH , -1 fungerar för nästa större värde. På samma sätt i XLOOKUP fungerar 1 för nästa större värde, men i INDEX-MATCH, 1 fungerar för nästa mindre värde.

Läs mer: Hur du använder INDEX och matchning för partiell matchning (2 sätt)

5. XLOOKUP och INDEX-MATCH vid matchning av jokertecken

Det finns en likhet mellan de två funktionerna i denna aspekt. XLOOKUP och INDEX-MATCH , båda stöder Wildcards Här kommer vi att ta reda på alla elever med " Marlo " som det andra namnet. Låt oss följa stegen nedan för att se XLOOKUP vs INDEX-MATCH jämförelse.

  • Tillämpa först denna XLOOKUP formeln i Cell G5 för att få fram resultatet.
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)

Observera: Om du vill använda jokertecken i XLOOKUP måste du ställa in match_type argument till 2 Annars fungerar det inte.

  • Å andra sidan är det INDEX-MATCH formeln för att utföra samma uppgift kommer att se ut på följande sätt.
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)

Läs mer: INDEX MATCH Flera kriterier med jokertecken i Excel (en fullständig guide)

6. XLOOKUP och INDEX-MATCH När flera värden matchar uppslagsvärdet

Detta exempel visar XLOOKUP vs INDEX-MATCH när flera värden matchar uppslagsvärdet. Det finns också en partiell likhet mellan de två funktionerna i detta avseende. XLOOKUP och INDEX-MATCH båda returnerar endast ett värde om flera värden i Lookup_array matcha den Lookup_value Men i XLOOKUP kan du ändra sökningen så att den får antingen den första eller den sista matchningen. Om du vill få det första värdet som matchar, ställer du in search_type argument till 1 Och för att få fram det sista värdet som matchar, ställer du in search_type argument till -1 . Men i INDEX-MATCH har du inget val. Du får bara det första värdet som matchar.

  • För att få den första eleven som fick 100 kan du använda följande XLOOKUP formeln i Cell G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)

  • Tillsammans med den får du den sista studenten med 100 med hjälp av detta XLOOKUP formel.
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)

  • Tvärtom får du bara det första värdet som matchar detta INDEX-MATCH formel.
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)

7. XLOOKUP och INDEX-MATCH vid flera uppslagsvärden

I det här exemplet kommer vi att demonstrera följande XLOOKUP vs INDEX-MATCH vid flera uppslagsvärden. Det finns en likhet mellan de två funktionerna i detta avseende. Båda tillåter flera Lookup_values (Array Formula).

  • För XLOOKUP fungerar följande formel.
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)

  • För INDEX-MATCH fungerar även följande funktion.
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)

Fördelar och nackdelar med XLOOKUP-funktionen

Det finns vissa för- och nackdelar med att använda XLOOKUP Låt oss se dem i korthet.

Fördelar

  • Ange ett standardvärde för fall där ingen matchning föreligger.
  • Kan söka efter ungefärliga matchningar utan att sortera Lookup_array .
  • Du har tillgång till sökning från både den första och den sista cellen i Lookup_array .

Nackdelar

  • Fungerar långsammare än INDEX-MATCH funktion.
  • Tillgänglig i Office 365 endast.

Fördelar och nackdelar med INDEX-MATCH-funktioner

INDEX-MATCH funktioner har också några av följande för- och nackdelar.

Fördelar

  • Fungerar snabbare än XLOOKUP funktion.
  • Tillgänglig i den gamla Excel versioner.

Nackdelar

  • Kan inte hantera fel när ingen matchning hittas.
  • Behöver den Lookup_array som ska sorteras för att hitta ungefärliga överensstämmelser.
  • Återger endast det första värdet när flera värden matchar Lookup_value .

Slutsats

Slutligen är vi framme vid slutet av vår långa artikel. Här har vi försökt att skapa en jämförande analys av de olika XLOOKUP mot INDEX-MATCH funktioner i Excel. Låt oss få veta dina insiktsfulla förslag om detta. Följ ExcelWIKI för fler handledningar.

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.