Funkce DÉLKA(), CONCATENATE() a ZLEVA()
Publikováno: 1.1.2019

Počet znaků textového řetězce, spojení řetězců v jeden, kombinace textových funkcí s funkcí KDYŽ() a funkcí HLEDAT()
- DÉLKA()
- CONCATENATE()
- ZLEVA()
Představíme si textové funkce, které umí vrátit počet znaků textového řetězce, část textového řetězce nebo spojují obsah několika buněk do jedné buňky a požadované podoby.
Textové funkce si ukážeme na jednoduchých příkladech v kombinaci s logickou funkcí KDYŽ() a textovou funkcí HLEDAT().
Funkce DÉLKA()
Funkce vrací počet znaků textového řetězce. Má jeden jediný argument a tím je právě vybraný řetězec. Přestože se jedná o textovou funkci, lze jí použít i na číselné hodnoty.
=DÉLKA(text)
Anglický ekvivalent funkce je LEN(text). Funkce Len() je také k dispozici v jazyce VBA. Funkci lze použít například v situaci, kdy se podle počtu znaků mají vykonat rozdílné operace.
Základní použití funkce
Na následujícím obrázku je základní použití funkce. Funkce vrací počet znaků řetězců ve sloupci B. Jako znak počítá i mezeru.
-priklad-1.png)
Kombinace s funkcí KDYŽ()
Funkce DÉLKA() nemá sama o sobě příliš mnoho využití. Používá se většinou v kombinaci s jinou funkcí. Typickým příkladem je testování obsahu buňky pomocí logické funkce KDYŽ(). Obsah buněk ve sloupci B otestujeme pomocí následujícího zápisu
=KDYŽ(DÉLKA(text) > 0;"ok";"prázdná")
Zápis říká: je-li buňka neprázdná (obsahuje nějaký znak), funkce vrátí text OK, jinak vrátí text PRÁZDNÁ.
-priklad-2.png)
Funkce CONCATENATE()
Funkce spojí obsah několika buněk do jedné buňky. Funkce má tolik argumentů, kolik chcete spojit řetězců. Maximálně jich však může být 255.
=CONCATENATE(text1; [text2]; ...;[text255])
Základní použití funkce
Základní použití funkce je stejně jednoduché jako v předchozím případě. Ve sloupci E je pomocí funkce CONCATENATE() pospojován obsah ve sloupcích B, C a D.
-priklad-1.png)
Funkce ZLEVA()
Funkce vrací požadovaný počet znaků od počátku řetězce (tedy zleva). Funkce má dva argumenty, kterými jsou řetězec a počet znaků.
=ZLEVA(text; [znaky])
Anglický ekvivalent funkce je LEFT(text; [num_chars]). Funkce je také k dispozici v jazyce VBA. Příbuzné excelovské funkce jsou funkce ZPRAVA() a ČÁST().
Základní použití funkce
Funkce vrátí požadovaný počet znaků (sloupec C) řetězců uvedených ve sloupci B.
-priklad-1.png)
Kombinace s funkcí HLEDAT()
Typickým příkladem spojení funkce ZLEVA() je s funkcí HLEDAT(). Funkce HLEDAT() vyhledá první hledaný znak v řetězci a vrátí jeho pozici.
V následujícím příkladě vyhledáme pozici mezery, čímž získáme první slovo spojení ze sloupce B.
=ZLEVA(text; HLEDAT(" ";text))
-priklad-2.png)
Počty znaků vrácených řetězců ve sloupci C jsou včetně mezer (sloupec E). Proto upravíme vzorec o mínus jedničku, čímž se zbavíme nepotřebné mezery.
=ZLEVA(text; HLEDAT(" ";text)-1)
-priklad-3.png)
Užití funkcí v praxi
K dispozici máme data od roku 2004 ve formátu RRMM (R=rok, M=měsíc). Některá data jsou třímístná a některá čtyřmístná. Data mohou mít například charakter data expirace apod., která si potřebujeme seřadit podle roku. Úkolem je získat z dat pouze rok (tj. RR) a transformovat do formátu RRRR (tj. 20XX).
=KDYŽ(DÉLKA(text)=3; CONCATENATE(200;ZLEVA((text;1)); CONCATENATE(20;ZLEVA(text;2)))
Slovně okomentovaný zápis v modrém boxu má následující význam: má-li řetězec 3 znaky, funkce ZLEVA() vrátí pouze 1 znak testovaného řetězce zleva a funkce CONCATENATE() jej spojí s 200, jinak funkce ZLEVA() vrátí 2 znaky a funkce CONCATENATE() je spojí s 20. Výsledek je ve sloupci E.

