Excel XLOOKUP-funktion med eksempler på formler

  • Del Dette
Michael Brown

Tutorialen introducerer XLOOKUP - den nye funktion til vertikale og horisontale opslag i Excel. Venstre opslag, sidste match, Vlookup med flere kriterier og mange andre ting, som tidligere krævede en raketvidenskabelig grad for at udføre, er nu blevet lige så let som ABC.

Når du har brug for at slå op i Excel, hvilken funktion vil du så bruge? Er det hjørnestenen VLOOKUP eller dens horisontale søskende HLOOKUP? I et mere komplekst tilfælde vil du bruge den kanoniske INDEX MATCH-kombination eller overlade opgaven til Power Query? Den gode nyhed er, at du ikke behøver at vælge længere - alle disse metoder giver plads til en mere kraftfuld og alsidig efterfølger, XLOOKUP-funktionen.

Hvordan er XLOOKUP bedre? På mange måder! Den kan kigge vertikalt og horisontalt, til venstre og ovenover, søge med flere kriterier og endda returnere en hel kolonne eller række af data, ikke kun én værdi. Det har taget Microsoft over tre årtier, men endelig er det lykkedes dem at designe en robust funktion, der overvinder mange frustrerende fejl og svagheder ved VLOOKUP.

Der er desværre en hage ved det: XLOOKUP-funktionen er kun tilgængelig i Excel til Microsoft 365, Excel 2021 og Excel til internettet.

    Excel XLOOKUP-funktion - syntaks og anvendelser

    XLOOKUP-funktionen i Excel søger i et område eller et array efter en bestemt værdi og returnerer den relaterede værdi fra en anden kolonne. Den kan søge både vertikalt og horisontalt og udføre et nøjagtigt match (standard), et tilnærmelsesvist match (nærmeste match) eller et wildcard-match (delvist match).

    Syntaksen for XLOOKUP-funktionen er som følger:

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

    De tre første argumenter er obligatoriske, og de tre sidste er valgfrie.

    • Opslag_værdi - den værdi, der skal søges efter.
    • Opslag_array - det område eller array, hvor der skal søges.
    • Return_array - det område eller array, hvorfra der skal returneres værdier.
    • If_not_found [valgfrit] - den værdi, der skal returneres, hvis der ikke findes nogen match. Hvis den udelades, returneres en #N/A-fejl.
    • Match_mode [valgfri] - den match-type, der skal udføres:
      • 0 eller udeladt (standard) - nøjagtigt match. Hvis det ikke findes, returneres en #N/A-fejl.
      • -1 - nøjagtig overensstemmelse eller den næstmindste mindre værdi. Hvis der ikke findes en nøjagtig overensstemmelse, returneres den næstmindste mindre værdi.
      • 1 - nøjagtig overensstemmelse eller den næste større værdi. Hvis der ikke findes en nøjagtig overensstemmelse, returneres den næste større værdi.
      • 2 - jokertegn matcher.
    • Search_mode [valgfrit] - søgningens retning:
      • 1 eller udeladt (standard) - for at søge fra først til sidst.
      • -1 - for at søge i omvendt rækkefølge, fra sidst til først.
      • 2 - binær søgning på data sorteret i stigende orden.
      • -2 - binær søgning på data sorteret i faldende rækkefølge.

      Ifølge Microsoft, binær søgning er inkluderet for avancerede brugere. Det er en særlig algoritme, der finder positionen for en opslagsværdi i et sorteret array ved at sammenligne den med det midterste element i arrayet. En binær søgning er meget hurtigere end en almindelig søgning, men fungerer kun korrekt på sorterede data.

    Grundlæggende XLOOKUP-formel

    For at få en bedre forståelse kan vi opbygge en Xlookup-formel i sin enkleste form for at udføre et nøjagtigt opslag. Hertil har vi kun brug for de første 3 argumenter.

    Lad os antage, at du har en oversigtstabel med oplysninger om de fem oceaner på Jorden. Du ønsker at få arealet af et specifikt ocean input i F1 ( opslagsværdi Med havnavnene i A2:A6 ( opslagsbatteri ) og områder i C2:C6 ( return_array ), lyder formlen som følger:

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

    Oversat til almindeligt dansk siger det: søg efter F1-værdien i A2:A6 og returner en værdi fra C2:C6 i samme række. Ingen kolonneindeksnumre, ingen sortering, ingen andre latterlige særheder ved Vlookup! Det virker bare :)

    XLOOKUP vs. VLOOKUP i Excel

    Sammenlignet med den traditionelle VLOOKUP har XLOOKUP mange fordele. På hvilken måde er den bedre end VLOOKUP? Her er en liste over de 10 bedste funktioner, der overgår alle andre opslagsfunktioner i Excel:

    1. Lodret og vandret opslag XLOOKUP-funktionen har fået sit navn på grund af dens evne til at kigge opad både vertikalt og horisontalt.
    2. Kig i alle retninger: højre, venstre, nederst eller op Mens VLOOKUP kun kan søge i kolonnen længst til venstre og HLOOKUP i den øverste række, har XLOOKUP ingen sådanne begrænsninger. Det berygtede venstre opslag i Excel er ikke længere en plage!
    3. Præcist match som standard I de fleste situationer vil du søge efter et nøjagtigt match, og XLOOKUP returnerer det som standard (i modsætning til VLOOKUP-funktionen, der som standard giver et tilnærmet match). Du kan selvfølgelig også få XLOOKUP til at udføre et tilnærmet match, hvis det er nødvendigt.
    4. Delvis match med jokertegn Når du kun kender en del af opslagsværdien, men ikke hele værdien, er det praktisk med et wildcard-match.
    5. Søg i omvendt rækkefølge Tidligere skulle du vende rækkefølgen af dine kildedata om for at få den sidste forekomst. Nu skal du blot indstille search_mode argumentet til -1 for at tvinge din Xlookup-formel til at søge fra bagsiden og returnere det sidste match.
    6. returnerer flere værdier . Ved at manipulere med den return_array argumentet kan du hente en hel række eller kolonne af data, der er relateret til din opslagsværdi.
    7. Søg med flere kriterier . Excel XLOOKUP håndterer arrays naturligt, hvilket gør det muligt at udføre opslag med flere kriterier.
    8. Hvis fejlfunktionalitet Traditionelt bruger vi IFNA-funktionen til at fange #N/A-fejl. XLOOKUP inkorporerer denne funktionalitet i if_not_found argumentet, der gør det muligt at udgive din egen tekst, hvis der ikke findes et gyldigt match.
    9. Indsættelse/sletning af kolonner Et af de mest irriterende problemer med VLOOKUP er, at tilføjelse eller fjernelse af kolonner ødelægger en formel, fordi returkolonnen identificeres af dens indeksnummer. Med XLOOKUP angiver du returområdet og ikke nummeret, hvilket betyder, at du kan indsætte og fjerne så mange kolonner, som du har brug for, uden at noget går i stykker.
    10. Bedre ydeevne . VLOOKUP kan gøre dine regneark langsommere, fordi den inddrager hele tabellen i beregningerne, hvilket resulterer i behandling af langt flere celler end nødvendigt. XLOOKUP håndterer kun de opslags- og returarrays, som den virkelig er afhængig af.

    Sådan bruger du XLOOKUP i Excel - eksempler på formler

    De følgende eksempler viser de mest nyttige XLOOKUP-funktioner i praksis. Derudover vil du opdage et par ikke-trivielle anvendelser, som vil bringe dine Excel-opslagsfærdigheder til et nyt niveau.

    Se opad vertikalt og horisontalt

    Microsoft Excel plejede at have to funktioner til forskellige opslagstyper med hver sin syntaks og brugsregler: VLOOKUP til at kigge lodret i en kolonne og HLOOKUP til at kigge vandret i en række.

    XLOOKUP-funktionen kan gøre begge dele med den samme syntaks. Forskellen ligger i, hvad du angiver til opslags- og returarrays.

    For v-lookup skal du angive kolonner:

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

    For h-lookup skal du angive rækker i stedet for kolonner:

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

    Venstre opslag udføres nativt

    I tidligere versioner af Excel var INDEX MATCH-formlen den eneste pålidelige måde at kigge til venstre eller ovenover på. Nu behøver du ikke længere at kombinere to funktioner, hvor én ville være tilstrækkelig. Du skal blot angive målopslagsarrayet, og XLOOKUP håndterer det uden problemer, uanset hvor det er placeret.

    Som eksempel kan vi tilføje Rang kolonnen til venstre i vores eksempeltabel. Målet er at få rangordenen for havindgangen i F1. VLOOKUP ville snuble her, fordi den kun kan returnere en værdi fra en kolonne til højre for opslagskolonnen. En Xlookup-formel klarer det uden problemer:

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

    På samme måde kan du se ovenfor, når du søger horisontalt i rækker.

    XLOOKUP med nøjagtigt og tilnærmelsesvis match

    Match-adfærden styres af det femte argument kaldet match_mode Som standard udføres et nøjagtigt match.

    Vær opmærksom på, at selv når du vælger et omtrentligt match ( match_mode indstillet til 1 eller -1), vil funktionen stadig søge efter et nøjagtigt match først. Forskellen ligger i, hvad den returnerer, hvis der ikke findes en nøjagtig opslagsværdi.

    Match_mode-argumentet:

    • 0 eller udeladt - nøjagtig match; hvis ikke fundet - #N/A-fejl.
    • -1 - nøjagtig overensstemmelse; hvis ikke fundet - næste mindre element.
    • 1 - nøjagtig match; hvis ikke fundet - næste større emne.

    Præcis match XLOOKUP

    Dette er den indstilling, du sandsynligvis bruger 99% af de gange, du laver opslag i Excel. Da et nøjagtigt match er XLOOKUP's standardadfærd, kan du udelade match_mode og kun angive de tre første nødvendige argumenter.

    I nogle situationer vil et nøjagtigt match dog ikke fungere. Et typisk scenarie er, når din opslagstabel ikke indeholder alle værdierne, men snarere "milepæle" eller "grænser" som f.eks. mængdebaserede rabatter, salgsbaserede provisioner osv.

    Vores eksempel på en opslagstabel viser sammenhængen mellem eksamensresultater og karakterer. Som du kan se i skærmbilledet nedenfor, fungerer et nøjagtigt match kun, når en bestemt elevs score passer nøjagtigt til værdien i opslagstabellen (som Christian i række 3). I alle andre tilfælde returneres en #N/A-fejl.

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

    For at få karakterer i stedet for #N/A-fejl skal vi søge efter en tilnærmelsesvis overensstemmelse som vist i det næste eksempel.

    Tilnærmet match XLOOKUP

    Hvis du vil foretage et tilnærmelsesvis opslag, skal du indstille match_mode argumentet til enten -1 eller 1, afhængigt af hvordan dine data er organiseret.

    I vores tilfælde viser opslagstabellen de nedre grænser for karaktererne. Så vi sætter match_mode til -1 for at søge efter den næste mindre værdi, når der ikke findes et nøjagtigt match:

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

    Brian har f.eks. scoren 98 (F2). Formlen søger efter denne opslagsværdi i B2:B6, men kan ikke finde den. Derefter søger den efter det næste mindre element og finder 90, hvilket svarer til karakteren A:

    Hvis vores opslagsskema indeholdt de øvre grænser for karaktererne, ville vi indstille match_mode til 1 for at søge efter det næste større emne, hvis der ikke findes et nøjagtigt match:

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

    Formlen søger efter 98 og kan igen ikke finde den. Denne gang forsøger den at finde den næste større værdi og får 100, hvilket svarer til klasse A:

    Tip. Når du kopierer en Xlookup-formel til flere celler, skal du låse opslags- eller returområderne med absolutte cellereferencer (f.eks. $B$2:$B$6) for at forhindre, at de ændres.

    XLOOKUP med delvis match (jokertegn)

    Hvis du vil udføre et delvist match-søgning, skal du indstille match_mode argumentet til 2, hvilket instruerer XLOOKUP-funktionen til at behandle jokertegnene:

    • En asterisk (*) - repræsenterer en hvilken som helst sekvens af tegn.
    • Et spørgsmålstegn (?) - repræsenterer et hvilket som helst enkelt tegn.

    For at se, hvordan det fungerer, kan du se på følgende eksempel: I kolonne A har du et par smartphone-modeller og i kolonne B deres batterikapacitet. Du er nysgerrig efter batteriet på en bestemt smartphone. Problemet er, at du ikke er sikker på, at du kan skrive modelnavnet præcis som det står i kolonne A. For at løse dette problem skal du indtaste den del, der helt sikkert er der, og erstatte den resterende deltegn med jokertegn.

    For at få oplysninger om batteriet på iPhone X skal du f.eks. bruge denne formel:

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

    Eller indtast den kendte del af opslagsværdien i en celle, og sammenkæd cellehenvisningen med jokertegn:

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

    XLOOKUP i omvendt rækkefølge for at få den sidste forekomst

    Hvis din tabel indeholder flere forekomster af opslagsværdien, kan du nogle gange have brug for at returnere sidste kamp Hvis du vil have det gjort, skal du konfigurere din Xlookup-formel til at søge i omvendt rækkefølge.

    Retningen af søgningen styres af det 6. argument, der hedder search_mode :

    • 1 eller udeladt (standard) - søger fra første til sidste værdi, dvs. fra top til bund med vertikalt opslag eller fra venstre til højre med horisontalt opslag.
    • -1 - søger i omvendt rækkefølge fra sidste til første værdi.

    Lad os som eksempel returnere det sidste salg foretaget af en bestemt sælger. Til dette formål sammensætter vi de første tre nødvendige argumenter (G1 for opslagsværdi , B2:B9 for opslagsbatteri , og D2:D9 for return_array ) og indsætter -1 i det femte argument:

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

    Det er ligetil og nemt, ikke sandt?

    XLOOKUP til at returnere flere kolonner eller rækker

    Endnu en fantastisk funktion i XLOOKUP er dens evne til at returnere mere end én værdi for samme match. Alt dette gøres med standard syntaksen og uden ekstra manipulationer!

    Hvis vi antager, at du vil hente alle oplysninger om den pågældende sælger (F2) i nedenstående tabel, skal du angive et interval, ikke en enkelt kolonne eller række, for return_array argument:

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

    Du indtaster formlen i den øverste venstre celle i resultatområdet, og Excel spreder automatisk resultaterne til de tilstødende tomme celler. I vores tilfælde omfatter returområdet (B2:D7) 3 kolonner ( Dato , Varen og Beløb ), og alle tre værdier returneres i intervallet G2:I2.

    Hvis du hellere vil arrangere resultaterne lodret i en kolonne, skal du integrere XLOOKUP i TRANSPOSE-funktionen for at vende det returnerede array:

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

    På samme måde kan du returnere en hel kolonne af data, f.eks. Beløb kolonne. Brug celle F1, der indeholder "Beløb" som opslagsværdi , området A1:D1, der indeholder kolonneoverskrifterne som opslagsbatteri og intervallet A2:D7, der indeholder alle data som return_array .

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

    Bemærk: Da flere værdier udfyldes i naboceller, skal du sikre dig, at du har nok tomme celler til højre eller nedad. Hvis Excel ikke kan finde nok tomme celler, opstår der en #SPILL! fejl.

    Tip. XLOOKUP kan ikke kun returnere flere poster, men også erstatte dem med andre værdier, som du angiver. Et eksempel på en sådan bulk-erstatning kan findes her: Sådan søger og erstatter du flere værdier med XLOOKUP.

    XLOOKUP med flere kriterier

    En anden stor fordel ved XLOOKUP er, at det håndterer arrays nativt. På grund af denne evne kan du evaluere flere kriterier direkte i opslagsbatteri argument:

    XLOOKUP(1, ( criteria_range1 = kriterier1 ) * ( criteria_range2 = kriterier2 ) * (...), return_array )

    Sådan fungerer denne formel : Resultatet af hver kriterietest er et array af værdierne TRUE og FALSE. Multiplikationen af arrays konverterer TRUE og FALSE til henholdsvis 1 og 0 og giver det endelige opslagsarray. Som bekendt giver multiplikation med 0 altid nul, så i opslagsarrayet er det kun de elementer, der opfylder alle kriterierne, der repræsenteres med 1. Og da vores opslagsværdi er "1", tager Excel det første "1" i opslagsbatteri (første match) og returnerer værdien fra return_array i samme stilling.

    For at se formlen i aktion kan vi trække et beløb fra D2:D10 ( return_array ) med følgende betingelser:

    • Kriterium1 (dato) = G1
    • Kriterium2 (sælger) = G2
    • Kriterium3 (punkt) = G3

    Med datoer i A2:A10 ( criteria_range1 ), navne på sælgere i B2:B10 ( criteria_range2 ) og poster i C2:C10 ( criteria_range3 ), har formlen denne form:

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

    Selv om Excel-funktionen XLOOKUP behandler arrays, fungerer den som en almindelig formel og afsluttes med et almindeligt Enter-tastetryk.

    XLOOKUP-formlen med flere kriterier er ikke begrænset til "lig med"-betingelser. Du kan også frit bruge andre logiske operatorer. Hvis du f.eks. vil filtrere ordrer, der er foretaget på datoen i G1 eller tidligere, skal du angive "<=G1" i det første kriterium:

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

    Dobbelt XLOOKUP

    For at finde en værdi i skæringspunktet mellem en bestemt række og kolonne skal du udføre den såkaldte dobbeltopslag eller matrixopslag Ja, det kan Excel XLOOKUP også gøre! Du skal blot indlejre en funktion i en anden:

    XLOOKUP( opslag_værdi1 , opslagsbatteri1 , XLOOKUP( lookup_value2 , lookup_array2 , data_værdier ))

    Sådan fungerer denne formel : Formlen er baseret på XLOOKUP's evne til at returnere en hel række eller kolonne. Den indre funktion søger efter sin opslagsværdi og returnerer en kolonne eller række af relaterede data. Dette array går til den ydre funktion som den return_array .

    I dette eksempel skal vi finde det salg, som en bestemt sælger har foretaget inden for et bestemt kvartal. Vi indtaster opslagsværdierne i H1 (navn på sælger) og H2 (kvartal) og foretager et tovejs 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 navnene på sælgerne, B1:E1 er kvartaler (kolonneoverskrifter) og B2:E6 er dataværdier.

    Et tovejsopslag kan også udføres med en INDEX Match-formel og på nogle få andre måder. Du kan finde flere oplysninger under Tovejsopslag i Excel.

    Hvis fejl XLOOKUP

    Når opslagsværdien ikke findes, returnerer Excel XLOOKUP en #N/A-fejl. Det er ganske velkendt og forståeligt for erfarne brugere, men kan være ret forvirrende for nybegyndere. Hvis du vil erstatte standardfejlnotationen med en brugervenlig besked, kan du skrive din egen tekst i det fjerde argument, der hedder if_not_found .

    Tilbage til det allerførste eksempel i denne vejledning: Hvis nogen indtaster et ugyldigt havnavn i E1, vil følgende formel udtrykkeligt fortælle dem, at "No match is found" (der er ikke fundet noget match):

    =XLOOKUP(E1, A2:A6, B2:B6, "Der er ikke fundet noget match")

    Bemærkninger:

    • if_not_found argumentet fanger kun #N/A-fejl, ikke alle fejl.
    • #N/A-fejl kan også håndteres med IFNA og VLOOKUP, men syntaksen er lidt mere kompleks, og formlen er længere.

    Case-sensitiv XLOOKUP

    Som standard behandler XLOOKUP-funktionen små og store bogstaver som de samme tegn. Hvis du vil gøre den opmærksom på store og små bogstaver, skal du bruge EXACT-funktionen til opslagsbatteri argument:

    XLOOKUP(TRUE, EXACT( opslagsværdi , opslagsbatteri ), return_array )

    Sådan fungerer denne formel : EXACT-funktionen sammenligner opslagsværdien med hver værdi i lookup-arrayet og returnerer TRUE, hvis de er nøjagtigt ens, inklusive bogstavsangivelse, og FALSE i modsat fald. Dette array af logiske værdier går til opslagsbatteri XLOOKUP søger efter den sande værdi i ovenstående array og returnerer et match i det returnerede array.

    For eksempel for at få prisen fra B2:B7 ( return_array ) for posten i E1 ( lookup_value) , er formlen i E2 er:

    =XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Ikke fundet")

    Bemærk. Hvis der er to eller flere nøjagtigt samme værdier i opslagsarrayet (inklusive bogstavsangivelse), returneres den første match, der findes.

    Excel XLOOKUP virker ikke

    Hvis din formel ikke fungerer korrekt eller resulterer i fejl, skyldes det højst sandsynligt følgende årsager:

    XLOOKUP er ikke tilgængelig i min Excel

    XLOOKUP-funktionen er ikke bagudkompatibel. Den er kun tilgængelig i Excel til Microsoft 365 og Excel 2021, og den findes ikke i tidligere versioner.

    XLOOKUP returnerer forkert resultat

    Hvis din tilsyneladende korrekte Xlookup-formel returnerer en forkert værdi, er der stor sandsynlighed for, at opslags- eller returområdet "skiftede", da formlen blev kopieret nedad eller på tværs. For at forhindre dette skal du sørge for altid at låse begge områder med absolutte cellereferencer (f.eks. $A$2:$A$10).

    XLOOKUP returnerer #N/A fejl

    En #N/A-fejl betyder blot, at opslagsværdien ikke er fundet. Hvis du vil rette op på dette, skal du prøve at søge efter et tilnærmelsesvist match eller informere dine brugere om, at der ikke er fundet noget match.

    XLOOKUP returnerer #VALUE fejl

    Der opstår en #VALUE!-fejl, hvis opslags- og returneringsarrays har uforenelige dimensioner. Det er f.eks. ikke muligt at søge i et vandret array og returnere værdier fra et lodret array.

    XLOOKUP returnerer #REF-fejl

    Der opstår en #REF!-fejl, når der søges mellem to forskellige arbejdsbøger, hvoraf den ene er lukket. For at rette fejlen skal du blot åbne begge filer.

    Som du lige har set, har XLOOKUP mange fantastiske funktioner, der gør den til DEN funktion til næsten alle opslag i Excel. Jeg takker dig for at læse og håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    Eksempler på Excel XLOOKUP-formler (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.