Zdroj: https://wall.cz/excel-navod/parser-textu-funkce-najit-zleva-delka-a-cast • Vydáno: 20.2.2009 17:00 • Autor: admin
Potřebovali jste text v jedné buňce rozdělit do několika buněk? Klasickým příkladem může být příjmení a jméno nebo celá adresa a nebo datum '2008/02/13' uvedené jako jeden text v jedné buňce. Může se jednat o seznamy ve stovkách nebo až tisících řádků. Vytvoříme malý parser pomocí textových funkcí NAJÍT, ZLEVA, DÉLKA a ČÁST.
Pro názorný příklad použiji příjmení a jméno, které je uvedeno v jedné buňce. Našim společným úkolem bude do jedné buňky oddělit příjmení a do druhé jméno za použíti textových funkcí Excelu. Použiji níže uvedené textové funkce.
Funkce NAJÍT |
Syntaxe: NAJÍT(co, kde, start) |
Funkce NAJÍT vyhledá jeden textový řetězec (co) uvnitř jiného (kde) a vrátí číslo pozice prvního znaku nalezeného podřetězce co vzhledem k prvnímu znaku v řetězci kde. |
Co je text, který chcete vyhledat. |
Kde je řetězec, který bude prohledán. |
Start je pozice znaku v řetězci kde, od kterého se má začít prohledávat. První znak v řetězci kde je na pozici 1. Pokud je argument start vynechán, začne se prohledávat od pozice 1. |
Funkce ZLEVA |
Syntaxe: ZLEVA(text, znaky) |
Funkce ZLEVA vrátí první znak nebo znaky v textovém řetězci na základě zadaného počtu znaků. |
Text je textový řetězec, ze kterého se budou vybírat znaky. |
Znaky určuje počet znaků vrácených funkcí ZLEVA. |
Funkce DÉLKA |
Syntaxe: DÉLKA(text) |
Funkce DÉLKA vrátí počet znaků textového řetězce. |
Text je text, jehož délku chcete zjistit. Mezery jsou považovány za znaky. |
Funkce ČÁST |
Syntaxe: ČÁST(text, start, počet_znaků) |
Funkce ČÁST vrátí zadaný počet znaků z textového řetězce od zadané pozice na základě zadaného počtu znaků. Text je textový řetězec obsahující znaky, které chcete extrahovat. |
Start je pozice prvního znaku; pro první znak v řetězci se hodnota argumentu start rovná hodnotě 1 atd. |
Počet_znaků určuje počet znaků vrácených z textu funkcí ČÁST. |
Všechna příjmení a jména jsou oddělená mezerou. Proto mezera a její pozice bude v tomto případě klíčová. Nejdříve získám z textu příjmení kombinací funkce NAJÍT a ZLEVA a pak jméno kombinací funkcí DÉLKA, NAJÍT a ČÁST.
Protože příjmení začíná jako první zleva, použiji funkci ZLEVA(text, znaky). Neznám délku příjmení pro druhý parametr funkce. Proto jako druhý parametr využiji pozici mezery a odečtu 1. Pozici mezery zjistím funkcí NAJÍT. Kombinace funkcí v buňce B1 bude pak vypadat takto: =ZLEVA(A1;(NAJÍT(" ";A1;1))-1)
Jméno získám funkcí ČÁST, kde jako parametr Start použiji pozici mezery + 1, takže zde zadám funkci NAJÍT. Pro parametr Počet_znaků využiji funkce DÉLKA(A1). Kombinace funkcí v buňce C1 bude pak vypadat takto: =ČÁST(A2;(NAJÍT(" ";A2;1))+1;DÉLKA(A2))
Teď už jen stačí vzorce zkopírovat pod sebe podle délky vašeho seznamu jmen. Ukázkový příklad ke stažení: Nejste přihlášen(a).