Excel LOOKUP-funksjon med formeleksempler

  • Dele Denne
Michael Brown

Opplæringen forklarer vektor- og matriseformene til Excel LOOKUP-funksjonen og demonstrerer typisk og ikke-triviell bruk av LOOKUP i Excel med formeleksempler.

Et av de vanligste spørsmålene som hver Excel-bruker spør en gang i blant er dette: " Hvordan slår jeg opp en verdi på ett ark og trekker en samsvarende verdi til et annet ark? ". Selvfølgelig kan det være mange varianter av det grunnleggende scenariet: du leter kanskje etter det nærmeste samsvaret i stedet for det eksakte samsvaret, det kan være lurt å søke vertikalt i en kolonne eller horisontalt i en rad, vurdere ett eller flere kriterier, osv. Men , essensen er den samme - du må vite hvordan du slår opp i Excel.

Microsoft Excel gir en håndfull forskjellige måter å gjøre oppslag på. Til å begynne med, la oss lære en funksjon som er designet for å håndtere de enkleste tilfellene med vertikalt og horisontalt oppslag. Som du lett kan gjette, snakker jeg om OPSLAKK-funksjonen.

    Excel OPSLAKK-funksjon - syntaks og bruksområder

    På det mest grunnleggende nivået er OPSLAKK-funksjonen i Excel søker etter en verdi i én kolonne eller rad og returnerer en samsvarende verdi fra samme posisjon i en annen kolonne eller rad.

    Det finnes to former for OPPSLAG i Excel: Vector og Array . Hvert skjema er forklart individuelt nedenfor.

    Excel LOOKUP-funksjon - vektorform

    I denne sammenhengen refererer en vektor til et område med én kolonne eller én rad.formelen gjør jobben:

    =LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c";"d";"t"}, {"Completed";"Development";"Testing"})

    Som vist i skjermbildet nedenfor, henter formelen prosjektstatusen fra oppslagstabellen og erstatter en forkortelse med det tilsvarende ordet:

    Tips. Hvis du bruker Excel 2016 som en del av et Office 365-abonnement, kan du bruke SWITCH-funksjonen til lignende formål.

    Jeg håper disse eksemplene har kastet litt lys over hvordan OPPSLAK-funksjonen fungerer. For bedre å forstå formlene, er du velkommen til å laste ned disse Excel Lookup-eksemplene. I den neste opplæringen vil vi diskutere noen andre måter å gjøre oppslag i Excel og forklare hvilken oppslagsformel som er best å bruke i hvilken situasjon. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Følgelig bruker du vektorformen til LOOKUP for å søke i én rad eller én kolonne med data etter en spesifisert verdi, og trekke en verdi fra samme posisjon i en annen rad eller kolonne.

    Syntaksen til vektoroppslag er som følger:

    LOOKUP(oppslagsverdi, oppslagsvektor, [resultatvektor])

    Hvor:

    • Oppslagsverdi (påkrevd) - en verdi å søke etter. Det kan være et tall, tekst, logisk verdi av TRUE eller FALSE, eller en referanse til en celle som inneholder oppslagsverdien.
    • Lookup_vector (obligatorisk) - én rad eller én kolonne område som skal søkes i. Det må sorteres i stigende rekkefølge .
    • Resultatvektor (valgfritt) - én rad eller én kolonne som du vil returnere resultatet fra - en verdi i samme posisjon som oppslagsverdien. Resultatvektor må være samme størrelse som oppslagsområde . Hvis det utelates, returneres resultatet fra oppslagsvektor .

    De følgende eksemplene viser to enkle oppslagsformler i aksjon.

    Vertikal oppslagsformel - søk i ett- kolonneområde

    La oss si at du har en liste over selgere i kolonne D (D2:D5) og produktene de solgte i kolonne E (E2:E5). Du oppretter et dashbord der brukerne dine vil skrive inn selgerens navn i B2, og du trenger en formel som vil trekke et tilsvarende produkt i B3. Oppgaven kan enkelt utføres med denne formelen:

    =LOOKUP(B2,D2:D5,E2:E5)

    For bedre å forståargumenter, vennligst ta en titt på dette skjermbildet:

    Horizontal Lookup-formel - søk i én rads område

    Hvis kildedataene dine har en horisontal layout, dvs. oppføringene ligger i rader i stedet for kolonner, og oppgir deretter et radområde i lookup_vector og result_vector argumentene, slik:

    =LOOKUP(B2,E1:H1,E2:H2)

    I den andre delen av denne opplæringen finner du noen flere Excel Lookup-eksempler som løser mer komplekse oppgaver. I mellomtiden, husk følgende enkle fakta som vil hjelpe deg å omgå mulige fallgruver og forhindre vanlige feil.

    5 ting du bør vite om vektorform av Excel LOOKUP

    1. Verdier i oppslagsvektor bør sorteres i stigende rekkefølge , dvs. fra minste til største eller fra A til Å, ellers kan Excel-oppslagsformelen returnere en feil eller feil resultat. Hvis du trenger å gjøre oppslag på usorterte data , bruk enten INDEX MATCH eller OFFSET MATCH.
    2. Lookup_vector og result_vector må være en én rad eller én kolonne område av samme størrelse.
    3. OPPSLAG-funksjonen i Excel er uavhengig av store og små bokstaver , den skiller ikke store og små bokstaver.
    4. Excel LOOKUP fungerer basert på omtrentlig samsvar . Mer presist, en oppslagsformel søker etter eksakt samsvar først. Hvis den ikke finner oppslagsverdien nøyaktig, søker den opp den nest minsteverdi , dvs. den største verdien i oppslagsvektor som er mindre enn eller lik oppslagsverdi .

      Hvis oppslagsverdien for eksempel er "5", vil formelen søke etter den først. Hvis "5" ikke blir funnet, vil den søke "4". Hvis "4" ikke blir funnet, vil den søke etter "3", og så videre.

    5. Hvis oppslagsverdi er mindre enn den minste verdien i lookup_vector , Excel LOOKUP returnerer #N/A-feilen.

    Excel LOOKUP-funksjon - array form

    Matriseformen til LOOKUP-funksjonen søker etter den angitte verdien i den første kolonnen eller raden i arrayen og henter en verdi fra samme posisjon i den siste kolonnen eller raden i arrayen.

    Array Lookup har 2 argumenter, som begge er obligatoriske:

    LOOKUP( lookup_value, array)

    Hvor:

    • Lookup_value - en verdi å søke etter i en matrise.
    • Array - en celleområde der du vil søke etter oppslagsverdien. Verdiene i den første kolonnen eller raden i matrisen (avhengig av om du gjør V-oppslag eller H-oppslag) må sorteres i stigende rekkefølge. Store og små bokstaver anses som likeverdige.

    For eksempel, med selgernavnene plassert i den første kolonnen i matrisen (kolonne A) og bestillingsdatoer i den siste kolonnen av matrisen (kolonne C) , kan du bruke følgende formel for å søke etter navnet og trekke den samsvarende datoen:

    =LOOKUP(B2,D2:F5)

    Merk. Matriseformen tilExcel LOOKUP-funksjonen må ikke forveksles med Excel-matriseformler. Selv om den opererer på matriser, er LOOKUP fortsatt en vanlig formel, som fullføres på vanlig måte ved å trykke på Enter-tasten.

    4 ting du bør vite om array form for Excel LOOKUP

    1. Hvis array har flere rader enn kolonner eller samme antall kolonner og rader , søker en oppslagsformel i den første kolonnen (horisontalt oppslag).
    2. Hvis matrise har flere kolonner enn rader , søker Excel LOOKUP i den første raden (vertikalt oppslag ).
    3. Hvis en formel ikke finner oppslagsverdien, bruker den største verdi i matrisen som er mindre enn eller lik oppslagsverdi .
    4. Hvis oppslagsverdien er mindre enn den minste verdien i den første kolonnen eller raden i matrisen (avhengig av matrisedimensjonene), returnerer en oppslagsformel #N/A-feilen.

    Viktig merknad! Funksjonaliteten til Excel LOOKUP-matriseformen er begrenset, og vi anbefaler ikke å bruke den. I stedet kan du bruke OPSLAKK- eller OPPSLAG-funksjonen, som er de forbedrede versjonene for å gjøre henholdsvis vertikalt og horisontalt oppslag.

    Hvordan bruke OPSLAKK-funksjonen i Excel - formeleksempler

    Selv om det finnes kraftigere funksjoner for å slå opp og matche i Excel (som er gjenstand for vår neste veiledning), LOOKUP kommer godt med i mange situasjoner, og følgende eksemplerdemonstrere et par ikke-trivielle bruksområder. Vær oppmerksom på at alle formlene nedenfor bruker vektorformen til Excel LOOKUP.

    Slå opp en verdi i den siste ikke-tomme cellen i en kolonne

    Hvis du har en kolonne med dynamisk utfylt data, kan det være lurt å velge den sist tilføyde oppføringen, dvs. få den siste ikke-tomme cellen i en kolonne. For dette, bruk denne generiske formelen:

    LOOKUP(2, 1/( kolonne ""), kolonne )

    I formelen ovenfor er alle argumenter bortsett fra kolonnereferanse er konstanter. Så for å hente den siste verdien i en bestemt kolonne, trenger du bare å oppgi den tilsvarende kolonnereferansen. For eksempel, for å trekke ut verdien av den siste ikke-tomme cellen i kolonne A, bruk denne formelen:

    =LOOKUP(2, 1/(A:A""), A:A)

    For å hente den siste verdien fra andre kolonner, endre kolonnereferansene som vist i skjermbildet nedenfor - første referanse er kolonnen som skal sjekkes for tomme/ikke-tomme celler, og den andre referansen er kolonnen som returnerer verdien fra:

    Hvordan denne formelen fungerer

    I oppslagsverdi -argumentet oppgir du 2 eller et annet tall som er større enn 1 (på et øyeblikk vil du forstå hvorfor).

    I lookup_vector argument, setter du dette uttrykket: 1/(A:A"")

    • Først utfører du den logiske operasjonen A:A"" som sammenligner hver celle i kolonne A med en tom streng og returnerer TRUE for tomme celler og FALSE for ikke-tomme celler. Ieksempelet ovenfor returnerer formelen i F2 denne matrisen: {TRUE;TRUE;TRUE;TRUE;FALSE...}
    • Deretter deler du tallet 1 med hvert element i matrisen ovenfor. Med TRUE som tilsvarer 1 og FALSE som tilsvarer 0, får du en ny matrise bestående av 1-er og #DIV/0! feil (resultatet av å dele på 0), og denne matrisen brukes som oppslagsvektor . I dette eksemplet er det {1;1;1;1;#DIV/0!...}

    Hvordan kommer det seg at formelen returnerer den siste ikke-tomme verdien i en kolonne , gitt at oppslagsverdi ikke samsvarer med noe element i oppslagsvektor ? Nøkkelen til å forstå logikken er at Excel LOOKUP søker med omtrentlig samsvar, dvs. når den eksakte oppslagsverdien ikke blir funnet, samsvarer den med den nest største verdien i oppslagsvektor som er mindre enn oppslagsverdi . I vårt tilfelle er oppslagsverdi 2 og den største verdien i oppslagsvektor er 1, så OPPSLAG samsvarer med den siste 1 i matrisen, som er den siste ikke-tomme cellen!

    I resultatvektor -argumentet refererer du til kolonnen du vil returnere en verdi fra, og oppslagsformelen vil hente verdien i samme posisjon som oppslagsverdien.

    Tips. Hvis du ønsker å få nummeret til raden som inneholder den siste verdien, bruk ROW-funksjonen for å hente den. For eksempel: =LOOKUP(2,1/(A:A""),ROW(A:A))

    Slå opp en verdi i den siste ikke-blanke cellen i en rad

    Hvis kildedataene dine er lagt ut i rader hellerenn kolonner, kan du få verdien av den siste ikke-tomme cellen ved å bruke denne formelen:

    LOOKUP(2, 1/( rad ""), rad )

    Faktisk er denne formelen ikke annet enn en liten modifikasjon av den forrige formelen, med den eneste forskjellen at du bruker radreferansen i stedet for kolonnereferansen.

    For eksempel for å få verdien til den siste ikke-tom celle i rad 1, bruk denne formelen:

    =LOOKUP(2, 1/(1:1""), 1:1)

    Følgende skjermbilde viser resultatet:

    Få en verdi knyttet til siste oppføring på rad

    Med bare litt kreativitet kan formelen ovenfor enkelt tilpasses for å løse andre lignende oppgaver. Den kan for eksempel brukes til å få en verdi knyttet til den siste forekomsten av en bestemt verdi i en rad. Dette høres kanskje litt uklart ut, men følgende eksempel vil gjøre ting lettere å forstå.

    Forutsatt at du har en oppsummeringstabell der kolonne A inneholder selgernavnene og påfølgende kolonner inneholder data av noe slag for hver måned. I dette eksemplet inneholder en celle "ja" hvis en gitt selger har avsluttet minst én avtale i en gitt måned. Målet vårt er å få en måned knyttet til den siste "ja"-posten på rad.

    Oppgaven kan løses ved å bruke følgende OPPSLAG-formel:

    =LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)

    Formelens logikk er i utgangspunktet den samme som beskrevet i det første eksemplet. Forskjellen er at du bruker "lik med"-operatoren ("=") i stedet for "ikke liktil" ("") og operere på rader i stedet for kolonner.

    Følgende skjermbilde viser et resultat:

    Oppslag som alternativ til nestede IF-er

    I alle oppslagsformlene vi har diskutert så langt, ble oppslagsvektor og resultatvektor -argumentene representert av områdereferanser. Syntaksen til Excel-OPSLAKK-funksjonen tillater imidlertid levere vektorene i form av en vertikal array-konstant, som lar deg replikere funksjonaliteten til nestet IF med en mer kompakt og lettlest formel.

    La oss si at du har en liste over forkortelser i kolonne A og du vil erstatte dem med fulle navn, hvor "C" står for "Fullført", "D" er "Utvikling og "T" er "Testing". Oppgaven kan utføres med følgende nestede HVIS-funksjon:

    =IF(A2="c", "Completed", IF(A2="d", "Development", IF(A2="t", "Testing", "")))

    Eller ved å bruke denne oppslagsformelen:

    =LOOKUP(A2, {"c";"d";"t"}, {"Completed";"Development";"Testing"})

    Som vist i skjermbilde nedenfor, begge formlene gir identiske resultater:

    Merk. For at en Excel-oppslagsformel skal fungere riktig, bør verdiene i oppslagsmatrise sorteres fra A til Å eller fra minste til største.

    Hvis du henter verdier fra en oppslagstabell, kan du bygge inn en Vlookup-funksjon i lookup_value -argumentet for å hente et samsvar.

    Forutsatt at oppslagsverdien er i celle E2, oppslagstabellen er A2:C7, og kolonnen av interesse ("Status") er den tredje kolonnen i oppslagstabellen, følgende

    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.