Excel XLOOKUP-funksjon med formeleksempler

  • Dele Denne
Michael Brown

Opplæringen introduserer XLOOKUP - den nye funksjonen for vertikalt og horisontalt oppslag i Excel. Venstre oppslag, siste kamp, ​​Vlookup med flere kriterier og mye mer som tidligere krevde en rakettvitenskapelig grad for å oppnå, er nå blitt like enkelt som ABC.

Når du trenger å slå opp i Excel , hvilken funksjon ville du brukt? Er det en hjørnestein VLOOKUP eller dens horisontale søsken HLOOKUP? I et mer komplekst tilfelle, vil du stole på den kanoniske INDEX MATCH-kombinasjonen eller forplikte jobben til Power Query? Den gode nyheten er at du ikke lenger har valg - alle disse metodene gjør plass for en kraftigere og mer allsidig etterfølger, XLOOKUP-funksjonen.

Hvordan er XLOOKUP bedre? På mange måter! Den kan se vertikalt og horisontalt, til venstre og over, søke med flere kriterier, og til og med returnere en hel kolonne eller rad med data, ikke bare én verdi. Det har tatt Microsoft over tre tiår, men endelig har de klart å designe en robust funksjon som overvinner mange frustrerende feil og svakheter ved VLOOKUP.

