Split / rozdělení v Excelu pomocí vzorce

01.11.2020 09:50

Nechť máme v buňce text, který chceme rozdělit pomocí vzorce do více buněk a jako oddělovač je vybraný znak v textu. Já mám rád praktické příklady. Takže budeme předpokládat tento text v buňce B2 = "123-vstupní text pro rozdělení-800123456-telefonní číslo".

jako oddělovač je zde patrný znak "-". z toho plyne, že text po rozdělení má 4 samostatné části.

Pak můžeme do buňky C2 vložit první, do D2 druhou, E2 třetí a F2 čtvrtou část textu.

Pužijeme tento vzorec:

C2 =pročistit(část(dosadit($B2;"-";opakovat(" ";délka($B2)));(1-1)*délka($B2)+1;délka($B2)))

D2 =pročistit(část(dosadit($B2;"-";opakovat(" ";délka($B2)));(2-1)*délka($B2)+1;délka($B2)))

E2 =pročistit(část(dosadit($B2;"-";opakovat(" ";délka($B2)));(3-1)*délka($B2)+1;délka($B2)))

F2 =pročistit(část(dosadit($B2;"-";opakovat(" ";délka($B2)));(4-1)*délka($B2)+1;délka($B2)))

nyní si rozebereme jak to funguje:

"-" -> oddělovač

(1-1), (2-1),... je právě pořadí samostatné části. dá se nahradit dalším vzorečkem

délka($B2) = 56 znaků

opakovat(" ";délka($B2)) nám vytvoří text z mezer dlouhý 56 znaků

dosadit($B2;"-";opakovat(" ";délka($B2))) nám vytvoří text, kdy znak "-" bude nahrazen 56 mezerami,.... text bude vypadat takhle:

123                                                        vstupní text pro rozdělení                                                        800123456                                                        telefonní číslo

část je funkce, která vykopíruje část textu od pozice (parametr 1) a dané délce (parametr 2)

parametr 1 pro C2 : (1-1)*délka($B2)+1 je 0*56+1 =1

parametr 1 pro D2 : (2-1)*délka($B2)+1 je 1*56+1 = 57

parametr 1 pro D2 : (3-1)*délka($B2)+1 je 2*56+1 = 113

parametr 2 je vždy délka($B2) a to je 56

poslední vzoreček je pročistit, který mám odstraní všechny mezery před a za textem.
 

Zpět