Sisukord
Õpik selgitab Exceli LOOKUP-funktsiooni vektor- ja massiivvormi ning demonstreerib valemite näidetega LOOKUPi tüüpilisi ja mittetriviaalseid kasutusvõimalusi Excelis.
Üks sagedasemaid küsimusi, mida iga Exceli kasutaja aeg-ajalt küsib, on järgmine: " Kuidas otsida väärtust ühel lehel ja tõmmata vastav väärtus teisele lehele? ". Loomulikult võib põhistsenaariumist olla palju variatsioone: võite otsida pigem lähimat kokkulangevust kui täpset kokkulangevust, võite otsida vertikaalselt veerus või horisontaalselt reas, hinnata ühte või mitut kriteeriumi jne. Kuid sisuliselt on sama - peate oskama Excelis otsida.
Microsoft Excel pakub käputäis erinevaid võimalusi otsingu tegemiseks. Alustuseks õpime tundma funktsiooni, mis on mõeldud kõige lihtsamate vertikaalse ja horisontaalse otsingu juhtumite käsitlemiseks. Nagu te kergesti võite arvata, räägin ma funktsioonist LOOKUP.
Exceli LOOKUP funktsioon - süntaks ja kasutusalad
Kõige lihtsamal tasemel otsib Exceli funktsioon LOOKUP väärtust ühes veerus või reas ja tagastab sama väärtuse samast kohast teises veerus või reas.
Excelis on kaks LOOKUPi vormi: Vektor ja Array Iga vormi selgitatakse allpool eraldi.
Exceli LOOKUP funktsioon - vektorvorm
Selles kontekstis on vektor viitab ühe veeru või ühe rea vahemikule. Järelikult kasutate LOOKUPi vektorvormi, et otsida ühte andmerea või ühte veergu kindlaksmääratud väärtust ja tõmmata väärtus samast kohast teise rea või veeru.
Vektori Lookup süntaks on järgmine:
LOOKUP(lookup_value, lookup_vektor, [result_vector])Kus:
- Lookup_value (nõutav) - väärtus, mida otsida. See võib olla number, tekst, loogiline väärtus TRUE või FALSE või viide lahtrisse, mis sisaldab otsinguväärtust.
- Lookup_vektor (nõutav) - ühe rea või ühe veeru vahemik, mida otsitakse. See peab olema sorteeritud järgmiselt kasvavas järjekorras .
- Tulemusvektor (valikuline) - ühe rea või ühe veeru vahemik, millest soovite tulemuse tagastada - väärtus samas positsioonis kui otsinguväärtus. Tulemusvektor peab olema sama suurus nagu lookup_range Kui see jäetakse välja, tagastatakse tulemus, mis saadakse aadressilt lookup_vector .
Järgnevad näited näitavad kahte lihtsat Lookup valemit.
Vertikaalne otsinguvormel - otsing ühe veeru vahemikus
Oletame, et teil on müüjate nimekiri veerus D (D2:D5) ja nende müüdud tooted veerus E (E2:E5). Te loote armatuurlaua, kus kasutajad sisestavad müüja nime veerus B2 ja teil on vaja valemit, mis tõmbaks vastava toote veerus B3. Ülesanne on hõlpsasti lahendatav selle valemiga:
=LOOKUP(B2,D2:D5,E2:E5)
Et argumentidest paremini aru saada, vaadake palun seda ekraanipilti:
Horisontaalne otsinguvormel - otsing ühe rea vahemikus
Kui teie lähteandmed on horisontaalse paigutusega, st kirjed asuvad pigem ridades kui veergudes, siis sisestage ühe rea vahemik failis lookup_vector ja result_vector argumendid, näiteks selline:
=LOOKUP(B2,E1:H1,E2:H2)
Selle õpetuse teises osas leiate veel mõned Excel Lookup'i näited, mis lahendavad keerulisemaid ülesandeid. Vahepeal pidage meeles järgmisi lihtsaid fakte, mis aitavad teil võimalikke lõkse vältida ja tavalisi vigu vältida.
5 asja, mida peaksite teadma Exceli LOOKUPi vektorvormi kohta
- Väärtused aastal lookup_vector tuleks sorteerida kasvavas järjekorras , st väikseimast suurimani või A-st Z-ni, vastasel juhul võib teie Exceli otsinguvalem tagastada vea või vale tulemuse. Kui teil on vaja teha otsing järgmistel juhtudel sorteerimata andmed , siis kasutage kas INDEX MATCH või OFFSET MATCH.
- Lookup_vektor ja result_vector peab olema ühe rea või üks veerg sama suurusega vahemik.
- Exceli funktsioon LOOKUP on suur- ja väiketähelepanuta , ei tee vahet suur- ja väiketähtedega tekstil.
- Exceli LOOKUP töötab vastavalt ligikaudne kokkulangevus Täpsemalt, otsinguvormel otsib kõigepealt täpset vastet. Kui ta ei leia otsinguväärtust täpselt, otsib ta üles järgmine väikseim väärtus , st suurim väärtus lookup_vector mis on väiksem või võrdne lookup_value .
Näiteks kui teie otsinguväärtus on "5", otsib valem kõigepealt seda. Kui "5" ei leia, otsib ta "4". Kui "4" ei leia, otsib ta "3" jne.
- Kui lookup_value on väiksem kui väikseim väärtus lookup_vector , Excel LOOKUP tagastab vea #N/A.
Exceli LOOKUP funktsioon - massiivi vorm
Funktsiooni LOOKUP massiivi vorm otsib määratud väärtust massiivi esimeses veerus või reas ja hangib väärtuse samast positsioonist massiivi viimases veerus või reas.
Massiivil Lookup on 2 argumenti, mis mõlemad on vajalikud:
LOOKUP(lookup_value, array)Kus:
- Lookup_value - väärtus, mida otsida massiivist.
- Array - rakkude vahemik, kust soovite otsida otsinguväärtust. Massiivi esimese veeru või rea väärtused (olenevalt sellest, kas teete V-lookup või H-lookup) peavad olema sorteeritud kasvavas järjekorras. Suur- ja väiketähed loetakse võrdväärseteks.
Näiteks, kui müüjate nimed asuvad massiivi esimeses veerus (veerg A) ja tellimuse kuupäevad massiivi viimases veerus (veerg C), saate kasutada järgmist valemit, et otsida nime ja leida vastav kuupäev:
=LOOKUP(B2,D2:F5)
Märkus. Exceli funktsiooni LOOKUP massiivi vormi ei tohi segi ajada Exceli massiivi valemitega. Kuigi see toimib massiividega, on LOOKUP ikkagi tavaline valem, mis täidetakse tavalisel viisil Enter-klahvi vajutades.
4 asja, mida peaksite teadma Exceli LOOKUPi massiivi vormi kohta
- Kui massiivi on rohkem ridu kui veerge või sama arvu veergude ja ridade puhul otsib otsinguvormel esimeses veerus (horisontaalne otsing).
- Kui massiivi on rohkem veerge kui ridu , Excel LOOKUP otsib esimeses reas (vertikaalne otsing).
- Kui valem ei leia otsinguväärtust, kasutab ta valemit suurim väärtus massiivis, mis on väiksem või võrdne kui lookup_value .
- Kui otsinguväärtus on väiksem kui väikseim väärtus massiivi esimeses veerus või reas (sõltuvalt massiivi mõõtmetest), annab Lookup valem tagasi #N/A vea.
Oluline märkus! Exceli LOOKUP-massiivi vormi funktsionaalsus on piiratud ja me ei soovita seda kasutada. Selle asemel võite kasutada funktsiooni VLOOKUP või HLOOKUP, mis on täiustatud versioonid vastavalt vertikaalse ja horisontaalse otsingu tegemiseks.
Kuidas kasutada funktsiooni LOOKUP Excelis - valemite näited
Kuigi Excelis on olemas võimsamad funktsioonid otsimiseks ja sobitamiseks (mis on meie järgmise õpetuse teema), on LOOKUP kasulik paljudes olukordades ja järgmised näited näitavad paari mittetriviaalset kasutust. Pange tähele, et kõik allpool esitatud valemid kasutavad Exceli LOOKUPi vektorvormi.
Vaadake väärtust veeru viimasest mitte tühjast lahtrist.
Kui teil on dünaamiliselt täidetud andmete veerg, võite soovida valida viimati lisatud kirje, st saada veeru viimane mitte-tühi lahter. Selleks kasutage seda üldist valemit:
LOOKUP(2, 1/( veerg ""), veerg )Ülaltoodud valemis on kõik argumendid, välja arvatud veeruviide, konstandid. Seega, et saada konkreetse veeru viimast väärtust, peate lihtsalt esitama vastava veeruviite. Näiteks veeru A viimase mitte-tühja lahtri väärtuse väljavõtmiseks kasutage seda valemit:
=LOOKUP(2, 1/(A:A""), A:A)
Viimase väärtuse saamiseks teistest veergudest, muutke veeruviiteid, nagu on näidatud alloleval ekraanipildil - esimene viide on veerg, mida kontrollitakse tühjade/mittekülmade lahtrite suhtes, ja teine viide on veerg, millest väärtus tagastatakse:
Kuidas see valem töötab
In the lookup_value argumendiks 2 või mõni muu arv, mis on suurem kui 1 (kohe saate aru, miks).
In the lookup_vector argument, paned selle väljendi: 1/(A:A"")
- Kõigepealt teostate loogilise operatsiooni A:A"", mis võrdleb iga lahtrit veerus A tühja stringiga ja tagastab tühjade lahtrite puhul TRUE ja mittetühjade puhul FALSE. Ülaltoodud näites tagastab valem F2 sellise massiivi: {TRUE;TRUE;TRUE;TRUE;TRUE;FALSE...}.
- Seejärel jagatakse arv 1 ülaltoodud massiivi iga elemendiga. Kui TRUE võrdub 1 ja FALSE võrdub 0, siis saad uue massiivi, mis koosneb 1-st ja #DIV/0! vigadest (jagamise tulemus 0-ga), ja seda massiivi kasutatakse kui lookup_vector Selles näites on see {1;1;1;1;1;#DIV/0!...}.
Nüüd, kuidas see tuleb, et valem tagastab viimase mitte-tühja väärtuse veerus, arvestades, et lookup_value ei vasta üheski elemendis lookup_vector ? Loogika mõistmise võti on see, et Excel LOOKUP otsib ligikaudse kokkulangevusega, st kui täpset otsinguväärtust ei leita, siis vastab ta järgmise suurima väärtuse järgi. lookup_vector mis on väiksem kui lookup_value Meie puhul, lookup_value on 2 ja suurim väärtus lookup_vector on 1, nii et LOOKUP vastab massiivi viimasele 1, mis on viimane mitte-tühi lahter!
In the result_vector argumendiga viitate veerule, millest soovite väärtuse tagastada, ja teie otsinguvormel hangib väärtuse samast positsioonist kui otsinguväärtus.
Vihje. Kui soovite saada rea number hoides viimast väärtust, siis kasutage selle kättesaamiseks funktsiooni ROW. Näiteks: =LOOKUP(2,1/(A:A""),ROW(A:A))
Vaadake väärtust rea viimases mitte tühjas lahtris.
Kui teie lähteandmed on paigutatud ridadesse, mitte veergudesse, saate selle valemi abil saada viimase mitte-tühja lahtri väärtuse:
LOOKUP(2, 1/( rida ""), rida )Tegelikult ei ole see valem midagi muud kui eelmise valemi kerge modifikatsioon, ainus erinevus on see, et te kasutate veeruviite asemel reaviidet.
Näiteks 1. rea viimase mitte-tühja lahtri väärtuse saamiseks kasutage seda valemit:
=LOOKUP(2, 1/(1:1""), 1:1)
Järgnev ekraanipilt näitab tulemust:
Saada rea viimase kirjega seotud väärtus
Väikese loovusega saab ülaltoodud valemit hõlpsasti kohandada teiste sarnaste ülesannete lahendamiseks. Näiteks saab seda kasutada selleks, et saada reas oleva konkreetse väärtuse viimase eksemplariga seotud väärtus. See võib kõlada veidi ebaselgelt, kuid järgnev näide teeb asja arusaadavamaks.
Oletame, et teil on kokkuvõttev tabel, kus veerus A on müüjate nimed ja järgnevates veergudes on iga kuu kohta mingisugused andmed. Selles näites sisaldab lahter "jah", kui antud müüja on antud kuul sõlminud vähemalt ühe tehingu. Meie eesmärk on saada kuu, mis on seotud rea viimase "jah" kirjega.
Ülesande saab lahendada järgmise LOOKUP-valemi abil:
=LOOKUP(2, 1/(B2:H2="jah"), $B$1:$H$1)
Valemi loogika on põhimõtteliselt sama, mida on kirjeldatud esimeses näites. Erinevus seisneb selles, et te kasutate "võrdne" operaatorit ("=") "mitte võrdne" ("") asemel ja opereerite ridade, mitte veergudega.
Järgnev ekraanipilt näitab tulemust:
Otsing kui alternatiiv sisseehitatud IF-idele
Kõigis seni käsitletud Lookup-valemites on funktsiooni lookup_vector ja result_vector argumendid esitati vahemikuviidetena. Exceli LOOKUP-funktsiooni süntaks võimaldab aga vektorite esitamist vertikaalse massiivi konstandina, mis võimaldab korratada nested IF-funktsiooni funktsionaalsust kompaktsema ja kergemini loetava valemiga.
Oletame, et teil on veerus A nimekiri lühenditest ja te soovite asendada need täisnimedega, kus "C" tähistab "Lõpetatud", "D" on "Arendus" ja "T" on "Testimine". Ülesannet saab täita järgmise sisseehitatud IF-funktsiooniga:
=IF(A2="c", "Lõpetatud", IF(A2="d", "Arendus", IF(A2="t", "Testimine", "")))
Või kasutades seda Lookup valemit:
=LOOKUP(A2, {"c"; "d"; "t"}, {"Lõpetatud"; "Arendus"; "Testimine"})
Nagu on näidatud alloleval ekraanipildil, annavad mõlemad valemid identsed tulemused:
Märkus. Selleks, et Exceli otsinguvormel töötaks õigesti, peavad väärtused dokumendis lookup_array tuleks sorteerida A-st Z-ni või väikseimast suurimani.
Kui te tõmbate väärtusi otsingutabelist, siis saate Vlookup-funktsiooni sisse põimida funktsiooni lookup_value argument, et leida vaste.
Eeldades, et otsinguväärtus on lahtris E2, otsingutabel on A2:C7 ja huvipakkuv veerg ("Staatus") on otsingutabeli kolmas veerg, teeb järgmise valemi abil tööd:
=LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Lõpetatud"; "Arendus"; "Testimine"})
Nagu on näidatud allpool oleval ekraanipildil, otsib valem projekti staatuse otsingutabelist ja asendab lühendi vastava sõnaga:
Vihje. Kui kasutate Excel 2016-i Office 365 tellimuse raames, saate sarnaseks otstarbeks kasutada funktsiooni SWITCH.
Ma loodan, et need näited on valgustanud, kuidas funktsioon LOOKUP töötab. Valemite paremaks mõistmiseks olete teretulnud allalaadima neid Exceli Lookup näiteid. Järgmises õpetuses arutame veel mõningaid võimalusi, kuidas Excelis lookup'i teha ja selgitame, millist Lookup valemit millises olukorras on kõige parem kasutada. Tänan teid lugemise eest ja loodan näha teid järgmisel nädalal meie blogis!