Tento článek popisuje syntaxi vzorce a použití funkcí HLEDAT a SEARCHB v Microsoft Excelu.
Popis
Funkce HLEDAT a SEARCHB vyhledají jeden textový řetězec v rámci druhého textového řetězce a vrátí číslo počáteční pozice prvního textového řetězce od prvního znaku druhého textového řetězce. Chcete-li například najít pozici písmene „k“ ve slově „tiskárna“, můžete použít následující funkci:
=HLEDAT ("k","tiskárna")
Tato funkce vrátí hodnotu 4, protože „k“ je čtvrtý znak ve slově „tiskárna“.
Můžete také hledat části slov v rámci celých slov. Například funkce
=HLEDAT("báze","databáze")
vrátí hodnotu 5, protože řetězec „báze“ začíná na pátém znaku slova „databáze“. Pomocí funkcí HLEDAT a SEARCHB můžete zjistit umístění určitého znaku nebo textového řetězce v rámci jiného textového řetězce a potom můžete pomocí funkcí ČÁST a MIDB vrátit daný text nebo pomocí funkcí NAHRADIT a NAHRADITB text změnit. Ukázku těchto funkcí najdete v tomto článku v části Příklad 1.
Důležité informace:
-
Tyto funkce nemusí být v některých jazycích dostupné.
-
Pokud je jako výchozí jazyk nastaven jazyk podporující znakovou sadu DBCS, počítá funkce SEARCHB na každý znak 2 bajty. V opačném případě se funkce SEARCHB chová stejně jako funkce HLEDAT – počítá na každý znak 1 bajt.
Mezi jazyky podporující znakovou sadu DBCS patří japonština, čínština (zjednodušená), čínština (tradiční) a korejština.
Syntaxe
HLEDAT(co,kde,[start])
SEARCHB(co,kde,[start])
Syntaxe funkcí HLEDAT a SEARCHB má následující argumenty:
-
Co: Povinný argument. Jedná se o text, který chcete najít.
-
Kde: Povinný argument. Jedná se o text, ve kterém chcete najít hodnotu argumentu co.
-
Start: Nepovinný argument. Jedná se o číslo znaku v argumentu kde, od kterého má hledání začít.
Poznámka
-
Funkce HLEDAT a SEARCHB nerozlišují malá a velká písmena. Pokud chcete při hledání rozlišovat malá a velká písmena, můžete použít funkce NAJÍT a FINDB.
-
V argumentu co lze používat zástupné znaky – otazník (?) a hvězdičku (*). Otazník zastupuje libovolný jeden znak a hvězdička zastupuje libovolný řetězec znaků. Chcete-li vyhledat skutečný znak otazníku nebo hvězdičky, zadejte před něj tildu (~).
-
Pokud se hodnota find_text nenajde, #VALUE! vrátí se chybová hodnota.
-
Pokud není argument start uveden, předpokládá se hodnota 1.
-
Pokud start_num není větší než 0 (nula) nebo je větší než délka argumentu within_text , #VALUE! vrátí se chybová hodnota.
-
Pomocí start_num přeskočíte zadaný počet znaků. Použití funkce SEARCH jako příklad předpokládejme, že pracujete s textovým řetězcem "AYF0093. YoungMensApparel". Pokud chcete najít pozici prvního "Y" v popisné části textového řetězce, nastavte start_num rovnou 8, aby se neprohledali část textu s pořadovým číslem (v tomto případě "AYF0093"). Funkce SEARCH spustí operaci hledání na pozici osmého znaku, najde znak zadaný v argumentu find_text na další pozici a vrátí číslo 9. Funkce SEARCH vždy vrátí počet znaků od začátku argumentu within_text a počítá znaky, které přeskočíte, pokud je argument start_num větší než 1.
Příklady
Zkopírujte vzorová data v následující tabulce a vložte je do buňky A1 nového excelového sešitu. Aby vzorce zobrazily výsledky, vyberte je, stiskněte F2 a potom stiskněte Enter. Pokud potřebujete, můžete přizpůsobit šířky sloupců a zobrazit si všechna data.
Data |
||
---|---|---|
Výkazy |
||
hrubá sazba |
||
sazba |
||
Náš "šéf" je zde. |
||
Vzorec |
Popis |
Výsledek |
=HLEDAT("z";A2;4) |
Pozice prvního znaku „z“ v řetězci v buňce A2 s počátkem hledání od čtvrté pozice |
7 |
=HLEDAT(A4;A3) |
Pozice slova sazba (hledaný řetězec je v buňce A4) v řetězci hrubá sazba (hledá se v buňce A3) |
8 |
=NAHRADIT(A3;HLEDAT(A4;A3);5;"tržba") |
Nahradí slovo sazba slovem tržba. Nejprve vyhledá pozici slova sazba v buňce A3 a potom nahradí pět znaků počínaje nalezenou pozicí slovem tržba. |
hrubá tržba |
=ČÁST(A3;HLEDAT(" ";A3)+1;4) |
Vrátí první čtyři znaky, které následují za první mezerou v řetězci hrubá sazba (teda v buňce A3). |
sazb |
=HLEDAT("""";A5) |
Pozice prvního znaku uvozovek (") v buňce A5 |
5 |
=ČÁST(A5;HLEDAT("""";A5)+1;HLEDAT("""";A5;HLEDAT("""";A5)+1)-HLEDAT("""";A5)-1) |
Vrátí jenom text, který je v buňce A5 uzavřený v uvozovkách. |
šéf |