XLOOKUP vs INDEX-MATCH i Excel (alle mulige sammenligninger)

  • Del Dette
Hugh West

I dag vil jeg foretage en sammenlignende analyse af XLOOKUP vs INDEX-MATCH-funktioner Excel . I de tidligere versioner af Excel , brugte vi tidligere den HLOOKUP , den VLOOKUP , og den INDEX-MATCH funktioner til at lede efter en bestemt værdi i en række celler. Men med fremkomsten af Office 365 har Excel givet os en ny og dynamisk funktion kaldet XLOOKUP funktion til at udføre en lignende operation på en mere sofistikeret måde. I denne artikel vil jeg forsøge at sammenligne de meget udbredte funktioner, den XLOOKUP og INDEX-MATCH .

Download arbejdsbog til øvelser

Hent denne prøvefil for at få en bedre forståelse.

XLOOKUP vs. INDEX-MATCH-funktioner.xlsx

Introduktion til XLOOKUP-funktionen

XLOOKUP bruges til at finde en bestemt værdi inden for et område af celler eller et array. Derefter returnerer den det tilsvarende første match. Den viser også det nærmeste eller omtrentlige match, når der ikke er noget nøjagtigt match.

Syntaks:

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

Argumenter:

  • Lookup_value : Det er den værdi, som vi søger efter i en bestemt kolonne i intervallet.
  • Opslag_array : Det er det array, som vi søger i opslagsværdi . kan være både række og kolonne.
  • Return_array: Det er den kolonne, hvorfra den tilsvarende værdi af den opslagsværdi vil blive returneret.

Valgfrie argumenter:

  • If_not_found : Det er den værdi, der returneres i tilfælde af, at opslagsbatteri ikke har lookup_value.
  • Match_mode : Det er et tal, der angiver, hvilken type af match der er tale om i opslagsværdi Det er et valgfrit argument, som kan indeholde fire værdier.
  1. Når det er 0 , XLOOKUP vil søge efter et nøjagtigt match (standard).
  2. Når det er 1 , XLOOKUP søger først efter et nøjagtigt match. Hvis der ikke findes et nøjagtigt match, vil den matche den næste mindre værdi.
  3. Når det er -1 , XLOOKUP søger først efter et nøjagtigt match. Hvis der ikke findes et nøjagtigt match, vil den matche den næste større værdi.
  4. Når det er 2 , XLOOKUP vil først søge efter et omtrentligt match ved hjælp af jokertegn (gælder kun for opslagsværdier for strenge).
  • Search_mode : Det er et tal, der angiver den type søgeoperation, der udføres på lookup_array. Dette er også valgfrit. Det kan også have fire værdier:
  1. Hvis det er 1 , XLOOKUP vil søge fra top til bund i opslagsbatteri (standard).
  2. Når det er -1 , XLOOKUP vil søge fra bunden til toppen i
  3. Hvis det er 2 , XLOOKUP vil foretage en binær søgning i stigende rækkefølge.
  4. Når det er -2 , XLOOKUP vil foretage en binær søgning i faldende rækkefølge.

Introduktion til INDEX-MATCH-funktioner

Kombinationen af de INDEX-MATCH bruges til at hente en værdi fra et givet sted og matche den med kildeområdet.

Syntaks:

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

Argumenter:

For INDEX-funktionen:

  • Array : Det er en række celler, hvorfra vi ønsker at udtrække en værdi.
  • MATCH(opslag_værdi,opslag_array,match_type): Det er rækkens nummer i det område, hvor opslagsværdi matcher en bestemt værdi i opslagsbatteri .
  • Antal_af_kolonne: Det er nummeret på den kolonne i arrayet, hvorfra vi ønsker at returnere en værdi, der svarer til opslagsværdi .

For funktionen MATCH:

  • Opslag_værdi: Det er den værdi, som vi søger efter.
  • Opslag_array: Det er det array, hvori vi søger efter den opslagsværdi Det kan være både en række og en kolonne.
  • Match_type: Det er et heltal, der angiver den type match, som vi leder efter. Dette er valgfrit.
  1. Når det er -1 , MATCH vil først søge efter et nøjagtigt match. Hvis der ikke findes et nøjagtigt match, vil den søge efter den næste større værdi (standard) (modsat XLOOKUP ).

Men betingelsen er, at den opslagsbatteri skal være sorteret i stigende orden, ellers vises en fejl.

  1. Når det er 1 , MATCH vil også først søge efter et nøjagtigt match. Hvis der ikke findes et nøjagtigt match, vil den søge efter den næste mindre værdi (modsat XLOOKUP ).

Men betingelsen er, at den opslagsbatteri skal sorteres i faldende rækkefølge denne gang, ellers vises der en fejl.

  1. Når det er 0 , MATCH vil søge efter et nøjagtigt match.

Læs mere: Sådan vælger du specifikke data i Excel (6 metoder)

7 Sammenligninger mellem brugen af XLOOKUP- og INDEX-MATCH-funktionerne

