Kazalo
V učbeniku je predstavljena funkcija XLOOKUP - nova funkcija za navpično in vodoravno iskanje v Excelu. Levo iskanje, zadnje ujemanje, Vlookup z več merili in še veliko drugih stvari, za katere je bilo včasih treba imeti raketno znanost, so zdaj tako preproste kot ABC.
Katero funkcijo bi uporabili, kadar koli želite v Excelu poiskati? Ali temeljno funkcijo VLOOKUP ali njeno vodoravno sorodnico HLOOKUP? Ali se boste v bolj zapletenem primeru zanesli na kanonično kombinacijo INDEX MATCH ali boste nalogo zaupali Power Query? Dobra novica je, da vam ni treba več izbirati - vse te metode se umikajo zmogljivejši in vsestranski naslednici, funkciji XLOOKUP.
V čem je XLOOKUP boljši? V mnogih pogledih! Lahko išče navpično in vodoravno, levo in zgoraj, išče z več merili in celo vrne celoten stolpec ali vrstico podatkov, ne le eno vrednost. Microsoft je potreboval več kot tri desetletja, vendar mu je končno uspelo oblikovati zanesljivo funkcijo, ki odpravlja številne neprijetne napake in slabosti funkcije VLOOKUP.
Žal je tu še ena pomanjkljivost: funkcija XLOOKUP je na voljo samo v programih Excel za Microsoft 365, Excel 2021 in Excel za splet.
Funkcija Excel XLOOKUP - sintaksa in uporaba
Funkcija XLOOKUP v Excelu išče določeno vrednost v območju ali polju in vrne povezano vrednost iz drugega stolpca. Funkcija lahko išče navpično in vodoravno ter izvede natančno (privzeto), približno (najbližje) ali nadomestno (delno) ujemanje.
Sintaksa funkcije XLOOKUP je naslednja:
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])Prvi trije argumenti so obvezni, zadnji trije pa neobvezni.
- Lookup_value - vrednost za iskanje.
- Lookup_array - območje ali polje, v katerem se išče.
- Return_array - območje ali polje, iz katerega se vrnejo vrednosti.
- If_not_found [neobvezno] - vrednost, ki se vrne, če se ne najde nobeno ujemanje. Če je izpuščena, se vrne napaka #N/A.
- Match_mode [neobvezno] - vrsta ujemanja, ki se izvede:
- 0 ali izpuščeno (privzeto) - natančno ujemanje. Če se ne najde, se vrne napaka #N/A.
- -1 - natančno ujemanje ali naslednja manjša vrednost. Če natančnega ujemanja ni, se vrne naslednja manjša vrednost.
- 1 - natančno ujemanje ali naslednja večja vrednost. Če natančnega ujemanja ne najdete, se vrne naslednja večja vrednost.
- 2 - ujemanje z nadomestnim znakom.
- Način iskanja (Search_mode) [neobvezno] - smer iskanja:
- 1 ali izpuščeno (privzeto) - iskanje od prvega do zadnjega.
- -1 - iskanje v obratnem vrstnem redu, od zadnjega do prvega.
- 2 - binarno iskanje po naraščajoče razvrščenih podatkih.
- -2 - binarno iskanje podatkov, razvrščenih padajoče.
Po navedbah Microsofta, binarno iskanje je vključen za napredne uporabnike. gre za poseben algoritem, ki najde položaj iskane vrednosti v razvrščenem polju tako, da jo primerja s srednjim elementom polja. binarno iskanje je veliko hitrejše od običajnega iskanja, vendar pravilno deluje le na razvrščenih podatkih.
Osnovna formula XLOOKUP
Za boljše razumevanje sestavimo formulo Xlookup v njeni najpreprostejši obliki, da izvedemo natančno iskanje. Za to bomo potrebovali le prve tri argumente.
Recimo, da imate zbirno tabelo s podatki o petih oceanih na Zemlji. Želite dobiti površino določenega oceana v F1 ( lookup_value ). Z imeni oceanov v A2:A6 ( lookup_array ) in območja v C2:C6 ( return_array ), je formula naslednja:
=XLOOKUP(F1, A2:A6, C2:C6)
Prevedeno v preprosto angleščino pravi: poiščite vrednost F1 v A2:A6 in vrnite vrednost iz C2:C6 v isti vrstici. Brez indeksnih števil stolpcev, brez razvrščanja, brez drugih smešnih domislic Vlookup! Preprosto deluje :)
XLOOKUP proti VLOOKUP v Excelu
V primerjavi s tradicionalno funkcijo VLOOKUP ima XLOOKUP veliko prednosti. V čem je boljša od VLOOKUP? Tukaj je seznam 10 najboljših funkcij, ki prekašajo vse druge funkcije iskanja v Excelu:
- Navpično in vodoravno iskanje . Funkcija XLOOKUP je dobila svoje ime zaradi možnosti navpičnega in vodoravnega iskanja.
- Pogled v katero koli smer: desno, levo, spodaj ali navzgor. Medtem ko lahko VLOOKUP išče samo v skrajnem levem stolpcu in HLOOKUP v skrajni zgornji vrstici, XLOOKUP nima takšnih omejitev. Zloglasno levo iskanje v Excelu ni več težava!
- Privzeto natančno ujemanje V večini primerov boste iskali natančno ujemanje in funkcija XLOOKUP ga privzeto vrne (za razliko od funkcije VLOOKUP, ki privzeto uporablja približno ujemanje). Seveda lahko funkcijo XLOOKUP po potrebi pripravite tudi za približno ujemanje.
- Delno ujemanje z nadomestnimi znaki Kadar poznate le del vrednosti iskanja, ne pa vseh, vam pride prav nadomestno ujemanje.
- Iskanje v obratnem vrstnem redu prej ste morali za zadnji pojav obrniti vrstni red izvornih podatkov. search_mode na -1, da bo formula Xlookup iskala od zadaj in vrnila zadnje ujemanje.
- Vračanje več vrednosti . Z manipuliranjem z return_array lahko povlečete celotno vrstico ali stolpec podatkov, povezanih z iskano vrednostjo.
- Iskanje z več merili . Excel XLOOKUP nativno obdeluje polja, kar omogoča iskanje z več merili.
- Če je funkcionalnost napake Tradicionalno uporabljamo funkcijo IFNA za lovljenje napak #N/A. XLOOKUP vključuje to funkcijo v if_not_found argument, ki omogoča izpis lastnega besedila, če ni najdeno veljavno ujemanje.
- Vstavljanje/izbrisovanje stolpcev Ena od najbolj nadležnih težav pri VLOOKUP je ta, da dodajanje ali odstranjevanje stolpcev razbije formulo, ker je stolpec za vračilo določen s številko indeksa. Pri XLOOKUP navedete območje vračila in ne številke, kar pomeni, da lahko vstavite in odstranite toliko stolpcev, kolikor jih potrebujete, ne da bi kar koli razbili.
- Boljša zmogljivost VLOOKUP lahko upočasni vaše delovne liste, ker v izračune vključi celotno tabelo, zaradi česar obdela veliko več celic, kot je dejansko potrebno. XLOOKUP obdeluje samo polja za iskanje in vračanje, od katerih je resnično odvisen.
Kako uporabljati XLOOKUP v Excelu - primeri formul
Naslednji primeri prikazujejo najbolj uporabne funkcije XLOOKUP. Poleg tega boste odkrili nekaj netrivialnih načinov uporabe, ki bodo vaše znanje iskanja v Excelu dvignili na novo raven.
Pogled navpično in vodoravno navzgor
Microsoft Excel je imel včasih dve funkciji za različne vrste iskanja, ki sta imeli vsaka svojo sintakso in pravila uporabe: VLOOKUP za navpično iskanje v stolpcu in HLOOKUP za vodoravno iskanje v vrstici.
Funkcija XLOOKUP lahko z isto sintakso izvaja obe funkciji. Razlika je v tem, kaj zagotovite za polji za iskanje in vračanje.
Pri iskanju v-izgledov navedite stolpce:
=XLOOKUP(E1, A2:A6, B2:B6)
Pri iskanju h namesto stolpcev vnesite vrstice:
=XLOOKUP(I1, B1:F1, B2:F2)
Nativno iskanje po levi strani
V prejšnjih različicah programa Excel je bila formula INDEX MATCH edini zanesljiv način iskanja levo ali zgoraj. Zdaj vam ni več treba kombinirati dveh funkcij, kadar bi zadostovala ena. Samo določite ciljno polje iskanja in XLOOKUP ga bo brez težav obdelal ne glede na njegovo lokacijo.
Kot primer dodajmo Rang Cilj je pridobiti rang vhodnega oceana v F1. VLOOKUP bi tu naletel na težave, ker lahko vrne le vrednost iz stolpca na desni strani stolpca za iskanje. Formula Xlookup se s tem zlahka spopade:
=XLOOKUP(F1, B2:B6, A2:A6)
Na podoben način lahko pri vodoravnem iskanju v vrsticah pogledate zgoraj.
XLOOKUP s točnim in približnim ujemanjem
Obnašanje ujemanja nadzoruje peti argument, ki se imenuje match_mode . Privzeto se izvede natančno ujemanje.
Bodite pozorni, da tudi če izberete približno ujemanje ( match_mode nastavljena na 1 ali -1), bo funkcija še vedno najprej poiskala natančno ujemanje. Razlika je v tem, kaj vrne, če natančna vrednost iskanja ni najdena.
Argument Match_mode:
- 0 ali izpuščeno - natančno ujemanje; če ni najdeno - napaka #N/A.
- -1 - natančno ujemanje; če ga ni mogoče najti - naslednji manjši element.
- 1 - natančno ujemanje; če ni mogoče najti - naslednji večji element.
Natančno ujemanje XLOOKUP
To je možnost, ki jo verjetno uporabljate v 99 % primerov iskanja v Excelu. Ker je natančno ujemanje privzeto vedenje programa XLOOKUP, lahko izpustite match_mode in navedite le prve tri zahtevane argumente.
V nekaterih primerih natančno ujemanje ne bo delovalo. Tipičen scenarij je, če preglednica za iskanje ne vsebuje vseh vrednosti, temveč "mejnike" ali "meje", kot so popusti na podlagi količine, provizije na podlagi prodaje itd.
Naša vzorčna preglednica iskanja prikazuje povezavo med rezultati izpitov in ocenami. Kot lahko vidite na spodnji sliki zaslona, natančno ujemanje deluje le, kadar se rezultat določenega študenta natančno ujema z vrednostjo v preglednici iskanja (kot Christian v vrstici 3). V vseh drugih primerih je vrnjena napaka #N/A.
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)
Če želimo dobiti ocene namesto napak #N/A, moramo poiskati približno ujemanje, kot je prikazano v naslednjem primeru.
Približno ujemanje XLOOKUP
Če želite izvesti približno iskanje, nastavite match_mode na -1 ali 1, odvisno od tega, kako so organizirani vaši podatki.
V našem primeru so v preglednici iskanja navedene spodnje meje razredov. match_mode na -1 za iskanje naslednje manjše vrednosti, če ni najdeno natančno ujemanje:
=XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)
Na primer, Brian ima oceno 98 (F2). Formula išče to vrednost v razdelkih B2:B6, vendar je ne najde. Nato poišče naslednjo manjšo postavko in najde 90, kar ustreza oceni A:
Če bi naša preglednica iskanja vsebovala zgornje meje razredov, bi nastavili match_mode na 1 za iskanje naslednjega večjega elementa, če natančno ujemanje ni uspešno:
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)
Formula išče vrednost 98 in je spet ne najde. Tokrat poskuša najti naslednjo večjo vrednost in dobi vrednost 100, ki ustreza razredu A:
Nasvet: Ko kopirate formulo Xlookup v več celic, zaklenite območja iskanja ali vračanja z absolutnimi referencami celic (na primer $B$2:$B$6), da preprečite njihovo spreminjanje.
XLOOKUP z delnim ujemanjem (nadomestni znaki)
Če želite izvesti iskanje delnega ujemanja, nastavite match_mode na 2, s čimer funkciji XLOOKUP naročite, naj obdela nadomestne znake:
- Zvezdica (*) - predstavlja poljubno zaporedje znakov.
- Vprašalni znak (?) - predstavlja katerikoli posamezni znak.
Če želite videti, kako deluje, si oglejte naslednji primer. V stolpcu A imate nekaj modelov pametnih telefonov, v stolpcu B pa njihovo zmogljivost baterije. Zanima vas baterija določenega pametnega telefona. Težava je v tem, da niste prepričani, da lahko vnesete ime modela točno tako, kot je prikazano v stolpcu A. Da bi to odpravili, vnesite del, ki je zagotovo tam, in zamenjajte preostali del.znakov z nadomestnimi znaki.
Če želite na primer pridobiti informacije o bateriji telefona iPhone X, uporabite to formulo:
=XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)
Lahko pa znani del vrednosti iskanja vnesete v neko celico in sklic na celico povežete z nadomestnimi znaki:
=XLOOKUP("*"&E1& "*", A2:A8, B2:B8, ,2)
XLOOKUP v obratnem vrstnem redu, da dobite zadnje pojavljanje
Če vaša tabela vsebuje več pojavitev vrednosti iskanja, boste morda morali včasih vrniti zadnja tekma . Če želite to narediti, konfigurirajte formulo Xlookup tako, da išče v obratnem vrstnem redu.
Smer iskanja je odvisna od šestega argumenta z imenom search_mode :
- 1 ali izpuščeno (privzeto) - išče od prve do zadnje vrednosti, tj. od zgoraj navzdol z navpičnim iskanjem ali od leve proti desni z vodoravnim iskanjem.
- -1 - išče v obratnem vrstnem redu od zadnje do prve vrednosti.
Kot primer vrnimo zadnjo prodajo, ki jo je opravil določen prodajalec. V ta namen sestavimo prve tri zahtevane argumente (G1 za lookup_value , B2:B9 za lookup_array in D2:D9 za return_array ) in v peti argument vpišite -1:
=XLOOKUP(G1, B2:B9, D2:D9, , ,-1)
Preprosto in enostavno, kajne?
XLOOKUP za vrnitev več stolpcev ali vrstic
Še ena neverjetna lastnost funkcije XLOOKUP je, da lahko vrne več kot eno vrednost, ki se nanaša na isto ujemanje. Vse to se izvede s standardno sintakso in brez kakršnih koli dodatnih manipulacij!
V spodnji preglednici, recimo, da želite pridobiti vse podrobnosti, ki se nanašajo na prodajalca, ki vas zanima (F2). Kar morate storiti, je, da zagotovite območje, ne posameznega stolpca ali vrstice, za return_array argument:
=XLOOKUP(F2, A2:A7, B2:D7)
Formulo vnesete v zgornjo levo celico območja rezultatov, Excel pa samodejno prelije rezultate v sosednje prazne celice. V našem primeru polje rezultatov (B2:D7) vključuje 3 stolpce ( Datum , Artikel in . Znesek ), vse tri vrednosti pa se vrnejo v območje G2:I2.
Če želite rezultate raje razvrstiti navpično v stolpec, vstavite funkcijo XLOOKUP v funkcijo TRANSPOSE in obrnite vrnjeno polje:
=TRANSPOZICIJA(XLOOKUP(G1, A2:A7, B2:D7))
Na podoben način lahko vrnete celoten stolpec podatkov, na primer Znesek Za to uporabite celico F1, ki vsebuje "Znesek" kot lookup_value , območje A1:D1, ki vsebuje glave stolpcev, kot lookup_array in območje A2:D7, ki vsebuje vse podatke kot return_array .
=XLOOKUP(F1, A1:D1, A2:D7)
Opomba: Ker se v sosednje celice vnese več vrednosti, se prepričajte, da imate dovolj praznih celic desno ali navzdol. Če Excel ne najde dovolj praznih celic, se pojavi napaka #SPILL!.
Nasvet. XLOOKUP lahko ne le vrne več vnosov, temveč jih tudi nadomesti z drugimi vrednostmi, ki jih določite. Primer takega množičnega nadomeščanja najdete tukaj: Kako iskati in nadomestiti več vrednosti z XLOOKUP.
XLOOKUP z več merili
Druga velika prednost funkcije XLOOKUP je, da nativno obdeluje polja. Zaradi te zmožnosti lahko več meril ocenite neposredno v lookup_array argument:
XLOOKUP(1, ( kriterij_razpon1 = merila1 ) * ( kriterij_razpon2 = merila2 ) * (...), return_array )Kako deluje ta formula : Rezultat vsakega preskusa meril je polje vrednosti TRUE in FALSE. Z množenjem polj se vrednosti TRUE in FALSE pretvorita v 1 oziroma 0 in nastane končno polje iskanja. Kot veste, množenje z 0 vedno da ničlo, zato so v polju iskanja samo elementi, ki izpolnjujejo vsa merila, predstavljeni z 1. In ker je naša vrednost iskanja "1", Excel vzame prvo "1" v polju iskanja. lookup_array (prvo ujemanje) in vrne vrednost iz return_array v istem položaju.
Če želite videti formulo v praksi, povlecite znesek iz D2:D10 ( return_array ) z naslednjimi pogoji:
- Merilo1 (datum) = G1
- Merilo2 (prodajalec) = G2
- Merilo3 (postavka) = G3
Z datumi v A2:A10 ( kriterij_razpon1 ), imena prodajalcev v B2:B10 ( kriterij_razpon2 ) in postavke v C2:C10 ( kriterij_razpon3 ), je formula takšna:
=XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)
Čeprav Excelova funkcija XLOOKUP obdeluje polja, deluje kot običajna formula in se zaključi z običajnim pritiskom tipke Enter.
Formula XLOOKUP z več merili ni omejena na pogoje "enako". Uporabite lahko tudi druge logične operatorje. Če želite na primer filtrirati naročila, ki so bila oddana na datum v G1 ali prej, v prvo merilo vnesite "<=G1":
=XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)
Dvojni XLOOKUP
Če želite poiskati vrednost na presečišču določene vrstice in stolpca, izvedite t. i. dvojno iskanje ali iskanje matrike . Ja, tudi to lahko storite z Excelovo funkcijo XLOOKUP! Enostavno ugnezdite eno funkcijo v drugo:
XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))Kako deluje ta formula : Formula temelji na zmožnosti funkcije XLOOKUP, da vrne celotno vrstico ali stolpec. Notranja funkcija poišče vrednost iskanja in vrne stolpec ali vrstico povezanih podatkov. To polje gre v zunanjo funkcijo kot return_array .
V tem primeru bomo poiskali prodajo, ki jo je opravil določen prodajalec v določenem četrtletju. V ta namen v H1 (ime prodajalca) in H2 (četrtletje) vnesemo vrednosti iskanja in izvedemo dvosmerni Xlookup z naslednjo formulo:
=XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))
Ali obratno:
=XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))
Pri čemer so A2:A6 imena prodajalcev, B1:E1 so četrtine (glave stolpcev), B2:E6 pa vrednosti podatkov.
Dvosmerno iskanje lahko izvedete tudi s formulo INDEX Match in na nekaj drugih načinov. Za več informacij glejte Dvosmerno iskanje v Excelu.
Če je napaka XLOOKUP
Če vrednosti iskanja ne najdete, Excel XLOOKUP vrne napako #N/A. To je precej znano in razumljivo za izkušene uporabnike, za začetnike pa je lahko precej zmedeno. Če želite standardni zapis napake nadomestiti z uporabniku prijaznim sporočilom, vnesite svoje besedilo v 4. argument z imenom if_not_found .
Če nekdo v polje E1 vnese neveljavno ime oceana, mu bo naslednja formula izrecno povedala, da "ni najdeno nobeno ujemanje":
=XLOOKUP(E1, A2:A6, B2:B6, "Ni najdeno ujemanje")
Opombe:
- Spletna stran if_not_found argument ujame samo napake #N/A, ne vseh napak.
- Napake #N/A lahko obravnavate tudi z IFNA in VLOOKUP, vendar je sintaksa nekoliko bolj zapletena in formula je daljša.
XLOOKUP, občutljiv na velikost črk
Privzeto funkcija XLOOKUP obravnava male in velike črke kot enake znake. Če želite, da funkcija razlikuje velike in male črke, uporabite funkcijo EXACT za lookup_array argument:
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )Kako deluje ta formula : Funkcija EXACT primerja vrednost iskanja z vsako vrednostjo v polju iskanja in vrne TRUE, če sta popolnoma enaki, vključno z velikostjo črk, in FALSE v nasprotnem primeru. To polje logičnih vrednosti gre v polje lookup_array Kot rezultat XLOOKUP išče vrednost TRUE v zgornjem polju in vrne ujemanje iz vrnjenega polja.
Na primer, če želite dobiti ceno od B2:B7 ( return_array ) za element v E1 ( lookup_value) , formula v E2 je:
=XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Ni najden")
Opomba: Če sta v polju iskanja dve ali več popolnoma enakih vrednosti (vključno z velikostjo črk), se vrne prvo najdeno ujemanje.
Excel XLOOKUP ne deluje
Če vaša formula ne deluje pravilno ali se pojavi napaka, je to najverjetneje posledica naslednjih razlogov:
XLOOKUP ni na voljo v mojem Excelu
Funkcija XLOOKUP ni združljiva za nazaj. Na voljo je samo v Excelu za Microsoft 365 in Excelu 2021 ter ni na voljo v prejšnjih različicah.
XLOOKUP vrne napačen rezultat
Če vaša očitno pravilna formula Xlookup vrne napačno vrednost, obstaja verjetnost, da se je območje iskanja ali vračanja "premaknilo", ko je bila formula kopirana navzdol ali navzkriž. Da bi to preprečili, poskrbite, da oba območja vedno zaklenete z absolutnimi referencami celic (na primer $A$2:$A$10).
XLOOKUP vrne napako #N/A
Napaka #N/A pomeni le, da vrednost iskanja ni najdena. Če želite to popraviti, poskusite poiskati približno ujemanje ali obvestite uporabnike, da ujemanje ni bilo najdeno.
XLOOKUP vrne napako #VALUE
Napaka #VALUE! se pojavi, če imata polji za iskanje in vračanje nezdružljive dimenzije. Ni na primer mogoče iskati v vodoravnem polju in vračati vrednosti iz navpičnega polja.
XLOOKUP vrne napako #REF
Pri iskanju med dvema različnima delovnima zvezkoma, od katerih je eden zaprt, se vrže napaka #REF! Če želite napako odpraviti, preprosto odprite obe datoteki.
Kot ste pravkar videli, ima funkcija XLOOKUP veliko odličnih funkcij, zaradi katerih je to funkcija za skoraj vsako iskanje v Excelu. Zahvaljujem se vam za branje in upam, da se naslednji teden vidimo na našem blogu!
Praktični delovni zvezek za prenos
Primeri formul Excel XLOOKUP (.xlsx datoteka)