Zdroj: https://wall.cz/excel-navod/parser-textu-funkce-najit-zleva-delka-a-cast • Vydáno: 20.2.2009 17:00 • Autor: admin

Parser textu - funkce NAJÍT, ZLEVA, DÉLKA a ČÁST

ExcelPotř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.

Analýza textu a volba postupu.

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.

1. Získání příjmení

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)

Parser textu

2. Získání jména

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

Parser textu

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