Nu har vi opdelt formlen, og lad os diskutere nogle ligheder og uligheder mellem de to funktioner. Før vi går til hoveddiskussionerne, viser jeg de vigtigste punkter i en tabel for at gøre det nemmere for dig.

Punkt for diskussion Lighed/forskellighed Forklaring
Kolonne lookup_array Lighed Begge understøtter en kolonne som lookup_array.
Row lookup_array Lighed Begge understøtter en række som lookup_array.
Ingen matchning af lookup_value Forskellighed XLOOKUP har som standardindstilling mulighed for ikke at matche opslagsværdien, men INDEX-MATCH har ikke denne mulighed.
Omtrentlig overensstemmelse Delvis lighed XLOOKUP kan finde frem til den næste mindre eller næste større værdi, når der ikke er et nøjagtigt match. INDEX-MATCH kan også gøre det, men lookup_array skal sorteres i stigende eller faldende rækkefølge.
Matchende jokertegn Lighed Begge understøtter matchende Wildcards.
Sammenligning af flere værdier Delvis lighed XLOOKUP kan finde enten den første eller den sidste værdi, når flere værdier passer sammen, men INDEX-MATCH kan kun returnere den første værdi, der passer sammen.
Array-formel Lighed Begge understøtter array-formlen.

1. XLOOKUP og INDEX-MATCH til opslagsværdi i kolonne

Der er en lighed mellem de to funktioner i dette henseende. For den XLOOKUP og INDEX-MATCH kan lookup_array være en kolonne for begge funktioner. Her leder vi efter den nøjagtige Karakterer i fysik af elevens navn i C ell F5 , Jennifer Marlo Vi ønskede at søge fra top til bund i den Navn på den studerende kolonnen og returnerer " Ikke fundet " i tilfælde af, at der ikke blev fundet nogen match.

  • Til XLOOKUP , anvende formlen i Celle G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)

  • Til INDEX-MATCH , bruge denne formel i Celle G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3)

Læs mere: Sådan matches flere kriterier fra forskellige arrays i Excel

2. XLOOKUP og INDEX-MATCH til opslagsværdi i række

Der er også en lighed mellem de to funktioner på dette punkt. For den XLOOKUP og INDEX-MATCH , den opslagsbatteri kan også være en række for begge funktioner. Til illustration, vi har et nyt datasæt med ID'er , Navne , og Karakterer i fysik og Klasserne .

Lad os for et øjeblik overveje, at der er tale om et meget bredt datasæt, og vi ved ikke, hvad antallet af de Karakter kolonnen er. For at finde ud af en bestemt elevs karakter skal vi derefter bruge kolonnen Overskriftsrække (B4:E4) som lookup_array og ordet " Karakter " som den opslagsværdi Vi kan gøre det ved hjælp af både XLOOKUP og INDEX-MATCH .

  • For at finde ud af, hvilken lønklasse den 3. studerende , den XLOOKUP formlen vil se således ud i Celle G5 .
=XLOOKUP("Grade",B4:E4,B7:E7, "Ikke fundet",0,1)

  • I dette tilfælde skal INDEX-MATCH formel vil være:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))

3. XLOOKUP og INDEX-MATCH når der ikke findes nogen match

De to funktioner er forskellige på dette punkt. Hvis lookup_value ikke svarer til nogen værdi i opslagsbatteri kan du indstille en fast værdi, der skal returneres i XLOOKUP For at gøre det skal du indstille denne værdi i if_not_found Derimod er der ikke en sådan mulighed i INDEX-MATCH Det vil give en fejl. Du skal bruge IFERROR-funktionen udenfor for at håndtere fejlen. I det givne datasæt vil vi finde ud af den Elevnavn med ID 100 .

  • Til dette formål skal du bruge følgende XLOOKUP formel i Celle G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)

  • På den anden side kan du anvende denne INDEX-MATCH formel.
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)

  • Da den returnerer en fejl, skal du bruge en IFERROR funktion udenfor for at håndtere denne fejl.
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2), "Ikke fundet")

Lignende læsninger

  • Excel INDEX MATCH til at returnere flere værdier i én celle
  • Excel INDEX-MATCH-formel til at returnere flere værdier horisontalt
  • Sådan bruges INDEX-MATCH-formel i Excel til at generere flere resultater
  • [Rettet!] INDEX MATCH returnerer ikke den korrekte værdi i Excel (5 grunde)
  • Sådan bruges INDEX MATCH i stedet for VLOOKUP i Excel (3 måder)

4. XLOOKUP og INDEX-MATCH i tilfælde af tilnærmelsesvise matchninger

Der er en delvis lighed mellem de to funktioner på dette punkt. I den XLOOKUP funktion, hvis den opslagsværdi ikke svarer til nogen værdi i opslagsbatteri kan du ændre formlen til at returnere den næste mindre eller den næste større værdi. Indstil argumentet match_type til -1 hvis du vil have den næste mindre værdi, og sæt den til 1 hvis du vil have den næste større værdi.

