HLEDAT Fx - Najít podřetězce v řetězcích - Excel, VBA a G listy

Stáhněte si ukázkový sešit

Stáhněte si ukázkový sešit

Tento tutoriál ukazuje, jak používat Funkce Excel SEARCH v aplikaci Excel vyhledejte polohu textu v buňce.

Přehled funkcí SEARCH

Funkce HLEDAT najde znak nebo textový řetězec a vrátí jeho pozici v buňce. Nerozlišuje velká a malá písmena.

Chcete -li použít funkci listu SEARCH Excel, vyberte buňku a zadejte:

(Všimněte si, jak se zobrazují vstupy vzorců)

Vyhledávací funkce Syntaxe a vstupy:

= HLEDAT (find_text, within_text, start_num)

find_text - Řetězec textu, který chcete najít.

within_text - Původní řetězec textu.

start_num - VOLITELNÉ. Číslo znaku, od kterého se má začít hledat. Poznámka: Tím se změní pouze rozsah vyhledávání, nebude to mít vliv na číslo vrácené při nalezení shody. Příklad: hledání „s“ v řetězci „suns“ vrátí ve výchozím nastavení 1, ale pokud je počáteční_číslo nastaveno na 2, vrátí 4.

Co je funkce HLEDAT?

Funkce VYHLEDÁVÁNÍ v Excelu „hledá“ řetězec textu v jiném řetězci. Pokud je text nalezen, SEARCH vrátí číselnou pozici řetězce.

SEARCH NENÍ rozlišován mezi malými a velkými písmeny. To znamená, že „text“ bude odpovídat „TEXT“. Chcete-li hledat text s rozlišováním malých a velkých písmen, použijte místo toho funkci FIND <>.

Jak používat funkci HLEDAT

Funkce Excel SEARCH funguje následujícím způsobem:

= HLEDAT („e“, „slon“)

Zde Excel vrátí 1, protože „e“ je první znak v „slonu“.

Níže je několik dalších příkladů.

Startovní číslo (start_num)

Volitelně můžete definovat počáteční číslo (start_num). start_num řekne funkci SEARCH, kde má začít hledání. Pokud ponecháte pole prázdné, začne hledání od prvního znaku.

= HLEDAT (B3, C3)

Nyní nastavíme start_num na 2, což znamená, že SEARCH začne hledat od druhého znaku.

= HLEDAT (B3, C3, D3)

V tomto případě SEARCH vrací 3: pozice druhého „e“.

Důležité: start_num nemá žádný vliv na návratovou hodnotu, SEARCH začne vždy počítat s prvním znakem.

Chyby počátečního čísla (start_num)

Pokud používáte startovní číslo, ujistěte se, že je to celé kladné číslo, které je menší než délka řetězce, který chcete prohledat, jinak se zobrazí chyba. Pokud zadáte jako počáteční číslo prázdnou buňku, zobrazí se také chyba:

= HLEDAT (B3, C3, D3)

Neúspěšná vyhledávání Vraťte #HODNOTU! Chyba

Pokud SEARCH nemůže najít hledanou hodnotu, Excel vrátí #HODNOTU! chyba.

Hledání nerozlišuje velká a malá písmena

Následující příklad ukazuje, že funkce SEARCH nerozlišuje velká a malá písmena. Hledali jsme „abc“, ale SEARCH vrátil 1, protože odpovídal „ABC“.

Hledání zástupných znaků

Pomocí funkce SEARCH můžete používat zástupné znaky, které vám umožňují vyhledávat nespecifikované znaky.

Otazník ve vašem hledaném textu znamená „libovolný znak“. Takže „? 000“ v níže uvedeném příkladu znamená „Hledat libovolný znak následovaný třemi nulami“.

Hvězdička znamená „libovolný počet neznámých znaků“. Zde hledáme „1*C“ a SEARCH vrací 2, protože odpovídá dotazu „1-ABC“.

V dalším příkladu hledáme „000?“ - to znamená „000“ následované libovolným znakem. Máme „000“, ale je to na konci řetězce, a proto za ním nejsou žádné znaky, takže se zobrazí chyba

Pokud bychom však místo otazníku použili hvězdičku - tedy „000*“ místo „000?“, Dostaneme shodu. Důvodem je, že hvězdička znamená „libovolný počet znaků“ - včetně žádných znaků.

Jak rozdělit jména a příjmení z buňky pomocí funkce HLEDAT

Pokud máte jména a příjmení ve stejné buňce a chcete jim přidělit každou buňku, můžete k tomu použít HLEDAT - ale budete muset použít i několik dalších funkcí.