Hva er fangsten? Akk, det er en. XLOOKUP-funksjonen er kun tilgjengelig i Excel for Microsoft 365, Excel 2021 og Excel for nettet.

    Excel XLOOKUP-funksjon - syntaks og bruker

    XLOOKUP-funksjonen i Excel søker i et område eller en matrise etter en spesifisert verdi og returnerer den relaterte verdien fra en annen kolonne. Den kan slå opp begge delerhente alle detaljene knyttet til selgeren av interesse (F2). Det du trenger å gjøre er å oppgi et område, ikke en enkelt kolonne eller rad, for return_array -argumentet:

    =XLOOKUP(F2, A2:A7, B2:D7)

    Du skriver inn formelen øverst til venstre celle i resultatområdet, og Excel overfører automatisk resultatene til tilstøtende tomme celler. I vårt tilfelle inkluderer returmatrisen (B2:D7) 3 kolonner ( Dato , Vare og Beløp ), og alle tre verdiene returneres til området G2:I2.

    Hvis du heller vil ordne resultatene vertikalt i en kolonne, nest XLOOKUP inn i TRANSPOSE-funksjonen for å snu den returnerte matrisen:

    =TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))

    På lignende måte kan du returnere en hel kolonne med data, for eksempel Beløp -kolonnen. For dette, bruk celle F1 som inneholder "Amount" som oppslagsverdi , området A1:D1 som inneholder kolonneoverskriftene som oppslagsmatrise og området A2:D7 som inneholder alle data som return_array .

    =XLOOKUP(F1, A1:D1, A2:D7)

    Merk. Fordi flere verdier er fylt inn i naboceller, sørg for at du har nok tomme celler til høyre eller ned. Hvis Excel ikke finner nok tomme celler, vil en #SPILL! feil oppstår.

    Tips. XLOOKUP kan ikke bare returnere flere oppføringer, men også erstatte dem med andre verdier du angir. Et eksempel på slik masseerstatning finner du her: Hvordan søke og erstatte flere verdier med XLOOKUP.

    XLOOKUP medflere kriterier

    En annen stor fordel med XLOOKUP er at den håndterer arrays naturlig. På grunn av denne muligheten kan du evaluere flere kriterier direkte i oppslagsmatrise -argumentet:

    XLOOKUP(1, ( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ) * (…), return_array )

    Hvordan denne formelen fungerer : Resultatet av hver kriterietest er en matrise av TRUE og FALSE-verdier. Multiplikasjonen av matrisene konverterer TRUE og FALSE til henholdsvis 1 og 0, og produserer den endelige oppslagsmatrisen. Som du vet gir multiplisering med 0 alltid null, så i oppslagsmatrisen er det bare elementene som oppfyller alle kriteriene som er representert med 1. Og fordi oppslagsverdien vår er "1", tar Excel den første "1" i lookup_array (første match) og returnerer verdien fra return_array i samme posisjon.

    For å se formelen i aksjon, la oss trekke et beløp fra D2:D10 ( return_array ) med følgende betingelser:

    • Kriterier1 (dato) = G1
    • Kriterier2 (selger) = G2
    • Kriterier3 (vare) = G3

    Med datoer i A2:A10 ( criteria_range1 ), selgernavn i B2:B10 ( criteria_range2 ) og varer i C2:C10 ( criteria_range3 ), har formelen denne formen:

    =XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)

    Selv om Excel XLOOKUP-funksjonen behandler matriser, fungerer den som en vanlig formel og fullføres med en vanlig Entertastetrykk.

    XLOOKUP-formelen med flere kriterier er ikke begrenset til "lik" betingelser. Du står fritt til å bruke andre logiske operatorer også. For for eksempel å filtrere bestillinger gjort på datoen i G1 eller tidligere, legg inn "<=G1" i det første kriteriet:

    =XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)

    Dobbelt XLOOKUP

    For å finne en verdi i skjæringspunktet mellom en bestemt rad og kolonne, utfør det såkalte dobbeltoppslag eller matriseoppslag . Jepp, Excel XLOOKUP kan også gjøre det! Du legger ganske enkelt én funksjon i en annen:

    XLOOKUP( oppslagsverdi1 , oppslagsmatrise1 , XLOOKUP( oppslagsverdi2 , oppslagsmatrise2 , data_values ))

    Hvordan denne formelen fungerer : Formelen er basert på XLOOKUPs evne til å returnere en hel rad eller kolonne. Den indre funksjonen søker etter oppslagsverdien og returnerer en kolonne eller rad med relaterte data. Denne matrisen går til den ytre funksjonen som returmatrise .

    For dette eksemplet skal vi finne salgene gjort av en bestemt selger innenfor et bestemt kvartal. For dette legger vi inn oppslagsverdiene i H1 (selgernavn) og H2 (kvartal), og gjør en toveis Xlookup med følgende formel:

    =XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))

    Eller omvendt :

    =XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))

    Hvor A2:A6 er selgernavnene, B1:E1 er kvartaler (kolonneoverskrifter), og B2:E6 er dataverdier.

    Et toveis oppslag kan også utføres med en INDEX Match-formel og i enfå andre måter. For mer informasjon, se Toveis oppslag i Excel.

    Hvis feil XLOOKUP

    Når oppslagsverdien ikke finnes, returnerer Excel XLOOKUP en #N/A feil. Ganske kjent og forståelig for ekspertbrukere, kan det være ganske forvirrende for nybegynnere. For å erstatte standard feilnotasjon med en brukervennlig melding, skriv inn din egen tekst i det fjerde argumentet kalt if_not_found .

    Tilbake til det aller første eksemplet diskutert i denne opplæringen. Hvis noen legger inn et ugyldig havnavn i E1, vil følgende formel eksplisitt fortelle dem at "No match is found":

    =XLOOKUP(E1, A2:A6, B2:B6, "No match is found")

    Merknader:

    • Argumentet if_not_found fanger bare #N/A-feil, ikke alle feil.
    • #N/A-feil kan også håndteres med IFNA og VLOOKUP, men syntaksen er litt mer kompleks, og en formel er lengre.

    Stilling-sensitive XLOOKUP

    Som standard behandler XLOOKUP-funksjonen små og store bokstaver som de samme tegnene. For å gjøre det skille mellom store og små bokstaver, bruk EXACT-funksjonen for oppslagsmatrise -argumentet:

    XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )

    Hvordan denne formelen fungerer : EKSAKT-funksjonen sammenligner oppslagsverdien mot hver verdi i oppslagsmatrisen og returnerer SANN hvis de er nøyaktig like inkludert store og små bokstaver, ellers FALSE. Denne matrisen med logiske verdier går til oppslagsmatrisen argumentet til XLOOKUP. Som et resultat søker XLOOKUP etter TRUE-verdien i matrisen ovenfor og returnerer et samsvar fra returmatrisen.

    For eksempel, for å få prisen fra B2:B7 ( returmatrise ) for elementet i E1 ( oppslagsverdi) , formelen i E2 er:

    =XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Not found")

    Merk. Hvis det er to eller flere nøyaktig samme verdier i oppslagsmatrisen (inkludert store og små bokstaver), returneres det første funnet samsvaret.

    Excel XLOOKUP fungerer ikke

    Hvis formelen din ikke fungerer riktig eller resulterer i feil, er det mest sannsynlig på grunn av følgende årsaker:

    XLOOKUP er ikke tilgjengelig i Excel

    XLOOKUP-funksjonen er ikke bakoverkompatibel. Den er bare tilgjengelig i Excel for Microsoft 365 og Excel 2021, og vil ikke vises i tidligere versjoner.

    XLOOKUP returnerer feil resultat

    Hvis den åpenbart riktige Xlookup-formelen returnerer en feil verdi, er sjansen stor. at oppslags- eller returområdet "skiftet" når formelen ble kopiert ned eller på tvers. For å forhindre at dette skjer, pass på å alltid låse begge områdene med absolutte cellereferanser (som $A$2:$A$10).

    XLOOKUP returnerer #N/A feil

    An #N /En feil betyr bare at oppslagsverdien ikke ble funnet. For å fikse dette, prøv å søke etter omtrentlig samsvar eller informer brukerne dine om at ingen samsvar er funnet.

    XLOOKUP returnerer #VALUE error

    A #VALUE! feil oppstår hvis oppslags- og returmatrisene er inkompatibledimensjoner. For eksempel er det ikke mulig å søke i en horisontal matrise og returnere verdier fra en vertikal matrise.

    XLOOKUP returnerer #REF error

    A #REF! feil oppstår når du slår opp mellom to forskjellige arbeidsbøker, hvorav den ene er lukket. For å fikse feilen, åpner du bare begge filene.

    Som du nettopp har sett, har XLOOKUP mange fantastiske funksjoner som gjør den til funksjonen for nesten alle oppslag i Excel. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Øvningsarbeidsbok for nedlasting

    Excel XLOOKUP-formeleksempler (.xlsx-fil)

    vertikalt og horisontalt og utfør et eksakt samsvar (standard), omtrentlig (nærmeste) samsvar eller jokertegn (delvis).

    Syntaksen til XLOOKUP-funksjonen er som følger:

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

    De tre første argumentene er obligatoriske og de tre siste er valgfrie.

    • Oppslagsverdi - verdien til søk etter.
    • Lookup_array - området eller matrisen der det skal søkes.
    • Return_array - området eller matrisen som verdier skal returneres fra.
    • If_not_found [valgfritt] - verdien som skal returneres hvis ingen samsvar blir funnet. Hvis den utelates, returneres en #N/A-feil.
    • Samsvarsmodus [valgfritt] - samsvartypen som skal utføres:
      • 0 eller utelatt (standard) - eksakt samsvar . Hvis den ikke blir funnet, returneres en #N/A-feil.
      • -1 - eksakt samsvar eller neste mindre. Hvis et eksakt samsvar ikke blir funnet, returneres den neste mindre verdien.
      • 1 - eksakt samsvar eller neste større. Hvis et eksakt samsvar ikke blir funnet, returneres den neste større verdien.
      • 2 - samsvar med jokertegn.
    • Søkemodus [valgfritt] - søkeretningen:
      • 1 eller utelatt (standard) - for å søke fra første til siste.
      • -1 - for å søke i omvendt rekkefølge, fra sist til først.
      • 2 - binært søk på data sortert stigende.
      • -2 - binært søk på data sortert synkende.

      Ifølge Microsoft, binærtsøk er inkludert for avanserte brukere. Det er en spesiell algoritme som finner posisjonen til en oppslagsverdi i en sortert matrise ved å sammenligne den med det midterste elementet i matrisen. Et binært søk er mye raskere enn et vanlig søk, men fungerer bare riktig på sorterte data.

    Grunnleggende XLOOKUP-formel

    For å få mer forståelse, la oss bygge en Xlookup-formel i sin enkleste form for å utføre et eksakt oppslag. Til dette trenger vi bare de tre første argumentene.

    Anta at du har en oppsummeringstabell med informasjon om de fem havene på jorden. Du ønsker å få arealet til en bestemt havinngang i F1 ( oppslagsverdi ). Med havnavnene i A2:A6 ( lookup_array ) og arealer i C2:C6 ( return_array ), går formelen som følger:

    =XLOOKUP(F1, A2:A6, C2:C6)

    Oversatt til vanlig engelsk står det: søk etter F1-verdien i A2:A6 og returner en verdi fra C2:C6 i samme rad. Ingen kolonneindeksnummer, ingen sortering, ingen andre latterlige påfunn ved Vlookup! Det fungerer bare :)

    XLOOKUP vs. VLOOKUP i Excel

    Sammenlignet med tradisjonell VLOOKUP har XLOOKUP mange fordeler. På hvilken måte er det bedre enn VLOOKUP? Her er en liste over de 10 beste funksjonene som blåser dørene av enhver annen oppslagsfunksjon i Excel:

    1. Vertikalt og horisontalt oppslag . XLOOKUP-funksjonen har fått navnet sitt på grunn av dens evne til å slå opp både vertikalt oghorisontalt.
    2. Se i hvilken som helst retning: høyre, venstre, bunn eller opp . Mens VLOOKUP bare kan søke i kolonnen lengst til venstre og HLOOKUP i den øverste raden, har XLOOKUP ingen slike begrensninger. Det beryktede venstreoppslaget i Excel er ikke vanskelig lenger!
    3. Eksakt samsvar som standard . I de fleste situasjoner vil du se etter et eksakt samsvar, og XLOOKUP returnerer det som standard (i motsetning til VLOOKUP-funksjonen som som standard er omtrentlig samsvar). Selvfølgelig kan du få XLOOKUP til å utføre en omtrentlig kamp også om nødvendig.
    4. Delvis match med jokertegn . Når du bare kjenner en del av oppslagsverdien, ikke alt, kommer et jokertegn godt med.
    5. Søk i omvendt rekkefølge . Tidligere, for å få den siste forekomsten, måtte du snu rekkefølgen på kildedataene dine. Nå setter du ganske enkelt search_mode -argumentet til -1 for å tvinge Xlookup-formelen til å søke bakfra og returnere det siste treffet.
    6. Returner flere verdier . Ved å manipulere med return_array -argumentet kan du trekke en hel rad eller kolonne med data relatert til oppslagsverdien din.
    7. Søk med flere kriterier . Excel XLOOKUP håndterer arrays naturlig, noe som gjør det mulig å utføre oppslag med flere kriterier.
    8. Hvis feilfunksjonalitet . Tradisjonelt bruker vi IFNA-funksjonen for å fange #N/A feil. XLOOKUP inkorporerer denne funksjonaliteten i if_not_found -argument som lar deg skrive ut din egen tekst hvis ingen gyldig treff blir funnet.
    9. Innsetting/sletting av kolonner . En av de mest irriterende problemene med VLOOKUP er at å legge til eller fjerne kolonner bryter en formel fordi returkolonnen identifiseres med indeksnummeret. Med XLOOKUP oppgir du returområdet, ikke nummer, noe som betyr at du kan sette inn og fjerne så mange kolonner du trenger uten å bryte noe.
    10. Bedre ytelse . VLOOKUP kan bremse regnearkene dine fordi den inkluderer hele tabellen i beregninger, noe som resulterer i å behandle langt flere celler enn faktisk nødvendig. XLOOKUP håndterer bare oppslags- og returmatrisene som det virkelig avhenger av.

    Hvordan bruke XLOOKUP i Excel - formeleksempler

    De følgende eksemplene viser de mest nyttige XLOOKUP-funksjonene i aksjon. I tillegg vil du oppdage et par ikke-trivielle bruksområder som vil ta Excel-oppslagsferdighetene dine til et nytt nivå.

    Slå opp vertikalt og horisontalt

    Microsoft Excel pleide å ha to funksjoner for forskjellige oppslag typer, som hver har sin egen syntaks og bruksregler: VLOOKUP for å se vertikalt i en kolonne og HLOOKUP for å se horisontalt i en rad.

    XLOOKUP-funksjonen kan gjøre begge deler med samme syntaks. Forskjellen ligger i hva du oppgir for oppslags- og returmatrisene.

    For v-oppslag, oppgi kolonner:

    =XLOOKUP(E1, A2:A6, B2:B6)

    Tilh-oppslag, skriv inn rader i stedet for kolonner:

    =XLOOKUP(I1, B1:F1, B2:F2)

    Venstre oppslag utført naturlig

    I tidligere versjoner av Excel, INDEX MATCH formelen var den eneste pålitelige måten å se til venstre eller over. Nå trenger du ikke lenger å kombinere to funksjoner der én ville være tilstrekkelig. Bare spesifiser måloppslagsmatrisen, og XLOOKUP vil håndtere den uten problemer uavhengig av plasseringen.

    La oss som et eksempel legge til Rank -kolonnen til venstre for eksempeltabellen vår. Målet er å få rangeringen av havinngangen i F1. VLOOKUP ville snuble her fordi den bare kan returnere en verdi fra en kolonne til høyre for oppslagskolonnen. En Xlookup-formel takler enkelt:

    =XLOOKUP(F1, B2:B6, A2:A6)

    På lignende måte kan du se ovenfor når du søker horisontalt i rader.

    XLOOKUP med eksakt og omtrentlig samsvar

    Samsvarsatferden styres av det femte argumentet kalt match_mode . Som standard utføres et eksakt samsvar.

    Vær oppmerksom på at selv når du velger et omtrentlig samsvar ( match_mode satt til 1 eller -1), vil funksjonen fortsatt søke etter et eksakt samsvar kamp først. Forskjellen er hva den returnerer hvis en eksakt oppslagsverdi ikke blir funnet.

    Match_mode argument:

    • 0 eller utelatt - eksakt samsvar; hvis ikke funnet - #N/A feil.
    • -1 - eksakt samsvar; hvis ikke funnet - neste mindre element.
    • 1 - eksakt samsvar; hvis ikke funnet- neste større element.

    Eksakt samsvar XLOOKUP

    Dette er alternativet du sannsynligvis bruker 99 % av tiden du søker opp i Excel. Siden et eksakt samsvar er XLOOKUPs standardoppførsel, kan du utelate match_mode og bare oppgi de første 3 nødvendige argumentene.

    I noen situasjoner vil imidlertid ikke eksakt samsvar fungere. Et typisk scenario er når oppslagstabellen ikke inneholder alle verdiene, men heller "milepæler" eller "grenser" som kvantitetsbaserte rabatter, salgsbaserte provisjoner osv.

    Vår eksempeloppslagstabell viser korrelasjonen mellom eksamenspoeng og karakterer. Som du kan se på skjermbildet nedenfor, fungerer et eksakt samsvar bare når poengsummen til en bestemt elev samsvarer nøyaktig med verdien i oppslagstabellen (som Christian i rad 3). I alle andre tilfeller returneres en #N/A-feil.

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)

    For å få karakterene i stedet for #N/A-feil, trenger vi for å se etter et omtrentlig samsvar som vist i neste eksempel.

    Omtrentlig samsvar XLOOKUP

    For å utføre et omtrentlig oppslag, sett match_mode -argumentet til enten -1 eller 1 , avhengig av hvordan dataene dine er organisert.

    I vårt tilfelle viser oppslagstabellen de nedre grensene for karakterene. Så vi setter match_mode til -1 for å søke etter den neste mindre verdien når et eksakt samsvar ikke blir funnet:

    =XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)

    For eksempel har Brian poengsummen til 98 (F2). Formelen søker etter denne oppslagsverdien i B2:B6men finner den ikke. Deretter søker den etter det neste mindre elementet og finner 90, som tilsvarer karakter A:

    Hvis oppslagstabellen vår inneholdt de øvre grensene for karakterene, ville vi satt match_mode til 1 for å søke etter det neste større elementet hvis et eksakt samsvar mislykkes:

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)

    Formelen søker etter 98 og finner den ikke igjen. Denne gangen prøver den å finne den neste større verdien og får 100, tilsvarende karakter A:

    Tips. Når du kopierer en Xlookup-formel til flere celler, lås oppslags- eller returområdene med absolutte cellereferanser (som $B$2:$B$6) for å forhindre at de endres.

    XLOOKUP med delvis samsvar (jokertegn)

    For å utføre et delvis samsvarsoppslag, sett match_mode -argumentet til 2, som instruerer XLOOKUP-funksjonen til å behandle jokertegnene:

    • En stjerne (*) - representerer en hvilken som helst sekvens av tegn.
    • Et spørsmålstegn (?) - representerer et enkelt tegn.

    For å se hvordan det fungerer , tenk på følgende eksempel. I kolonne A har du noen få smarttelefonmodeller og, i kolonne B, batterikapasiteten deres. Du er nysgjerrig på batteriet til en bestemt smarttelefon. Problemet er at du ikke er sikker på at du kan skrive inn modellnavnet nøyaktig slik det vises i kolonne A. For å overvinne dette, skriv inn delen som definitivt er der og bytt ut de resterende tegnene med jokertegn.

    For eksempel, å fåinformasjon om batteriet til iPhone X, bruk denne formelen:

    =XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)

    Eller skriv inn den kjente delen av oppslagsverdien i en celle og sett sammen cellereferansen med jokertegnene:

    =XLOOKUP("*"&E1&"*", A2:A8, B2:B8, ,2)

    XLOOKUP i omvendt rekkefølge for å få siste forekomst

    Hvis tabellen inneholder flere forekomster av oppslagsverdien, kan det hende du trenger for å returnere den siste kampen . For å få det gjort, konfigurer Xlookup-formelen til å søke i omvendt rekkefølge.

    Søkeretningen styres ved å være det sjette argumentet kalt search_mode :

    • 1 eller utelatt (standard) - søker fra første til siste verdi, dvs. topp-til-bunn med vertikalt oppslag eller venstre mot høyre med horisontalt oppslag.
    • -1 - søker i omvendt rekkefølge fra siste til første verdi .

    Som et eksempel, la oss returnere det siste salget gjort av en bestemt selger. For dette setter vi sammen de tre første nødvendige argumentene (G1 for oppslagsverdi , B2:B9 for oppslagsmatrise og D2:D9 for returmatrise ) og setter - 1 i det 5. argumentet:

    =XLOOKUP(G1, B2:B9, D2:D9, , ,-1)

    Enkelt og enkelt, er det ikke?

    XLOOKUP for å returnere flere kolonner eller rader

    En mer fantastisk funksjon ved XLOOKUP er evnen til å returnere mer enn én verdi knyttet til samme kamp. Alt gjøres med standardsyntaksen og uten noen ekstra manipulasjoner!

    Fra tabellen nedenfor, forutsatt at du vil

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.