Funcțiile Excel FIND și SEARCH cu exemple de formule

  • Imparte Asta
Michael Brown

Tutorialul explică sintaxa funcțiilor Excel FIND și SEARCH și oferă exemple de formule de utilizare avansată și non-trivială.

În ultimul articol, am abordat elementele de bază ale dialogului de căutare și înlocuire din Excel. Cu toate acestea, în multe situații, este posibil să doriți ca Excel să găsească și să extragă date din alte celule în mod automat, pe baza criteriilor dumneavoastră. Așadar, să analizăm mai îndeaproape ce au de oferit funcțiile de căutare din Excel.

    Funcția Excel FIND

    Funcția FIND din Excel este utilizată pentru a returna poziția unui anumit caracter sau a unei subșiruri de caractere într-un șir de text.

    Sintaxa funcției Excel Find este următoarea:

    FIND(find_text, within_text, [start_num])

    Primele două argumente sunt obligatorii, iar ultimul este opțional.

    • Găsiți_text - caracterul sau subșirul pe care doriți să îl găsiți.
    • În_text - șirul de text în care se caută. De obicei, acesta este furnizat ca referință de celulă, dar puteți, de asemenea, să introduceți șirul direct în formulă.
    • Număr_de_început - un argument opțional care specifică de la ce caracter trebuie să înceapă căutarea. Dacă se omite, căutarea începe de la primul caracter al șirului within_text.

    În cazul în care funcția FIND nu găsește caracterul (caracterele) find_text, se trimite un mesaj de eroare #VALUE!

    De exemplu, formula =FIND("d", "find") returnează 4, deoarece "d" este a patra literă din cuvântul " găsiți ". formula =FIND("a", "find") returnează o eroare deoarece nu există niciun "a" în " găsiți ".

    Funcția Excel FIND - lucruri de reținut!

    Pentru a utiliza corect o formulă FIND în Excel, țineți cont de următoarele fapte simple:

    1. Funcția FIND este sensibil la majuscule și minuscule Dacă doriți să căutați o potrivire care nu ține cont de majuscule și minuscule, utilizați funcția SEARCH.
    2. Funcția FIND din Excel nu permite utilizarea caractere wildcard .
    3. În cazul în care argumentul find_text conține mai multe caractere, funcția FIND returnează poziția literei primul caracter De exemplu, formula FIND("ap", "happy") returnează 2, deoarece "a" este a doua literă din cuvântul "happy".
    4. Dacă within_text conține mai multe apariții de find_text, se returnează prima apariție. De exemplu, FIND("l", "hello") returnează 3, care este poziția primului caracter "l" din cuvântul "hello".
    5. În cazul în care find_text este un șir gol "", formula Excel FIND returnează primul caracter din șirul de căutare.
    6. Funcția Excel FIND returnează valoarea Eroare #VALUE! în cazul în care se produce una dintre următoarele situații:
      • Find_text nu există în within_text.
      • Start_num conține mai multe caractere decât within_text.
      • Start_num este 0 (zero) sau un număr negativ.

    Funcția SEARCH din Excel este foarte asemănătoare cu funcția FIND, în sensul că returnează și locația unei subșiruri într-un șir de text. Sintaxa și argumentele sale sunt asemănătoare cu cele ale funcției FIND:

    SEARCH(find_text, within_text, [start_num])

    Spre deosebire de FIND, funcția SEARCH este nu ține cont de majuscule și minuscule și permite utilizarea caracterelor wildcard, după cum se arată în exemplul următor.

    Și iată câteva formule de bază de SEARCH din Excel:

    =SEARCH("market", "supermarket") returnează 6, deoarece subșirul "market" începe la al șaselea caracter al cuvântului "supermarket".

    =SEARCH("e", "Excel") returnează 1 deoarece "e" este primul caracter din cuvântul "Excel", ignorând cazul.

    Ca și FIND, funcția SEARCH din Excel returnează eroarea #VALUE! dacă:

    • Valoarea argumentului find_text nu este găsită.
    • Argumentul start_num este mai mare decât lungimea lui within_text.
    • Start_num este egal sau mai mic decât zero.

    Mai departe în acest tutorial, veți găsi câteva exemple de formule mai semnificative care demonstrează cum se utilizează funcția SEARCH în foile de lucru Excel.

    După cum s-a menționat deja, funcțiile FIND și SEARCH din Excel se aseamănă foarte mult în ceea ce privește sintaxa și utilizările. Cu toate acestea, ele au câteva diferențe.

    1. Căutare cu majuscule și minuscule vs. Căutare fără majuscule

    Cea mai importantă diferență între funcțiile SEARCH și FIND din Excel este că SEARCH nu ține cont de majuscule și minuscule, în timp ce FIND ține cont de majuscule și minuscule.

    De exemplu, SEARCH("e", "Excel") returnează 1, deoarece ignoră majusculele din "E", în timp ce FIND("e", "Excel") returnează 4, deoarece ține cont de majuscule.

    2. Căutare cu caractere wildcard

    Spre deosebire de FIND, funcția Excel SEARCH acceptă caractere wildcard în argumentul find_text:

    • Un semn de întrebare (?) se potrivește cu un singur caracter, iar
    • Un asterisc (*) se potrivește cu orice serie de caractere.

    Pentru a vedea cum funcționează pe date reale, luați în considerare următorul exemplu:

    După cum vedeți în captura de ecran de mai sus, formula SEARCH("function*2013", A2) returnează poziția primului caracter ("f") din șirul de caractere dacă șirul de text la care se face referire în argumentul within_text conține atât "function", cât și "2013", indiferent de câte alte caractere se află între ele.

    Sfat: Pentru a găsi un semn de întrebare (?) sau un asterisc (*), tastați tilde (~) înaintea caracterului corespunzător.

    În practică, funcțiile Excel FIND și SEARCH sunt rareori utilizate singure. În mod obișnuit, le veți utiliza în combinație cu alte funcții, cum ar fi MID, LEFT sau RIGHT, iar exemplele de formule de mai jos demonstrează câteva utilizări din viața reală.

    Exemplul 1. Găsiți un șir de caractere care precede sau urmează un anumit caracter

    Acest exemplu arată cum puteți găsi și extrage toate caracterele dintr-un șir de text aflate la stânga sau la dreapta unui anumit caracter. Pentru a înțelege mai ușor, luați în considerare următorul exemplu.

    Să presupunem că aveți o coloană de nume (coloana A) și doriți să extrageți numele și prenumele în coloane separate.

    Pentru a obține primul nume, puteți utiliza funcția FIND (sau SEARCH) împreună cu funcția LEFT:

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

    sau

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

    După cum probabil știți, funcția Excel LEFT returnează numărul specificat de caractere cele mai din stânga dintr-un șir de caractere. Și utilizați funcția FIND pentru a determina poziția unui spațiu (" ") pentru a permite funcției LEFT să știe câte caractere trebuie să extragă. La aceasta, scădeți 1 din poziția spațiului, deoarece nu doriți ca valoarea returnată să includă spațiul.

    Pentru a extrage numele de familie, utilizați combinația dintre funcțiile RIGHT, FIND / SEARCH și LEN. Funcția LEN este necesară pentru a obține numărul total de caractere din șir, din care se scade poziția spațiului:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2)))

    sau

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

    Următoarea captură de ecran demonstrează rezultatul:

    Pentru scenarii mai complexe, cum ar fi extragerea unui al doilea prenume sau împărțirea numelor cu sufixe, consultați Cum să împărțiți celule în Excel folosind formule.

    Exemplul 2. Găsiți a N-a apariție a unui anumit caracter într-un șir de text

    Să presupunem că aveți câteva șiruri de text în coloana A, de exemplu o listă de SKU-uri, și doriți să găsiți poziția șirului de caractere 2. Următoarea formulă funcționează de minune:

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

    Primele două argumente sunt ușor de interpretat: localizați o liniuță ("-") în celula A2. În cel de-al treilea argument (start_num), încorporați o altă funcție FIND care îi spune lui Excel să înceapă căutarea începând cu caracterul care vine imediat după prima apariție a liniuței (FIND("-",A2)+1).

    Pentru a reveni la poziția A treia apariție , includeți formula de mai sus în argumentul start_num al unei alte funcții FIND și adăugați 2 la valoarea returnată:

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

    O altă modalitate, probabil mai simplă, de a găsi a N-a apariție a unui anumit caracter este utilizarea funcției Excel FIND în combinație cu CHAR și SUBSTITUTE:

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

    Unde "-" este caracterul în cauză și "3" este a N-a apariție pe care doriți să o găsiți.

    În formula de mai sus, funcția SUBSTITUTE înlocuiește a 3-a apariție a liniuței ("-") cu CHAR(1), care este caracterul neimprimabil "Start of Heading" din sistemul ASCII. În locul lui CHAR(1) puteți folosi orice alt caracter neimprimabil de la 1 la 31. Apoi, funcția FIND returnează poziția acelui caracter în șirul de text. Așadar, formula generală este următoarea:

    FIND(CHAR(1),SUBSTITUTE( celulă , caracter ,CHAR(1), A n-a apariție ))

    La prima vedere, se poate părea că formulele de mai sus au o valoare practică redusă, dar următorul exemplu va arăta cât de utile sunt în rezolvarea unor sarcini reale.

    Notă. Rețineți că funcția Excel FIND este sensibilă la majuscule și minuscule. În exemplul nostru, acest lucru nu face nicio diferență, dar dacă lucrați cu litere și doriți o funcție nu ține cont de majuscule și minuscule se utilizează funcția SEARCH în loc de FIND.

    Exemplul 3. Extragerea a N caractere după un anumit caracter

    Pentru a localiza un subșir de o anumită lungime în cadrul oricărui șir de text, utilizați Excel FIND sau Excel SEARCH în combinație cu funcția MID. Exemplul următor demonstrează modul în care puteți utiliza astfel de formule în practică.

    În lista noastră de SKU-uri, să presupunem că doriți să găsiți primele 3 caractere care urmează după prima liniuță și să le extrageți într-o altă coloană.

    Dacă grupul de caractere care precede prima liniuță conține întotdeauna același număr de elemente (de exemplu, 2 caractere), aceasta ar fi o sarcină trivială. Puteți utiliza funcția MID pentru a returna 3 caractere dintr-un șir, începând cu poziția 4 (sărind peste primele 2 caractere și o liniuță):

    =MID(A2, 4, 3)

    Tradusă în engleză, formula spune: "Căutați în celula A2, începeți să extrageți de la caracterul 4 și returnați 3 caractere".

    Cu toate acestea, în foile de lucru din viața reală, subșirul pe care trebuie să-l extrageți ar putea începe oriunde în șirul de text. În exemplul nostru, este posibil să nu știți câte caractere preced prima liniuță. Pentru a face față acestei provocări, utilizați funcția FIND pentru a determina punctul de pornire al subșirului pe care doriți să-l recuperați.

    Formula FIND pentru a reveni la poziția primei liniuțe este următoarea:

    =FIND("-",A2)

    Deoarece doriți să începeți cu caracterul care urmează liniuței, adăugați 1 la valoarea returnată și încorporați funcția de mai sus în cel de-al doilea argument (start_num) al funcției MID:

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

    În acest scenariu, funcția SEARCH din Excel funcționează la fel de bine:

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

    Este grozav, dar ce se întâmplă dacă grupul de caractere care urmează după prima liniuță conține un număr diferit de caractere? Hmm... aceasta ar putea fi o problemă:

    După cum vedeți în captura de ecran de mai sus, formula funcționează perfect pentru rândurile 1 și 2. În rândurile 4 și 5, al doilea grup conține 4 caractere, dar sunt returnate doar primele 3 caractere. În rândurile 6 și 7, există doar 2 caractere în al doilea grup și, prin urmare, formula noastră Excel Search returnează o liniuță după ele.

    Dacă ați vrea să vă întoarceți toate caracterele dintre prima și a doua apariție de un anumit caracter (liniuță în acest exemplu), cum ați proceda? Iată răspunsul:

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

    Pentru o mai bună înțelegere a acestei formule MID, să examinăm unul câte unul argumentele sale:

    • Primul argument (text). Este șirul de text care conține caracterele pe care doriți să le extrageți, celula A2 în acest exemplu.
    • Al doilea argument (start_poziție). Specifică poziția primului caracter pe care doriți să îl extrageți. Folosiți funcția FIND pentru a localiza prima liniuță din șirul de caractere și adăugați 1 la această valoare deoarece doriți să începeți cu caracterul care urmează după liniuță: FIND("-",A2)+1.
    • Al 3-lea argument (num_chars). Specifică numărul de caractere pe care doriți să le returnați. În formula noastră, aceasta este partea cea mai complicată. Folosiți două funcții FIND (sau SEARCH), una determină poziția primei liniuțe: FIND("-",A2). Iar cealaltă returnează poziția celei de-a doua liniuțe: FIND("-", A2, FIND("-",A2)+1). Apoi scădeți prima din cea de-a doua, iar apoi scădeți 1, deoarece nu dorițipentru a include oricare dintre liniuțe. Ca rezultat, veți obține numărul de caractere dintre prima și a doua liniuță, care este exact ceea ce căutăm. Deci, introduceți această valoare în argumentul num_chars al funcției MID.

    În mod similar, puteți întoarce 3 caractere după a doua liniuță:

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

    Sau, extrageți toate caracterele dintre a doua și a treia liniuță:

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

    Exemplul 4. Găsiți text între paranteze

    Să presupunem că aveți un șir de text lung în coloana A și doriți să găsiți și să extrageți numai textul cuprins între (paranteze).

    Pentru a face acest lucru, veți avea nevoie de funcția MID pentru a returna numărul dorit de caractere dintr-un șir de caractere și de funcția Excel FIND sau SEARCH pentru a determina de unde să începeți și câte caractere să extrageți.

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

    Logica acestei formule este similară cu cele discutate în exemplul anterior. Și din nou, partea cea mai complexă este ultimul argument care îi spune formulei câte caractere trebuie să returneze. Această expresie destul de lungă din argumentul num_chars face următoarele:

    • În primul rând, trebuie să găsiți poziția parantezei de închidere: SEARCH(")",A2)
    • După aceea, trebuie să localizați poziția parantezei de deschidere: SEARCH("(",A2)
    • Apoi, calculați diferența dintre pozițiile parantezelor de închidere și de deschidere și scădeți 1 din acest număr, deoarece nu doriți ca niciuna dintre paranteze să apară în rezultat: SEARCH(")",A2)-SEARCH("("(",A2))-1

    Firește, nimic nu vă împiedică să utilizați funcția Excel FIND în loc de SEARCH, deoarece, în acest exemplu, nu există nicio diferență între majuscule și minuscule.

    Sperăm că acest tutorial a aruncat puțină lumină asupra modului de utilizare a funcțiilor SEARCH și FIND în Excel. În tutorialul următor, vom examina îndeaproape funcția REPLACE, așa că vă rugăm să rămâneți cu noi. Vă mulțumim pentru lectură!

    Descărcați caietul de practică

    Exemple de formule FIND și SEARCH

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.