Vi finder f.eks. frem til den studerende med en karakter på 50 eller det næste større mærke.

  • For at finde værdien skal du anvende følgende XLOOKUP formel.
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)

  • Som du kan se, er der ingen studerende med en karakter på 50 Det er derfor, den viser den umiddelbart efter 50 , 51 af Desmond Hayes .

Der er den samme mulighed i INDEX-MATCH Men manglen er, at du skal sortere lookup_array i faldende rækkefølge, hvis du vil have den næste større værdi. Ellers returnerer den en fejl. Og for at få den næste mindre værdi skal du sortere i stigende rækkefølge.

  • Først og fremmest skal du indsætte denne formel i Celle G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)

  • Som følge heraf vil du se, at resultatet viser en #N/A fejl.
  • Derfor skal du sortere de Celleområde D5:D16 i stigende rækkefølge, og du får den korrekte værdi.

Særlig bemærkning: I den XLOOKUP funktion, -1 virker for den næste mindre værdi, men i INDEX-MATCH , -1 virker for den næste større værdi. På samme måde i XLOOKUP fungerer 1 for den næste større værdi, men i INDEX-MATCH, 1 fungerer for den næste mindre værdi.

Læs mere: Sådan bruger du INDEX og Match til delvis match (2 måder)

5. XLOOKUP og INDEX-MATCH i tilfælde af matchende wildcards

Der er en lighed mellem de to funktioner i dette aspekt. XLOOKUP og INDEX-MATCH , begge støtter Wildcards Her vil vi finde ud af, om der er en elev med " Marlo " som det andet navn. Lad os følge nedenstående trin for at se XLOOKUP vs INDEX-MATCH sammenligning.

  • For det første skal du anvende denne XLOOKUP formel i Celle G5 for at få resultatet.
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)

Bemærk: Hvis du vil bruge jokertegn i XLOOKUP , skal du indstille match_type argument til 2 Ellers vil det ikke fungere.

  • På den anden side er det INDEX-MATCH formel til at udføre den samme opgave vil være som følger.
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)

Læs mere: INDEX MATCH Flere kriterier med jokertegn i Excel (en komplet vejledning)

6. XLOOKUP og INDEX-MATCH Når flere værdier matcher opslagsværdien

Dette eksempel viser XLOOKUP vs INDEX-MATCH når flere værdier matcher opslagsværdien. Der er også en delvis lighed mellem de to funktioner i denne henseende. XLOOKUP og INDEX-MATCH returnerer begge kun én værdi, hvis der er flere værdier i opslagsbatteri matcher den opslagsværdi . men i den XLOOKUP funktionen kan du ændre søgningen til at få enten den første eller den sidste match. Hvis du vil have den første værdi, der matcher, skal du indstille search_type argument til 1 Og for at få den sidste værdi, der passer, skal du indstille search_type argument til -1 . men i INDEX-MATCH har du intet valg. Du får kun den første værdi, der passer.

  • For at få den første elev, der fik 100 , kan du bruge dette XLOOKUP formel i Celle G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)

  • Sammen med det får du den sidste elev med 100 ved hjælp af dette XLOOKUP formel.
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)

  • Tværtimod får du kun den første værdi, der passer med denne INDEX-MATCH formel.
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)

7. XLOOKUP og INDEX-MATCH i tilfælde af flere opslagsværdier

I dette eksempel vil vi demonstrere XLOOKUP vs INDEX-MATCH i tilfælde af flere opslagsværdier. Der er en lighed mellem de to funktioner i denne henseende. Begge tillader flere opslagsværdier (Array-formel).

  • For den XLOOKUP funktion, vil følgende formel fungere.
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)

  • For så vidt angår INDEX-MATCH , vil følgende funktion også fungere.
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)

Fordele og ulemper ved XLOOKUP-funktionen

Der er visse fordele og ulemper ved at bruge XLOOKUP Lad os se dem i korte træk.

Fordele

  • Indstil en standardværdi for tilfælde, hvor der ikke er nogen matchende tilfælde.
  • Kan søge efter tilnærmelsesvise match uden at sortere de opslagsbatteri .
  • Har adgang til at søge fra både den første og den sidste celle i den opslagsbatteri .

Ulemper

  • Virker langsommere end den INDEX-MATCH funktion.
  • Fås i Office 365 kun.

Fordele & Ulemper ved INDEX-MATCH-funktioner

INDEX-MATCH funktioner har også nogle af følgende fordele og ulemper.

Fordele

  • Virker hurtigere end den XLOOKUP funktion.
  • Tilgængelig i den gamle Excel versioner.

Ulemper

  • Kan ikke håndtere fejl, når der ikke er fundet nogen match.
  • Har brug for den opslagsbatteri der skal sorteres for tilnærmelsesvis at finde overensstemmelser.
  • Returnerer kun den første værdi, når flere værdier svarer til opslagsværdi .

Konklusion

Endelig er vi nået til slutningen af vores lange artikel. Her har vi forsøgt at skabe en sammenlignende analyse af de XLOOKUP vs den INDEX-MATCH funktioner i Excel. Lad os høre dine indsigtsfulde forslag om dette. Følg ExcelWIKI for flere vejledninger.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.