Funkciji Excel FIND in SEARCH s primeri formul

  • Deliti To
Michael Brown

V učbeniku je razložena sintaksa funkcij Excel FIND in SEARCH ter navedeni primeri formul za napredne netrivialne uporabe.

V zadnjem članku smo predstavili osnove pogovornega okna Excel Poišči in zamenjaj. V številnih primerih boste morda želeli, da Excel na podlagi vaših meril samodejno poišče in pridobi podatke iz drugih celic. Zato si podrobneje oglejmo, kaj ponujajo funkcije iskanja v Excelu.

    Funkcija Excel FIND

    Funkcija FIND v Excelu se uporablja za vračanje položaja določenega znaka ali podreza v besedilnem nizu.

    Sintaksa funkcije Excel Find je naslednja:

    FIND(find_text, within_text, [start_num])

    Prva dva argumenta sta obvezna, zadnji je neobvezen.

    • Find_text - znak ali podrejeni niz, ki ga želite poiskati.
    • Within_text - besedilni niz, v katerem se bo iskalo. Običajno je podan kot sklic na celico, lahko pa ga vnesete tudi neposredno v formulo.
    • Start_num - neobvezni argument, ki določa, od katerega znaka se začne iskanje. Če ga izpustite, se iskanje začne od 1. znaka niza znotraj_besedila.

    Če funkcija FIND ne najde znakov find_text, se vrne napaka #VALUE!.

    Na primer formula =FIND("d", "find") vrne 4, ker je "d" četrta črka v besedi " poiščite ". Formula =FIND("a", "find") vrne napako, ker v " poiščite ".

    Excelova funkcija FIND - stvari, ki si jih je treba zapomniti!

    Za pravilno uporabo formule FIND v Excelu upoštevajte naslednja preprosta dejstva:

    1. Funkcija FIND je občutljiv na velikost črk . Če iščete ujemanje brez upoštevanja velikih in malih črk, uporabite funkcijo SEARCH.
    2. Funkcija FIND v Excelu ne omogoča uporabe nadomestni znaki .
    3. Če argument find_text vsebuje več znakov, funkcija FIND vrne položaj prvi znak Na primer formula FIND("ap", "happy") vrne 2, ker je "a" druga črka v besedi "happy".
    4. Če within_text vsebuje več pojavov find_text, se vrne prvi pojav. Na primer, FIND("l", "hello") vrne 3, kar je položaj prvega znaka "l" v besedi "hello".
    5. Če je find_text prazen niz "", Excelova formula FIND vrne prvi znak v iskalnem nizu.
    6. Excelova funkcija FIND vrne #VALUE! napaka če se zgodi kar koli od naslednjega:
      • Find_text ne obstaja v within_text.
      • Start_num vsebuje več znakov kot within_text.
      • Start_num je 0 (nič) ali negativno število.

    Funkcija SEARCH v Excelu je zelo podobna funkciji FIND, saj prav tako vrne lokacijo podreza v besedilnem nizu. Njena sintaksa in argumenti so podobni kot pri funkciji FIND:

    SEARCH(find_text, within_text, [start_num])

    Za razliko od funkcije FIND je funkcija SEARCH razločevanje velikih in malih črk in omogoča uporabo nadomestnih znakov, kot je prikazano v naslednjem primeru.

    Tukaj je nekaj osnovnih formul za iskanje v programu Excel:

    =ISKANJE("trg", "supermarket") vrne 6, ker se podrejeni niz "market" začne pri šestem znaku besede "supermarket".

    =ISKANJE("e", "Excel") vrne 1, ker je "e" prvi znak v besedi "Excel", pri čemer se ne upošteva velikost črk.

    Tako kot funkcija FIND tudi Excelova funkcija SEARCH vrne napako #VALUE!, če:

    • Vrednost argumenta find_text ni najdena.
    • Argument start_num je večji od dolžine znotraj_besedila.
    • Start_num je enako ali manjše od nič.

    V nadaljevanju tega priročnika boste našli še nekaj smiselnih primerov formul, ki prikazujejo uporabo funkcije SEARCH v delovnih listih programa Excel.

    Kot smo že omenili, sta si funkciji FIND in SEARCH v Excelu zelo podobni glede sintakse in uporabe. Vendar pa imata nekaj razlik.

    1. Iskanje, občutljivo na velike črke, proti iskanju, ki ni občutljivo na velike črke

    Najpomembnejša razlika med funkcijama SEARCH in FIND v Excelu je, da funkcija SEARCH ne upošteva velikih in malih črk, medtem ko funkcija FIND upošteva velike in male črke.

    Na primer, SEARCH("e", "Excel") vrne 1, ker ne upošteva velikosti črke "E", FIND("e", "Excel") pa vrne 4, ker upošteva velikost črke.

    2. Iskanje z nadomestnimi znaki

    Za razliko od funkcije FIND funkcija Excel SEARCH v argumentu find_text sprejema nadomestne znake:

    • Vprašalni znak (?) se ujema z enim znakom in
    • Zvezdica (*) se ujema s katerim koli nizom znakov.

    Če želite videti, kako deluje na resničnih podatkih, si oglejte naslednji primer:

    Kot vidite na zgornji sliki, formula SEARCH("function*2013", A2) vrne položaj prvega znaka ("f") v podredu, če besedilni niz, na katerega se nanaša argument within_text, vsebuje tako "function" kot "2013", ne glede na to, koliko drugih znakov je vmes.

    Nasvet. Če želite poiskati dejanski vprašalni znak (?) ali zvezdico (*), pred ustreznim znakom vnesite tildo (~).

    V praksi se Excelovi funkciji FIND in SEARCH redko uporabljata sami. Običajno ju uporabljate v kombinaciji z drugimi funkcijami, kot so MID, LEFT ali RIGHT, naslednji primeri formul pa prikazujejo nekaj uporab v praksi.

    Primer 1. Poiščite niz pred ali za danim znakom

    Ta primer prikazuje, kako lahko poiščete in izločite vse znake v besedilnem nizu levo ali desno od določenega znaka. Za lažje razumevanje si oglejte naslednji primer.

    Recimo, da imate stolpec z imeni (stolpec A) in želite ime in priimek združiti v ločena stolpca.

    Če želite pridobiti prvo ime, lahko uporabite funkcijo FIND (ali SEARCH) v povezavi s funkcijo LEFT:

    =LEVO(A2, FIND(" ", A2)-1)

    ali

    =LEVO(A2, SEARCH(" ", A2)-1)

    Kot verjetno veste, funkcija LEFT v Excelu vrne določeno število levih znakov v nizu. S funkcijo FIND določite položaj presledka (" "), da funkcija LEFT ve, koliko znakov naj izloči. Pri tem od položaja presledka odštejete 1, ker ne želite, da vrnjena vrednost vključuje presledek.

    Če želite izpisati priimek, uporabite kombinacijo funkcij RIGHT, FIND / SEARCH in LEN. Funkcija LEN je potrebna, da dobite skupno število znakov v nizu, od katerega odštejete položaj presledka:

    =DESNO(A2,LEN(A2)-NAJDI(" ",A2))

    ali

    = DESNO (A2,LEN(A2)-SEARCH(" ",A2))

    Rezultat je prikazan na naslednji sliki zaslona:

    Za bolj zapletene scenarije, kot je izločanje srednjega imena ali deljenje imen s končnicami, glejte Kako razdeliti celice v Excelu z uporabo formul.

    Primer 2. Poiščite N-to pojavitev danega znaka v besedilnem nizu

    Recimo, da imate v stolpcu A nekaj besedilnih nizov, na primer seznam prodajnih enot, in želite poiskati položaj 2. pomišljaj v nizu. Naslednja formula deluje odlično:

    =NAJDI("-", A2, NAJDI("-",A2)+1)

    Prva dva argumenta je enostavno razložiti: poiščite pomišljaj ("-") v celici A2. V tretji argument (start_num) vgradite drugo funkcijo FIND, ki Excelu pove, da začne iskati od znaka, ki sledi takoj za prvim pojavom pomišljaja (FIND("-",A2)+1).

    Vračanje položaja 3. pojav , zgornjo formulo vstavite v argument start_num druge funkcije FIND in vrnjeni vrednosti dodajte 2:

    =NAJDI("-",A2, NAJDI("-", A2, NAJDI("-",A2)+1) +2)

    Drug in verjetno preprostejši način iskanja N-tega pojavljanja določenega znaka je uporaba Excelove funkcije FIND v kombinaciji s CHAR in SUBSTITUTE:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    Pri čemer je "-" zadevni znak, "3" pa je N-ti pojav, ki ga želite najti.

    V zgornji formuli funkcija SUBSTITUTE nadomesti 3. pojavitev pomišljaja ("-") s CHAR(1), ki je v sistemu ASCII netiskljiv znak "začetek glave". Namesto CHAR(1) lahko uporabite kateri koli drug netiskljiv znak od 1 do 31. Nato funkcija FIND vrne položaj tega znaka v besedilnem nizu. Splošna formula je torej naslednja:

    POIŠČI(CHAR(1),SUBSTITUTE( celica , znak ,CHAR(1), N-ti pojav ))

    Na prvi pogled se morda zdi, da zgornje formule nimajo velike praktične vrednosti, vendar bo naslednji primer pokazal, kako uporabne so pri reševanju resničnih nalog.

    Opomba: Ne pozabite, da funkcija Excel FIND razlikuje velike in male črke. V našem primeru to ni pomembno, vendar če delate s črkami in želite razločevanje velikih in malih črk namesto funkcije FIND uporabite funkcijo SEARCH.

    Primer 3. Izvleček N znakov, ki sledijo določenemu znaku

    Če želite poiskati podrejeni niz določene dolžine v katerem koli besedilnem nizu, uporabite Excel FIND ali Excel SEARCH v kombinaciji s funkcijo MID. Naslednji primer prikazuje, kako lahko takšne formule uporabite v praksi.

    Če želite na našem seznamu SKU poiskati prve tri znake, ki sledijo prvemu pomišljaju, in jih vključiti v drug stolpec.

    Če skupina znakov pred prvim pomišljajem vedno vsebuje enako število elementov (npr. 2 znaka), bi bilo to trivialno opravilo. S funkcijo MID bi lahko vrnili 3 znake iz niza, začenši s položajem 4 (preskočili bi prva 2 znaka in pomišljaj):

    =MID(A2, 4, 3)

    Prevedeno v slovenščino formula pravi: "Poglej v celico A2, začni ekstrakcijo od znaka 4 in vrni 3 znake".

    Vendar pa se lahko v resničnih delovnih listih podrejeni niz, ki ga želite izluščiti, začne kjer koli v besedilnem nizu. V našem primeru morda ne veste, koliko znakov je pred prvim pomišljajem. Da bi se spopadli s tem izzivom, uporabite funkcijo FIND za določitev začetne točke podrejenega niza, ki ga želite pridobiti.

    Formula FIND za vrnitev položaja prve črtice je naslednja:

    =FIND("-",A2)

    Ker želite začeti z znakom, ki sledi pomišljaju, vrnjeni vrednosti dodajte 1 in zgornjo funkcijo vstavite v drugi argument (start_num) funkcije MID:

    =MID(A2, FIND("-",A2)+1, 3)

    V tem primeru se enako dobro obnese tudi Excelova funkcija SEARCH:

    =MID(A2, SEARCH("-",A2)+1, 3)

    To je odlično, toda kaj če skupina znakov, ki sledi prvemu pomišljaju, vsebuje različno število znakov? Hmm... to bi lahko bila težava:

    Kot vidite na zgornji sliki zaslona, formula odlično deluje za vrstici 1 in 2. V vrsticah 4 in 5 vsebuje druga skupina 4 znake, vendar so vrnjeni le prvi 3 znaki. V vrsticah 6 in 7 sta v drugi skupini le 2 znaka, zato naša formula Excel Search vrne pomišljaj, ki jima sledi.

    Če bi se želeli vrniti vse znake med 1. in 2. pojavitvijo določenega znaka (v tem primeru pomišljaja), kako bi ravnali? Tukaj je odgovor:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    Za boljše razumevanje te formule MID preučimo njene argumente enega za drugim:

    • 1. argument (besedilo). To je besedilni niz, ki vsebuje znake, ki jih želite izločiti, v tem primeru celica A2.
    • 2. argument (start_position). Določa položaj prvega znaka, ki ga želite izločiti. S funkcijo FIND poiščete prvi pomišljaj v nizu in tej vrednosti dodate 1, ker želite začeti z znakom, ki sledi pomišljaju: FIND("-",A2)+1.
    • 3. argument (num_chars). Določa število znakov, ki jih želite vrniti. V naši formuli je to najzahtevnejši del. Uporabite dve funkciji FIND (ali SEARCH), ena določa položaj prvega pomišljaja: FIND("-",A2), druga pa vrača položaj drugega pomišljaja: FIND("-", A2, FIND("-",A2)+1). Nato od drugega odštejete prvo in nato odštejete 1, ker ne želitekot rezultat boste dobili število znakov med 1. in 2. pomišljajem, kar je točno to, kar iščemo. To vrednost prenesete v argument num_chars funkcije MID.

    Na podoben način lahko vrnete 3 znake za 2. pomišljajem:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    Ali pa izločite vse znake med 2. in 3. pomišljajem:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    Primer 4. Poiščite besedilo med oklepaji

    Recimo, da imate v stolpcu A dolg besedilni niz in želite poiskati in izpisati samo besedilo, ki je zaprto v (oklepajih).

    Za to potrebujete funkcijo MID, ki vrne želeno število znakov iz niza, in Excelovo funkcijo FIND ali SEARCH, da določite, kje začeti in koliko znakov izpisati.

    =MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)

    Logika te formule je podobna tistim, ki smo jih obravnavali v prejšnjem primeru. Najzahtevnejši del je zadnji argument, ki formuli pove, koliko znakov naj vrne. Ta precej dolg izraz v argumentu num_chars naredi naslednje:

    • Najprej ugotovite položaj zaključnega oklepaja: SEARCH(")",A2)
    • Nato določite položaj začetnega oklepaja: SEARCH("(",A2)
    • Nato izračunajte razliko med položajem zaključnega in začetnega oklepaja ter od tega števila odštejte 1, ker v rezultatu ne želite imeti nobenega od oklepajev: ISKANJE(")",A2)-ISKANJE("(",A2))-1

    Seveda vam nič ne preprečuje, da namesto funkcije SEARCH uporabite Excelovo funkcijo FIND, saj občutljivost ali neobčutljivost velikih in malih črk v tem primeru ne pomeni nobene razlike.

    Upamo, da smo v tem učbeniku osvetlili uporabo funkcij SEARCH in FIND v Excelu. V naslednjem učbeniku bomo podrobno preučili funkcijo REPLACE, zato vas prosimo, da ostanete z nami. Hvala za branje!

    Prenesite delovni zvezek za prakso

    Primeri formul FIND in SEARCH

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.