Excel OPSOEK funksie met formule voorbeelde

  • Deel Dit
Michael Brown

Die tutoriaal verduidelik die vektor- en skikkingsvorme van die Excel OPSOEK-funksie en demonstreer tipiese en nie-triviale gebruike van OPSOEK in Excel met formulevoorbeelde.

Een van die mees algemene vrae wat elke Excel-gebruiker af en toe vra, is dit: " Hoe soek ek 'n waarde op een vel en trek 'n ooreenstemmende waarde na 'n ander blad? ". Natuurlik kan daar baie variasies van die basiese scenario wees: jy soek dalk die naaste passing eerder as presiese passing, jy wil dalk vertikaal in 'n kolom of horisontaal in 'n ry soek, een of meer kriteria evalueer, ens. , die essensie is dieselfde - jy moet weet hoe om in Excel op te soek.

Microsoft Excel bied 'n handvol verskillende maniere om opsoek te doen. Om mee te begin, kom ons leer 'n funksie wat ontwerp is om die eenvoudigste gevalle van vertikale en horisontale opsoek te hanteer. Soos jy maklik kan raai, praat ek van die OPSOEK-funksie.

    Excel OPSOEK-funksie - sintaksis en gebruike

    Op die mees basiese vlak, die OPSOEK-funksie in Excel soek 'n waarde in een kolom of ry en gee 'n ooreenstemmende waarde van dieselfde posisie in 'n ander kolom of ry terug.

    Daar is twee vorme van OPSOEK in Excel: Vector en Array . Elke vorm word individueel hieronder verduidelik.

    Excel OPSOEK-funksie - vektorvorm

    In hierdie konteks verwys 'n vektor na 'n een-kolom of een-ry reeks.formule doen die werk:

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

    Soos gedemonstreer in die skermkiekie hieronder, haal die formule die projekstatus van die opsoektabel af en vervang 'n afkorting met die ooreenstemmende woord:

    Wenk. As jy Excel 2016 as deel van 'n Office 365-intekening gebruik, kan jy die SWITCH-funksie vir soortgelyke doeleindes gebruik.

    Ek hoop hierdie voorbeelde het 'n bietjie lig gewerp op hoe die OPSOEK-funksie werk. Om die formules beter te verstaan, is jy welkom om hierdie Excel Lookup-voorbeelde af te laai. In die volgende tutoriaal sal ons 'n paar ander maniere bespreek om opsoek in Excel te doen en verduidelik watter opsoekformule die beste is om in watter situasie te gebruik. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Gevolglik gebruik jy die vektorvorm van OPSOEK om een ​​ry of een kolom data vir 'n gespesifiseerde waarde te soek, en trek 'n waarde van dieselfde posisie in 'n ander ry of kolom af.

    Die sintaksis van die vektoropsoek is soos volg:

    OPSOEK(soekwaarde, soekvektor, [resultaatvektor])

    Waar:

    • Opsoekwaarde (vereis) - 'n waarde om na te soek. Dit kan 'n getal, teks, logiese waarde van WAAR of ONWAAR wees, of 'n verwysing na 'n sel wat die opsoekwaarde bevat.
    • Opsoek_vektor (vereis) - een-ry of een-kolom reeks wat deursoek moet word. Dit moet in stygende volgorde gesorteer word.
    • Resultaatvektor (opsioneel) - een-ry of een-kolom reeks waaruit jy die resultaat wil teruggee - 'n waarde in dieselfde posisie as die opsoekwaarde. Resultaatvektor moet dieselfde grootte wees as opsoekreeks . As dit weggelaat word, word die resultaat teruggestuur vanaf opsoek_vektor .

    Die volgende voorbeelde demonstreer twee eenvoudige opsoekformules in aksie.

    Vertikale opsoekformule - soek in een- kolomreeks

    Kom ons sê, jy het 'n lys van verkopers in kolom D (D2:D5) en die produkte wat hulle verkoop het in kolom E (E2:E5). Jy skep 'n dashboard waar jou gebruikers die verkoper se naam in B2 sal invoer en jy benodig 'n formule wat 'n ooreenstemmende produk in B3 sal trek. Die taak kan maklik bereik word met hierdie formule:

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

    Om dieargumente, kyk asseblief na hierdie skermkiekie:

    Horizontale opsoekformule - soek in een-ry reeks

    As jou brondata 'n horisontale uitleg het, d.w.s. die inskrywings is in rye eerder as kolomme, verskaf dan 'n een-ry reeks in die opsoek_vektor en resultaatvektor argumente, soos hierdie:

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

    In die tweede deel van hierdie tutoriaal sal jy nog 'n paar Excel Lookup-voorbeelde vind wat meer komplekse take oplos. Onthou asseblief intussen die volgende eenvoudige feite wat jou sal help om moontlike slaggate te omseil en algemene foute te voorkom.

    5 dinge wat jy moet weet oor vektorvorm van Excel OPSOEK

    1. Waardes in opsoek_vektor moet in stygende volgorde gesorteer word, dit wil sê van kleinste na grootste of van A tot Z, anders kan jou Excel-opsoekformule 'n fout of verkeerde resultaat gee. As jy opsoek moet doen op ongesorteerde data , gebruik dan óf INDEX MATCH óf OFFSET MATCH.
    2. Opsoek_vektor en resultaatvektor moet 'n een-ry of een-kolom reeks van dieselfde grootte.
    3. Die OPSOEK-funksie in Excel is hoofletter-onsensitief , dit onderskei nie hoofletters en kleinletters teks.
    4. Excel OPSOEK werk gebaseer op geskatte passing . Meer presies, 'n Opsoekformule soek eers vir presiese pasmaat. As dit nie die opsoekwaarde presies kan vind nie, soek dit die volgende kleinste opwaarde , dit wil sê die grootste waarde in opsoek_vektor wat minder as of gelyk is aan opsoekwaarde .

      Byvoorbeeld, as jou opsoekwaarde "5" is, sal die formule dit eerste soek. As "5" nie gevind word nie, sal dit "4" soek. As "4" nie gevind word nie, sal dit "3" soek, ensovoorts.

    5. As opsoekwaarde kleiner is as die kleinste waarde in opsoek_vektor , Excel OPSOEK gee die #N/A-fout terug.

    Excel OPSOEK-funksie - skikkingsvorm

    Die skikkingsvorm van die OPSOEK-funksie soek die gespesifiseerde waarde in die eerste kolom of ry van die skikking en haal 'n waarde vanaf dieselfde posisie in die laaste kolom of ry van die skikking.

    Die skikking Soek het 2 argumente, wat albei vereis word:

    OPSOEK( soekwaarde, skikking)

    Waar:

    • Opsoekwaarde - 'n waarde om na te soek in 'n skikking.
    • Skikking - 'n reeks selle waar jy vir die opsoekwaarde wil soek. Die waardes in die eerste kolom of ry van die skikking (afhangende van of jy V-opsoek of H-opsoek doen) moet in stygende volgorde gesorteer word. Hoofletters en kleinletters word as ekwivalent beskou.

    Byvoorbeeld, met die verkopername in die eerste kolom van die skikking (kolom A) en besteldatums in die laaste kolom van die skikking (kolom C) , kan jy die volgende formule gebruik om die naam te soek en die ooreenstemmende datum te trek:

    =LOOKUP(B2,D2:F5)

    Let wel. Die skikkingsvorm van dieExcel OPSOEK-funksie moet nie met Excel-skikkingsformules verwar word nie. Alhoewel dit op skikkings werk, is OPSOEK steeds 'n gewone formule, wat op die gewone manier voltooi word deur die Enter-sleutel te druk.

    4 dinge wat jy moet weet oor skikkingsvorm van Excel OPSOEK

    1. As skikking meer rye as kolomme of dieselfde aantal kolomme en rye het , 'n Opsoekformule soek in die eerste kolom (horisontale opsoek).
    2. As skikking meer kolomme as rye het, soek Excel OPSOEK in die eerste ry (vertikale opsoek ).
    3. As 'n formule nie die opsoekwaarde kan vind nie, gebruik dit die grootste waarde in die skikking wat minder as of gelyk is aan opsoekwaarde .
    4. As die opsoekwaarde kleiner is as die kleinste waarde in die eerste kolom of ry van die skikking (afhangende van die skikkingsafmetings), gee 'n Opsoekformule die #N/A-fout.

    Belangrike nota! Die funksionaliteit van die Excel OPSOEK-skikkingvorm is beperk en ons beveel nie aan om dit te gebruik nie. In plaas daarvan kan jy die VLOOKUP of HLOOKUP-funksie gebruik, wat die verbeterde weergawes is om onderskeidelik vertikale en horisontale opsoek te doen.

    Hoe om OPSOEK-funksie in Excel te gebruik - formulevoorbeelde

    Alhoewel daar bestaan kragtiger funksies om op te soek en te pas in Excel (wat die onderwerp van ons volgende tutoriaal is), LOOKUP kom handig te pas in baie situasies, en die volgende voorbeeldedemonstreer 'n paar nie-triviale gebruike. Neem asseblief kennis, al die onderstaande formules gebruik die vektorvorm van Excel OPSOEK.

    Soek 'n waarde in die laaste nie-leë sel in 'n kolom op

    As jy 'n kolom van dinamies bevolk het data, wil jy dalk die mees onlangs bygevoegde inskrywing kies, dit wil sê kry die laaste nie-leë sel in 'n kolom. Gebruik hiervoor hierdie generiese formule:

    OPSOEK(2, 1/( kolom ""), kolom )

    In die formule hierbo, alle argumente behalwe vir die kolomverwysing is konstantes. Dus, om die laaste waarde in 'n spesifieke kolom te haal, moet jy net die ooreenstemmende kolomverwysing verskaf. Byvoorbeeld, om die waarde van die laaste nie-leë sel in kolom A te onttrek, gebruik hierdie formule:

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

    Om die laaste waarde uit ander kolomme te kry, verander die kolomverwysings soos getoon in die skermkiekie hieronder - eerste verwysing is die kolom wat nagegaan moet word vir leë/nie-leë selle, en die tweede verwysing is die kolom om die waarde terug te gee van:

    Hoe hierdie formule werk

    In die opsoekwaarde -argument verskaf jy 2 of enige ander getal groter as 1 (in 'n oomblik sal jy verstaan ​​hoekom).

    In die lookup_vector argument, jy plaas hierdie uitdrukking: 1/(A:A"")

    • Eers voer jy die logiese bewerking A:A"" uit wat elke sel in kolom A vergelyk met 'n leë string en gee TRUE vir leë selle en ONWAAR vir nie-leë selle terug. In dievoorbeeld hierbo, die formule in F2 gee hierdie skikking terug: {TRUE;TRUE;TRUE;TRUE;FALSE...}
    • Dan deel jy die getal 1 deur elke element van die skikking hierbo. Met WAAR wat gelykstaande is aan 1 en ONWAAR wat gelykstaande is aan 0, kry jy 'n nuwe skikking wat bestaan ​​uit 1'e en #DIV/0! foute (die resultaat van deling deur 0), en hierdie skikking word gebruik as opsoek_vektor . In hierdie voorbeeld is dit {1;1;1;1;#DIV/0!...}

    Nou, hoe dit kom dat die formule die laaste nie-leë waarde in 'n kolom terugstuur , gegee dat opsoekwaarde nie ooreenstem met enige element van opsoek_vektor ? Die sleutel om die logika te verstaan, is dat Excel OPSOEK soek met benaderde passing, dit wil sê wanneer die presiese opsoekwaarde nie gevind word nie, pas dit by die volgende grootste waarde in opsoek_vektor wat kleiner is as opsoekwaarde . In ons geval is opsoekwaarde 2 en die grootste waarde in opsoek_vektor is 1, so OPSOEK pas by die laaste 1 in die skikking, wat die laaste nie-leë sel is!

    In die resultaatvektor -argument verwys jy na die kolom waaruit jy 'n waarde wil terugstuur, en jou Opsoekformule sal die waarde in dieselfde posisie as die opsoekwaarde haal.

    Wenk. As jy die nommer van die ry met die laaste waarde wil kry, gebruik dan die ROW-funksie om dit te herwin. Byvoorbeeld: =LOOKUP(2,1/(A:A""),ROW(A:A))

    Soek 'n waarde in die laaste nie-leë sel in 'n ry op

    As jou brondata eerder in rye uiteengesit isas kolomme, kan jy die waarde van die laaste nie-leë sel kry deur hierdie formule te gebruik:

    OPSOEK(2, 1/( ry ""), ry )

    Trouens, hierdie formule is niks anders as 'n effense wysiging van die vorige formule nie, met die enigste verskil dat jy die ryverwysing in plaas van die kolomverwysing gebruik.

    Om byvoorbeeld die waarde van die laaste te kry nie-leë sel in ry 1, gebruik hierdie formule:

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

    Die volgende skermkiekie wys die resultaat:

    Kry 'n waarde geassosieer met die laaste inskrywing in 'n ry

    Met net 'n bietjie kreatiwiteit kan die bogenoemde formule maklik aangepas word om ander soortgelyke take op te los. Dit kan byvoorbeeld gebruik word om 'n waarde te kry wat verband hou met die laaste instansie van 'n spesifieke waarde in 'n ry. Dit mag dalk 'n bietjie duister klink, maar die volgende voorbeeld sal dinge makliker maak om te verstaan.

    Gestel jy het 'n opsommingstabel waar kolom A die verkopername bevat en daaropvolgende kolomme data van een of ander aard vir elke maand bevat. In hierdie voorbeeld bevat 'n sel "ja" as 'n gegewe verkoper ten minste een transaksie in 'n gegewe maand gesluit het. Ons doelwit is om 'n maand te kry wat verband hou met die laaste "ja"-inskrywing in 'n ry.

    Die taak kan opgelos word deur die volgende OPSOEK-formule te gebruik:

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

    Die formule se logika is basies dieselfde as beskryf in die eerste voorbeeld. Die verskil is dat jy die "gelyk aan" operateur ("=") gebruik in plaas van "nie gelyk niena" ("") en werk op rye in plaas van kolomme.

    Die volgende skermkiekie demonstreer 'n resultaat:

    Opsoek as alternatief vir geneste IF's

    In al die Opsoek-formules wat ons tot dusver bespreek het, is die opsoek_vektor en resultaat_vektor argumente deur reeksverwysings verteenwoordig. Die sintaksis van die Excel OPSOEK-funksie laat dit egter toe verskaffing van die vektore in die vorm van 'n vertikale skikkingskonstante, wat jou in staat stel om die funksionaliteit van geneste IF te repliseer met 'n meer kompakte en maklik leesbare formule.

    Kom ons sê, jy het 'n lys van afkortings in kolom A en jy wil hulle vervang met volle name, waar "C" staan ​​vir "Voltooid", "D" is "Ontwikkeling, en "T" is "Toets". Die taak kan met die volgende geneste IF-funksie uitgevoer word:

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

    Of, deur hierdie Opsoekformule te gebruik:

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

    Soos getoon in die skermkiekie hieronder, beide formules lewer identiese resultate:

    Let wel. Vir 'n Excel Lookup formule om korrek te werk, moet die waardes in lookup_array van A tot Z of van kleinste na grootste gesorteer word.

    As jy waardes van 'n opsoektabel afhaal, kan jy 'n Vlookup-funksie in die lookup_value -argument insluit om 'n passing te herwin.

    Aangesien die opsoekwaarde in sel E2 is, die opsoektabel is A2:C7, en die kolom van belang ("Status") is die 3de kolom in die opsoektabel, die volgende

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.