Získání křestního jména

Funkce LEFT Excel vrací určitý počet znaků z řetězce počínaje zleva.

Pokud pomocí SEARCH vrátíme pozici mezery mezi křestním jménem a příjmením, odečteme od toho 1, víme, jak je křestní jméno dlouhé. Pak to můžeme jednoduše předat VLEVO.

Vzorec prvního jména je:

= VLEVO (B3, HLEDAT („“, B3) -1)

Získání příjmení

PRAVÁ funkce Excel vrací určitý počet znaků zprava od řetězce.

Abychom získali počet znaků rovný délce příjmení, použijeme funkci VYHLEDÁVÁNÍ k určení polohy mezery, poté odečteme toto číslo od celkové délky řetězce - což můžeme získat pomocí LEN.

Vzorec příjmení je:

= VPRAVO (B3, LEN (B3)-VYHLEDÁVÁNÍ („“, B3))

Pamatujte, že pokud vaše jména obsahují střední jména, bude prostřední jméno rozděleno do buňky „Příjmení“.

Použití HLEDAT k vrácení n -tého znaku v řetězci

Jak je uvedeno výše, SEARCH vrací pozici první shody, kterou najde. Ale kombinací s CHAR a SUBSTITUTE ji můžeme použít k vyhledání pozdějších výskytů znaku, jako je druhá nebo třetí instance.

Zde je vzorec:

= HLEDAT (CHAR (134), SUBSTITUTE (D3, C3, CHAR (134), B3))

Zpočátku to může vypadat trochu komplikovaně, pojďme to tedy rozebrat:

  • Používáme SEARCH a hledaný řetězec je „CHAR (134)“. CHAR vrací znak na základě kódu ASCII. CHAR (134) je symbol dýky - zde můžete použít cokoli, pokud se to ve vašem skutečném řetězci neobjeví.
  • SUBSTITUTE prochází řetězcem a nahrazuje jeden znak nebo podřetězec jiným. Zde nahrazujeme řetězec, který chceme najít (který je v C3) CHAR (134). Důvod, proč to funguje, je ten, že čtvrtým parametrem SUBSTITUTE je číslo instance, které jsme uložili do B3.
  • SUBSTITUTE tedy zamění n -tý znak v řetězci za symbol dýky a poté SEARCH vrátí jeho pozici.

Jak to vypadá:

Hledání střední části řetězce

Představte si, že máte mnoho sériových čísel v následujícím formátu:

AB1XCDC-1BB/BB99

Byli jste požádáni, abyste vytáhli střední část každého z nich. Chcete -li tento úkol automatizovat, nemusíte to dělat ručně, ale můžete kombinovat SEARCH s MID.

Funkce MID Excel vrací část řetězce. Jeho vstupy jsou textový řetězec, počáteční bod a řada znaků.

Protože počátečním bodem, který chceme, je znak za pomlčkou, můžeme pomocí funkce SEARCH získat pozici pomlčky a přidat k ní 1. Pokud by sériové číslo bylo v B3, použili bychom:

= HLEDAT ("-", B3) +1

Abychom odtamtud získali počet znaků, které chceme vytáhnout, můžeme použít vyhledávání k získání polohy lomítka, odečíst pozici spojovníku a poté odečíst 1, abychom zajistili, že nevrátíme samotné lomítko:

= HLEDAT ("/", B3)-VYHLEDÁVAT ("-", B3) -1

Pak jednoduše připojíme tyto dva vzorce do MID:

HLEDAT Vs NAJÍT

SEARCH a FIND jsou podobné funkce. Oba vracejí pozici daného znaku nebo podřetězce v rámci jiného řetězce. Existují však dva klíčové rozdíly:

  • FIND rozlišuje velká a malá písmena, ale SEARCH nikoli
  • FIND nepovoluje zástupné znaky, ale SEARCH ano

Níže můžete vidět několik příkladů těchto rozdílů:

HLEDAT v Tabulkách Google

Funkce SEARCH funguje v Tabulkách Google úplně stejně jako v Excelu:

Další poznámky

Funkce SEARCH je verzí funkce FIND, která nerozlišuje malá a velká písmena. SEARCH také podporuje zástupné znaky. Najít ne.

VYHLEDÁVÁNÍ Příklady ve VBA

Můžete také použít funkci HLEDAT ve VBA. Typ:
application.worksheetfunction.search (find_text, within_text, start_num)
Argumenty funkce (find_text atd.) Můžete buď zadat přímo do funkce, nebo definovat proměnné, které se místo toho použijí.

Zpět na seznam všech funkcí v Excelu

wave wave wave wave wave