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.
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Á.
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.
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.
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))
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)
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.