Sadržaj
Vodič objašnjava sintaksu Excel funkcija FIND i SEARCH i daje primjere formula za naprednu netrivijalnu upotrebu.
U prošlom članku pokrili smo osnove Excela Pronađi i zamijeni dijalog. U mnogim situacijama, međutim, možda ćete htjeti da Excel automatski pronađe i izdvoji podatke iz drugih ćelija na osnovu vaših kriterija. Dakle, pogledajmo bliže šta funkcije pretraživanja u Excelu nude.
Excel funkcija FIND
FIND funkcija u Excelu se koristi za vraćanje pozicije određeni znak ili podniz unutar tekstualnog niza.
Sintaksa funkcije Excel Find je sljedeća:
FIND(pronađi_tekst, unutar_teksta, [početni_broj])Prva 2 argumenta su obavezna, posljednji je opcionalan.
- Pronađi_tekst - karakter ili podniz koji želite pronaći.
- Unutar_teksta - tekstualni niz za biti pretraživan unutar. Obično se isporučuje kao referenca na ćeliju, ali također možete upisati string direktno u formulu.
- Početni_broj - neobavezni argument koji određuje od kojeg znaka će pretraga početi. Ako se izostavi, pretraga počinje od 1. znaka unutar_tekstualnog niza.
Ako funkcija FIND ne pronađe znak(e) find_text, #VALUE! vraća se greška.
Na primjer, formula =FIND("d", "find")
vraća 4 jer je "d" 4. slovo u riječi " pronađi ". Formula =FIND("a", "find")
opet, najsloženiji dio je posljednji argument koji govori formuli koliko znakova treba vratiti. Taj prilično dug izraz u argumentu num_chars čini sljedeće:
- Prvo, pronalazite poziciju završne zagrade:
SEARCH(")",A2)
- Nakon toga locirate poziciju početne zagrade:
SEARCH("(",A2)
- I onda izračunate razliku između pozicija završne i početne zagrade i od tog broja oduzmete 1, jer ne želite ni jednu zagradu u rezultatu:
SEARCH(")",A2)-SEARCH("(",A2))-1
Naravno, ništa vas ne sprječava da koristite Excel funkciju FIND umjesto SEARCH, jer osjetljivost na velika i mala slova ne čini razliku u ovom primjeru.
Nadajmo se, ovo Tutorial je bacio malo svjetla na to kako koristiti funkcije SEARCH i FIND u Excelu. U sljedećem tutorijalu pomno ćemo ispitati funkciju REPLACE, pa vas molimo da nas pratite. Hvala vam na čitanju!
Preuzmite radnu svesku za vježbanje
PRONAĐITE i PRETRAŽITE primjere formula
vraća grešku jer nema "a" u " find".
Excel funkcija FIND - stvari koje treba zapamtiti!
Da biste ispravno koristili formulu PRONAĐI u Excelu, imajte na umu sljedeće jednostavne činjenice:
- Funkcija FIND je osjetljiva na velika i mala slova . Ako tražite podudaranje bez obzira na velika i mala slova, koristite funkciju SEARCH.
- Funkcija FIND u Excelu ne dozvoljava korištenje zamjenskih znakova .
- Ako argument find_text sadrži nekoliko znakova, funkcija FIND vraća poziciju prvog znaka . Na primjer, formula FIND("ap","sretan") vraća 2 jer "a" u 2. slovu u riječi "sretan".
- Ako unutar_teksta sadrži nekoliko pojavljivanja find_text, vraća se prvo pojavljivanje. Na primjer, FIND("l", "hello") vraća 3, što je pozicija prvog znaka "l" u riječi "zdravo".
- Ako je find_text prazan niz "", Excel formula FIND vraća prvi znak u nizu za pretraživanje.
- Excel funkcija FIND vraća #VALUE! greška ako se dogodi nešto od sljedećeg:
- Pronađi_tekst ne postoji u unutar_tekstu.
- Početni_broj sadrži više znakova nego unutar_teksta.
- Početni_broj je 0 (nula) ili negativan broj.
Excel funkcija SEARCH
Funkcija SEARCH u Excelu je vrlo slična FIND po tome što također vraća lokaciju podniza u tekststring. Da li su sintaksa i argumenti slični onima u FIND:
SEARCH(pronađi_tekst, unutar_teksta, [početni_broj])Za razliku od FIND, funkcija SEARCH je neosjetljiva na velika i mala slova i dozvoljava korištenje zamjenskih znakova , kao što je prikazano u sljedećem primjeru.
I evo nekoliko osnovnih Excel formula SEARCH:
=SEARCH("market", "supermarket")
vraća 6 jer podniz "tržište" počinje od 6. znaka riječi "supermarket" .
=SEARCH("e", "Excel")
vraća 1 jer je "e" prvi znak u riječi "Excel", zanemarujući velika i mala slova.
Poput FIND, Excelova funkcija SEARCH vraća #VALUE! greška ako:
- Vrijednost argumenta find_text nije pronađena.
- Argument start_num je veći od dužine unutar_text.
- Početni_num je jednak ili manje od nule.
Dalje u ovom vodiču, naći ćete nekoliko smislenijih primjera formule koji pokazuju kako koristiti funkciju SEARCH u Excel radnim listovima.
Excel FIND vs. Excel SEARCH
Kao što je već spomenuto, funkcije FIND i SEARCH u Excelu su vrlo slične u smislu sintakse i upotrebe. Međutim, oni imaju nekoliko razlika.
1. FIND koji razlikuje velika i mala slova u odnosu na SEARCH bez obzira na velika i mala slova
Najbitnija razlika između Excel funkcija SEARCH i FIND je u tome što SEARCH ne razlikuje velika i mala slova, dok je FIND osjetljiv na velika i mala slova.
Na primjer , SEARCH("e", "Excel") vraća 1 jer zanemarujeslučaj "E", dok FIND("e", "Excel") vraća 4 jer mu smetaju velika i mala slova.
2. Pretraživanje pomoću zamjenskih znakova
Za razliku od FIND, Excel funkcija SEARCH prihvaća zamjenske znakove u argumentu find_text:
- Upitnik (?) odgovara jednom znaku, a
- Zvjezdica (*) odgovara bilo kojoj seriji znakova.
Da vidite kako funkcionira na stvarnim podacima, razmotrite sljedeći primjer:
Kao što vidite na slici iznad, formula SEARCH("function*2013", A2) vraća poziciju prvog znaka ("f") u podnizu ako tekstualni niz na koji se poziva argument unutar_text sadrži obje "funkcije" i "2013", bez obzira koliko drugih znakova ima između.
Savjet. Da biste pronašli stvarni znak pitanja (?) ili zvjezdicu (*), otkucajte tildu (~) prije odgovarajućeg znaka.
Primjeri formule FIND i SEARCH u Excelu
U praksi, Excel funkcije FIND i SEARCH rijetko se koriste same. Obično biste ih koristili u kombinaciji s drugim funkcijama kao što su SREDINA, LIJEVO ili DESNO, a sljedeći primjeri formule pokazuju neke stvarne upotrebe.
Primjer 1. Pronađite niz koji prethodi ili slijedi zadati znak
Ovaj primjer pokazuje kako možete pronaći i izdvojiti sve znakove u tekstualnom nizu lijevo ili desno od određenog znaka. Da biste stvari lakše razumjeli, razmotritesljedeći primjer.
Pretpostavimo da imate kolonu imena (kolona A) i želite da povučete Ime i Prezime u zasebne kolone.
Da biste dobili ime, možete koristiti FIND (ili SEARCH) u kombinaciji sa funkcijom LEFT:
=LEFT(A2, FIND(" ", A2)-1)
ili
=LEFT(A2, SEARCH(" ", A2)-1)
Kao što verovatno znate, funkcija Excel LEFT vraća specificirani broj znakova s krajnje lijeve strane u nizu. I koristite funkciju FIND da odredite poziciju razmaka (" ") kako biste omogućili funkciji LEFT da zna koliko znakova treba izdvojiti. Pri tome oduzimate 1 od pozicije razmaka jer ne želite da vraćena vrijednost uključuje razmak.
Da biste izdvojili prezime, koristite kombinaciju funkcija DESNO, PRONAĐI / PRETRAŽIVANJE i LEN. LEN funkcija je potrebna da dobijete ukupan broj znakova u nizu, od kojeg oduzimate poziciju razmaka:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
ili
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Sljedeći snimak ekrana prikazuje rezultat:
Za složenije scenarije, kao što je izdvajanje srednjeg imena ili razdvajanje imena sa sufiksima, pogledajte Kako podijeliti ćelije u Excelu koristeći formule.
Primjer 2. Pronađite N-to pojavljivanje datog znaka u tekstualnom nizu
Pretpostavimo da imate neke tekstualne nizove u koloni A, recimo listu SKU-ova i želite pronaći pozicija 2. crtice u nizu. Sljedeća formula radi kao poslastica:
=FIND("-", A2, FIND("-",A2)+1)
Prva dvaargumente je lako protumačiti: locirajte crticu ("-") u ćeliji A2. U treći argument (start_num) ugrađujete drugu funkciju FIND koja govori Excelu da započne pretragu počevši od znaka koji dolazi odmah nakon prvog pojavljivanja crtice (FIND("-",A2)+1).
Da biste vratili poziciju 3. pojavljivanja , ugradite gornju formulu u argument start_num druge funkcije FIND i dodate 2 vraćenoj vrijednosti:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Još jedan i vjerovatno jednostavniji način pronalaženja N-tog pojavljivanja datog znaka je korištenje Excel funkcije FIND u kombinaciji sa CHAR i SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Gdje je "-" dotični znak, a "3" je N-to pojavljivanje koje želite pronaći.
U gornjoj formuli, funkcija SUBSTITUTE zamjenjuje 3. pojavljivanje crtice ("-") sa CHAR( 1), što je znak "Početak naslova" koji se ne može ispisati u ASCII sistemu. Umjesto CHAR(1) možete koristiti bilo koji drugi znak koji se ne može ispisati od 1 do 31. A zatim, funkcija FIND vraća poziciju tog znaka u tekstualnom nizu. Dakle, opšta formula je sljedeća:
FIND(CHAR(1),SUBSTITUTE( ćelija , znak ,CHAR(1), N-ta pojava ))Na prvi pogled može izgledati da gornje formule imaju malu praktičnu vrijednost, ali sljedeći primjer će pokazati koliko su korisne u rješavanju stvarnih zadataka.
Napomena. Imajte na umu da Excel FINDfunkcija je osjetljiva na velika i mala slova. U našem primjeru, ovo nema nikakve razlike, ali ako radite sa slovima i želite podudaranje velika i mala slova , koristite funkciju SEARCH umjesto FIND.
Primjer 3. Izdvoj N znakova nakon određenog znaka
Da biste locirali podniz određene dužine unutar bilo kojeg tekstualnog niza, koristite Excel FIND ili Excel SEARCH u kombinaciji sa funkcijom MID. Sljedeći primjer pokazuje kako možete koristiti takve formule u praksi.
Na našoj listi SKU-ova, pod pretpostavkom da želite pronaći prva 3 znaka iza prve crtice i povući ih u drugu kolonu.
Ako grupa znakova koja prethodi prvoj crtici uvijek sadrži isti broj stavki (npr. 2 znaka) to bi bio trivijalan zadatak. Možete koristiti funkciju MID da vratite 3 znaka iz niza, počevši od pozicije 4 (preskačući prva 2 znaka i crticu):
=MID(A2, 4, 3)
Prevedeno na engleski, formula kaže: "Pogledajte u ćeliju A2, počnite izdvajati iz znaka 4 i vratite 3 znaka".
Međutim, u radnim listovima iz stvarnog života, podniz koji trebate izdvojiti može početi bilo gdje unutar tekstualnog niza. U našem primjeru možda ne znate koliko znakova prethodi prvoj crtici. Da biste se nosili s ovim izazovom, koristite funkciju FIND da odredite početnu točku podniza koji želite dohvatiti.
Formula FIND za vraćanjepozicija 1. crtice je sljedeća:
=FIND("-",A2)
Budući da želite početi sa znakom koji slijedi nakon crtice, dodajte 1 vraćenoj vrijednosti i ugradite gornju funkciju u drugi argument (start_num) funkcije MID:
=MID(A2, FIND("-",A2)+1, 3)
U ovom scenariju, Excel funkcija SEARCH radi jednako dobro:
=MID(A2, SEARCH("-",A2)+1, 3)
Sjajno, ali šta ako grupa znakova nakon prve crtice sadrži različit broj znakova? Hmm... ovo bi mogao biti problem:
Kao što vidite na gornjoj slici, formula radi savršeno za redove 1 i 2. U redovima 4 i 5, druga grupa sadrži 4 znaka, ali se vraćaju samo prva 3 znaka. U redovima 6 i 7 postoje samo 2 znaka u drugoj grupi i stoga naša formula za Excel Search vraća crticu nakon njih.
Ako želite vratiti sve znakove između 1. i 2. pojavljivanja određenog znaka (crtica u ovom primjeru), kako biste postupili? Evo odgovora:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Za bolje razumijevanje ove MID formule, ispitajmo njene argumente jedan po jedan:
- 1. argument (tekst). To je tekstualni niz koji sadrži znakove koje želite izdvojiti, ćelija A2 u ovom primjeru.
- 2. argument (početna_pozicija). Određuje poziciju prvog znaka koji želite izdvojiti. Koristite funkciju FIND da biste locirali prvu crticu u nizu i dodali 1tu vrijednost jer želite da počnete sa znakom koji slijedi nakon crtice: FIND("-",A2)+1.
- 3. argument (broj_znakova). Određuje broj znakova koje želite vratiti. U našoj formuli, ovo je najzahtjevniji dio. Koristite dvije funkcije FIND (ili SEARCH), jedna određuje poziciju prve crtice: FIND("-",A2). A drugi vraća poziciju druge crtice: FIND("-", A2, FIND("-",A2)+1). Zatim oduzimate prvo od drugog, a zatim oduzimate 1 jer ne želite da uključite ni jednu crticu. Kao rezultat, dobićete broj znakova između 1. i 2. crtice, što je upravo ono što tražimo. Dakle, tu vrijednost unosite u argument num_chars funkcije MID.
Na sličan način možete vratiti 3 znaka nakon 2. crtice:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Ili izdvojite sve znakove između 2. i 3. crtice:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Primjer 4. Pronađite tekst između zagrada
Pretpostavimo da imate dugačak tekstualni niz u koloni A i želite da pronađete i izdvojite samo tekst koji je zatvoren u (zagrade).
Da biste to učinili, trebat će vam funkcija MID da vrati željeni broj znakova iz string, i Excel funkciju FIND ili SEARCH da odredite odakle početi i koliko znakova izdvojiti.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
Logika ove formule je slična onima o kojima smo raspravljali u prethodnom primjer. I