Funkcie Excel FIND a SEARCH s príkladmi vzorcov

  • Zdieľajte To
Michael Brown

Učebnica vysvetľuje syntax funkcií Excel FIND a SEARCH a poskytuje príklady vzorcov na pokročilé netriviálne použitie.

V minulom článku sme sa venovali základom dialógového okna Excelu Nájsť a nahradiť. V mnohých situáciách však môžete chcieť, aby Excel automaticky našiel a vybral údaje z iných buniek na základe vašich kritérií. Pozrime sa teda bližšie na to, čo ponúkajú funkcie vyhľadávania Excelu.

    Funkcia Excel FIND

    Funkcia FIND v programe Excel sa používa na vrátenie pozície konkrétneho znaku alebo podreťazca v textovom reťazci.

    Syntax funkcie Excel Find je nasledujúca:

    FIND(find_text, within_text, [start_num])

    Prvé 2 argumenty sú povinné, posledný je nepovinný.

    • Find_text - znak alebo podreťazec, ktorý chcete nájsť.
    • Within_text - textový reťazec, v ktorom sa má vyhľadávať. Zvyčajne sa zadáva ako odkaz na bunku, ale reťazec môžete zadať aj priamo do vzorca.
    • Start_num - nepovinný argument, ktorý určuje, od ktorého znaku sa má začať vyhľadávanie. Ak sa vynechá, vyhľadávanie sa začne od 1. znaku reťazca within_text.

    Ak funkcia FIND nenájde znak(y) find_text, vráti sa chyba #VALUE!.

    Napríklad vzorec =FIND("d", "find") vráti 4, pretože "d" je štvrté písmeno v slove " nájsť ". Vzorec =FIND("a", "find") vráti chybu, pretože v " nájsť ".

    Funkcia Excel FIND - čo si treba zapamätať!

    Ak chcete správne používať vzorec FIND v programe Excel, majte na pamäti nasledujúce jednoduché skutočnosti:

    1. Funkcia FIND je rozlišovanie veľkých a malých písmen Ak hľadáte zhodu bez rozlišovania veľkých a malých písmen, použite funkciu HLEDANIE.
    2. Funkcia FIND v programe Excel neumožňuje používať zástupné znaky .
    3. Ak argument find_text obsahuje niekoľko znakov, funkcia FIND vráti pozíciu prvý znak Napríklad vzorec FIND("ap", "happy") vráti 2, pretože "a" je 2. písmeno v slove "happy".
    4. Ak within_text obsahuje niekoľko výskytov find_text sa vráti prvý výskyt. Napríklad FIND("l", "hello") vráti 3, čo je pozícia prvého znaku "l" v slove "hello".
    5. Ak je find_text prázdny reťazec "", vzorec Excel FIND vráti prvý znak v hľadanom reťazci.
    6. Funkcia Excel FIND vráti #VALUE! chyba ak nastane niektorá z nasledujúcich situácií:
      • Find_text neexistuje v within_text.
      • Start_num obsahuje viac znakov ako within_text.
      • Start_num je 0 (nula) alebo záporné číslo.

    Funkcia SEARCH v programe Excel je veľmi podobná funkcii FIND, pretože tiež vracia umiestnenie podreťazca v textovom reťazci. Syntax a argumenty sú podobné ako pri funkcii FIND:

    SEARCH(find_text, within_text, [start_num])

    Na rozdiel od funkcie FIND je funkcia SEARCH rozlišovanie veľkých a malých písmen a umožňuje použitie zástupných znakov, ako je to demonštrované v nasledujúcom príklade.

    A tu je niekoľko základných vzorcov programu Excel SEARCH:

    =SEARCH("market", "supermarket") vráti 6, pretože podreťazec "market" začína na 6. znaku slova "supermarket".

    =SEARCH("e", "Excel") vráti 1, pretože "e" je prvý znak v slove "Excel", pričom sa neberie do úvahy veľkosť písmen.

    Podobne ako funkcia FIND, aj funkcia SEARCH aplikácie Excel vráti chybu #VALUE!, ak:

    • Hodnota argumentu find_text nebola nájdená.
    • Argument start_num je väčší ako dĺžka within_text.
    • Start_num je rovné alebo menšie ako nula.

    Ďalej v tomto návode nájdete niekoľko ďalších zmysluplných príkladov vzorcov, ktoré ukazujú, ako používať funkciu HĽADAŤ v pracovných listoch programu Excel.

    Ako už bolo spomenuté, funkcie FIND a SEARCH v programe Excel sú si veľmi podobné, pokiaľ ide o syntax a použitie. Majú však niekoľko rozdielov.

    1. Vyhľadávanie s rozlišovaním veľkých a malých písmen vs. vyhľadávanie bez rozlišovania veľkých písmen

    Najpodstatnejší rozdiel medzi funkciami SEARCH a FIND v programe Excel je ten, že pri funkcii SEARCH sa nerozlišujú veľké a malé písmená, zatiaľ čo pri funkcii FIND sa rozlišujú veľké a malé písmená.

    Napríklad SEARCH("e", "Excel") vráti 1, pretože ignoruje veľkosť písmena "E", zatiaľ čo FIND("e", "Excel") vráti 4, pretože pamätá na veľkosť písmena.

    2. Vyhľadávanie pomocou zástupných znakov

    Na rozdiel od funkcie FIND, funkcia Excel SEARCH akceptuje zástupné znaky v argumente find_text:

    • Otazník (?) zodpovedá jednému znaku a
    • Hviezdička (*) sa zhoduje s ľubovoľnou sériou znakov.

    Ak chcete vidieť, ako to funguje na skutočných údajoch, zvážte nasledujúci príklad:

    Ako vidíte na obrázku vyššie, vzorec SEARCH("function*2013", A2) vráti pozíciu prvého znaku ("f") v podreťazci, ak textový reťazec uvedený v argumente within_text obsahuje "function" aj "2013" bez ohľadu na to, koľko ďalších znakov sa nachádza medzi nimi.

    Tip: Ak chcete nájsť skutočný otáznik (?) alebo hviezdičku (*), zadajte pred príslušný znak tildu (~).

    V praxi sa funkcie FIND a SEARCH v aplikácii Excel používajú samostatne len zriedkavo. Zvyčajne sa používajú v kombinácii s inými funkciami, ako sú MID, LEFT alebo RIGHT, a nasledujúce príklady vzorcov ukazujú niektoré reálne použitia.

    Príklad 1. Nájdite reťazec, ktorý predchádza alebo nasleduje po danom znaku

    Tento príklad ukazuje, ako môžete nájsť a extrahovať všetky znaky v textovom reťazci naľavo alebo napravo od určitého znaku. Pre ľahšie pochopenie si zoberte nasledujúci príklad.

    Predpokladajme, že máte stĺpec s menami (stĺpec A) a chcete vytiahnuť meno a priezvisko do samostatných stĺpcov.

    Ak chcete získať prvé meno, môžete použiť funkciu FIND (alebo SEARCH) v kombinácii s funkciou LEFT:

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

    alebo

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

    Ako asi viete, funkcia LEFT programu Excel vracia zadaný počet znakov v reťazci, ktoré sú najviac vľavo. A vy pomocou funkcie FIND určíte pozíciu medzery (" "), aby funkcia LEFT vedela, koľko znakov má extrahovať. Pritom od pozície medzery odpočítate 1, pretože nechcete, aby vrátená hodnota obsahovala medzeru.

    Ak chcete získať priezvisko, použite kombináciu funkcií RIGHT, FIND / SEARCH a LEN. Funkcia LEN je potrebná na získanie celkového počtu znakov v reťazci, od ktorého odpočítate pozíciu medzery:

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

    alebo

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

    Výsledok je znázornený na nasledujúcom obrázku:

    Zložitejšie scenáre, ako je napríklad extrahovanie druhého mena alebo rozdelenie mien s príponami, nájdete v časti Ako rozdeliť bunky v programe Excel pomocou vzorcov.

    Príklad 2. Nájdite N-ty výskyt daného znaku v textovom reťazci

    Predpokladajme, že v stĺpci A máte nejaké textové reťazce, napríklad zoznam SKU, a chcete nájsť pozíciu 2. Pomlčka v reťazci. Nasledujúci vzorec funguje výborne:

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

    Prvé dva argumenty sa dajú ľahko interpretovať: vyhľadajte pomlčku ("-") v bunke A2. Do tretieho argumentu (start_num) ste vložili ďalšiu funkciu FIND, ktorá programu Excel hovorí, aby začal vyhľadávať od znaku, ktorý sa nachádza hneď za prvým výskytom pomlčky (FIND("-",A2)+1).

    Vrátenie polohy 3. výskyt , vložíte vyššie uvedený vzorec do argumentu start_num inej funkcie FIND a k vrátenej hodnote pripočítate 2:

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

    Iný a pravdepodobne jednoduchší spôsob, ako nájsť N-ty výskyt daného znaku, je použitie funkcie Excel FIND v kombinácii s CHAR a SUBSTITUTE:

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

    Kde "-" je príslušný znak a "3" je N-ty výskyt, ktorý chcete nájsť.

    Vo vyššie uvedenom vzorci funkcia SUBSTITUTE nahradí 3. výskyt pomlčky ("-") znakom CHAR(1), čo je v systéme ASCII netlačiteľný znak "Začiatok nadpisu". Namiesto znaku CHAR(1) môžete použiť akýkoľvek iný netlačiteľný znak od 1 do 31. A potom funkcia FIND vráti pozíciu tohto znaku v textovom reťazci. Všeobecný vzorec je teda nasledovný:

    FIND(CHAR(1),SUBSTITUTE( bunka , znak ,CHAR(1), N-ty výskyt ))

    Na prvý pohľad sa môže zdať, že uvedené vzorce nemajú veľkú praktickú hodnotu, ale nasledujúci príklad ukáže, aké sú užitočné pri riešení reálnych úloh.

    Poznámka: Nezabudnite, že funkcia Excel FIND rozlišuje veľké a malé písmená. V našom príklade to nemá význam, ale ak pracujete s písmenami a chcete rozlišovanie veľkých a malých písmen namiesto funkcie FIND použite funkciu SEARCH.

    Príklad 3. Výpis N znakov po určitom znaku

    Ak chcete nájsť podreťazec danej dĺžky v rámci ľubovoľného textového reťazca, použite funkciu Excel FIND alebo Excel SEARCH v kombinácii s funkciou MID. Nasledujúci príklad ukazuje, ako môžete takéto vzorce použiť v praxi.

    Predpokladajme, že v našom zozname SKU chcete nájsť prvé 3 znaky nasledujúce po prvej pomlčke a vytiahnuť ich do iného stĺpca.

    Ak by skupina znakov pred prvou pomlčkou obsahovala vždy rovnaký počet položiek (napr. 2 znaky), bola by to triviálna úloha. Na vrátenie 3 znakov z reťazca by ste mohli použiť funkciu MID, ktorá začína na pozícii 4 (vynechanie prvých 2 znakov a pomlčky):

    =MID(A2, 4, 3)

    Preložené do slovenčiny vzorec hovorí: "Pozrite sa do bunky A2, začnite extrahovať od znaku 4 a vráťte 3 znaky".

    V reálnych pracovných listoch však môže podreťazec, ktorý potrebujete extrahovať, začínať kdekoľvek v textovom reťazci. V našom príklade nemusíte vedieť, koľko znakov predchádza prvej pomlčke. Ak chcete zvládnuť tento problém, použite funkciu FIND na určenie počiatočného bodu podreťazca, ktorý chcete získať.

    Vzorec FIND na vrátenie polohy 1. pomlčky je nasledujúci:

    =FIND("-",A2)

    Keďže chcete začať znakom, ktorý nasleduje za pomlčkou, pridajte k vrátenej hodnote 1 a vložte vyššie uvedenú funkciu do druhého argumentu (start_num) funkcie MID:

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

    V tomto scenári funguje rovnako dobre funkcia SEARCH aplikácie Excel:

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

    Je to skvelé, ale čo ak skupina znakov nasledujúca po prvej pomlčke obsahuje iný počet znakov? Hmm... to môže byť problém:

    Ako vidíte na vyššie uvedenej snímke obrazovky, vzorec funguje dokonale pre riadky 1 a 2. V riadkoch 4 a 5 obsahuje druhá skupina 4 znaky, ale vrátia sa len prvé 3. V riadkoch 6 a 7 sú v druhej skupine len 2 znaky, a preto náš vzorec Excel Search vráti za nimi pomlčku.

    Ak by ste sa chceli vrátiť všetky znaky medzi 1. a 2. výskytom určitého znaku (v tomto príklade pomlčky), ako by ste postupovali? Tu je odpoveď:

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

    Pre lepšie pochopenie tohto vzorca MID preskúmajme jeho argumenty jeden po druhom:

    • 1. argument (text). Je to textový reťazec obsahujúci znaky, ktoré chcete extrahovať, v tomto príklade bunka A2.
    • 2. argument (start_position). Určuje pozíciu prvého znaku, ktorý chcete extrahovať. Pomocou funkcie FIND nájdete prvú pomlčku v reťazci a k tejto hodnote pripočítate 1, pretože chcete začať so znakom, ktorý nasleduje za pomlčkou: FIND("-",A2)+1.
    • 3. argument (num_chars). Určuje počet znakov, ktoré chcete vrátiť. V našom vzorci je to najzložitejšia časť. Používate dve funkcie FIND (alebo SEARCH), jedna určuje pozíciu prvej pomlčky: FIND("-",A2). A druhá vracia pozíciu druhej pomlčky: FIND("-", A2, FIND("-",A2)+1). Potom od druhej odpočítate prvú a potom odrátate 1, pretože nechceteako výsledok dostanete počet znakov medzi 1. a 2. pomlčkou, čo je presne to, čo hľadáme. Túto hodnotu teda vložíte do argumentu num_chars funkcie MID.

    Podobným spôsobom môžete vrátiť 3 znaky po 2. pomlčke:

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

    Alebo vyberte všetky znaky medzi 2. a 3. pomlčkou:

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

    Príklad 4. Vyhľadanie textu medzi zátvorkami

    Predpokladajme, že v stĺpci A máte nejaký dlhý textový reťazec a chcete nájsť a vyextrahovať iba text uzavretý v (zátvorkách).

    Na tento účel potrebujete funkciu MID, ktorá vráti požadovaný počet znakov z reťazca, a funkciu Excel FIND alebo SEARCH, ktorá určí, kde začať a koľko znakov extrahovať.

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

    Logika tohto vzorca je podobná tým, ktoré sme prebrali v predchádzajúcom príklade. A opäť, najzložitejšou časťou je posledný argument, ktorý hovorí vzorcu, koľko znakov má vrátiť. Tento dosť dlhý výraz v argumente num_chars robí nasledovné:

    • Najprv zistíte polohu uzatváracej zátvorky: SEARCH(")",A2)
    • Potom vyhľadajte pozíciu úvodnej zátvorky: SEARCH("(",A2)
    • A potom vypočítate rozdiel medzi pozíciami zatváracej a otváracej zátvorky a od tohto čísla odpočítate 1, pretože vo výsledku nechcete mať ani jednu zo zátvoriek: SEARCH(")",A2)-SEARCH("(",A2))-1

    Prirodzene, nič vám nebráni použiť namiesto funkcie SEARCH funkciu Excel FIND, pretože citlivosť alebo necitlivosť veľkých a malých písmen v tomto príklade neznamená žiadny rozdiel.

    Dúfame, že tento návod nám objasnil, ako používať funkcie SEARCH a FIND v programe Excel. V ďalšom návode sa budeme bližšie zaoberať funkciou REPLACE, takže zostaňte naladení. Ďakujeme za prečítanie!

    Stiahnite si cvičebnicu

    Príklady vzorcov FIND a SEARCH

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.