Funkce HLEDAT a SEARCHB hledají jeden textový řetězec uvnitř druhého textového řetězce a vracejí číslo počáteční pozice prvního textového řetězce vzhledem k prvnímu znaku druhého textového řetězce.
Důležité: Funkce HLEDAT je určena pro jazyky používající jednobajtovou znakovou sadu (SBCS). Funkce SEARCHB je určena pro jazyky používající dvoubajtovou znakovou sadu (DBCS). Nastavení výchozího jazyka v počítači ovlivní vrácenou hodnotu následujícím způsobem:
- Funkce HLEDAT počítá vždy každý znak (jednobajtový i dvoubajtový) jako 1, bez ohledu na to, jaké je nastavení výchozího jazyka.
- Funkce SEARCHB počítá každý dvoubajtový znak jako 2 – pokud jste povolili úpravy jazyka podporujícího sadu DBCS a nastavili ho jako výchozí jazyk. Jinak počítá každý znak jako 1.
K jazykům, které podporují sadu DBCS, patří japonština, zjednodušená čínština, tradiční čínština a korejština. Další informace naleznete v následujících tématech nápovědy:
Syntaxe
HLEDAT(co;kde;start)
SEARCHB(co;kde;start)
Co je text, který chcete vyhledat. Může obsahovat zástupné znaky otazník (?) a hvězdička (*). Otazník zastupuje jeden libovolný znak, hvězdička zastupuje jakoukoli posloupnost libovolných znaků. Chcete-li vyhledat skutečný otazník nebo hvězdičku, vložte před ně vlnovku (~).
Kde je text, v němž chcete hledaný text nalézt.
Start udává, od kolikátého znaku prohledávaného textu (zleva) má hledání začít.
Komentář
- Funkce HLEDAT a SEARCHB se používají pro zjištění polohy znaku nebo textového řetězce v jiném řetězci, kterou potřebujete znát při změnách textu pomocí funkcí ČÁST a MIDB nebo NAHRADIT a NAHRADITB.
- Funkce HLEDAT a SEARCHB nerozlišují malá a velká písmena. Pokud chcete rozlišovat při hledání malá a velká písmena, můžete použít funkce NAJÍT a FINDB.
- Není-li hledaný text nalezen, vrátí funkce HLEDAT chybovou hodnotu #HODNOTA!.
- Neuvedete-li argument Start, bude se prohledávat od prvního znaku.
- Zadáte-li argument Start menší nebo roven nule nebo větší, než je délka prohledávaného textu, vrátí funkce HLEDAT chybovou hodnotu #HODNOTA!.
- Argument Start slouží k přeskočení určitého počtu znaků na začátku textu. Použijme jako příklad funkci HLEDAT a předpokládejme, že pracujete s textovým řetězcem „AEK-65-81, zelená Škoda 136L“. Chcete-li vyhledat v popisu automobilu první výskyt písmena „k“, zadejte jako argument Start hodnotu 10. Státní poznávací značka bude při vyhledávání přeskočena. Funkce HLEDAT začne až u 10. znaku prohledávaného textu, takže hledaný znak „k“ bude nalezen na 20. pozici a výsledkem funkce bude hodnota 20. Výsledkem je vždy počet znaků od začátku celého prohledávaného textu, nikoliv od pozice začátku prohledávání.
Příklad 1:HLEDAT
Příklad snadněji pochopíte, pokud jej zkopírujete do prázdného listu.
Jak?
- Vytvořte prázdný sešit nebo list.
- Vyberte příklad v tématu nápovědy. Nevybírejte řádek ani záhlaví sloupců.

Výběr příkladu z nápovědy
- Stiskněte klávesy CTRL+C.
- Vyberte v listu buňku A1 a stiskněte klávesy CTRL+V.
- Chcete-li přepnout mezi zobrazením výsledků a zobrazením vzorců, které vracejí tyto výsledky, stiskněte klávesy CTRL+` (čárka nad vlevo) nebo v nabídce Nástroje přejděte na příkaz Závislosti a klepněte na příkaz Režim závislostí vzorců.
|
|
| A |
| Data |
| Parogenerátor |
| Hrubá sazba |
| sazba |
| Vzorec |
Popis (výsledek) |
| =HLEDAT("e";A2;7) |
Pozice prvního znaku „e“ v prvním řetězci uvedeném výše počínaje 7. pozicí (8) |
| =HLEDAT(A4;A3) |
Pozice řetězce "sazba" v řetězci "Hrubá sazba" (7) |
| =NAHRADIT(A3;HLEDAT(A4;A3);5;"tržba") |
Nahradí řetězec "sazba" řetězcem "tržba" (Hrubá tržba) |
|
Příklad 2:SEARCHB (v počítači je nastaven výchozí jazyk podporující sadu DBCS)
V následujícím příkladu:
- Funkce SEARCHB vrátí hodnotu 3, protože se každý znak počítá podle počtu svých bajtů – první znak má 2 bajty, a proto druhý znak začíná na bajtu 3.
- Funkce HLEDAT vrátí hodnotu 2, protože řetězec "
" je v řetězci na druhé pozici. Funkce HLEDAT vrátí hodnotu 2 bez ohledu na to, jaký výchozí jazyk je v počítači nastaven.
=SEARCHB("
";"

") je rovno 3
=HLEDAT("
";"

") je rovno 2