Rozdělit text v Excelu do více buněk

19.06.2015 07:54

Osobně jsem se setkal s tím, že v Excelu nejde jednoduše oddělit text zapsaný v jedné buňce do dalších dle nějakých parametrů. Jednodušší to je, když ten oddělovač je jen jeden, ale klidně může být zadání i složitější. No konec řečí a teď ke konkrétnímu příkladu.

Nechť máme toto zadánání: "Loc: 50°4'48.511"N, 15°8'57.777"E" uložen třeba v buňkách ve sloupci A. Potřebujeme dostat do jedné buňky stupně, do druhé minuty, pak vteřiny, atd. Jak nato?

Já jsem použil kombinaci funkcí ZLEVA, ČÁST, ZPRAVA, NAJDI, DOSADIT.

Zapojíme funkci DOSADIT,  kterou si budeme před vlasním vykopírováním měnit řetězec pro vyhledávání. Budeme nahrazovat hledaný řetězec znakem “#” pro snadnější vyhledávání. Příklady:

DOSADIT(;”:”;”#”;1) nám převede řetězec "Loc: 50°4'48.511"N, 15°8'57.777"E" na tento "Loc# 50°4'48.511"N, 15°8'57.777"E"

1 určuje první výskyt znaku :

První číslo tak dostaneme touto funkcí:

Zadané číslo máme v buňce A3,…

=ČÁST(A3;NAJÍT("#";DOSADIT(A3;" ";"#";1);1)+1;NAJÍT("#";DOSADIT(A3;"°";"#";1);1)-NAJÍT("#";DOSADIT(A3;" ";"#";1);1)-1) - výsledkem by měla být  hodnota 50.

Druhé číslo takto

=ČÁST(A3;NAJÍT("#";DOSADIT(A3;"°";"#";1);1)+1;NAJÍT("#";DOSADIT(A3;"'";"#";1);1)-NAJÍT("#";DOSADIT(A3;"°";"#";1);1)-1) - výsledkem by měla být hodnota 4

Takto pokračujeme dál až v případě separace 15°8’57. Nahradíme 1 ve funkci DOSADIT 2.

=ČÁST(A3;NAJÍT("#";DOSADIT(A3;" ";"#";2);1)+1;NAJÍT("#";DOSADIT(A3;"°";"#";2);1)-NAJÍT("#";DOSADIT(A3;" ";"#";2);1)-1) – výsledkem by měla být hodnota 15

=ČÁST(A3;NAJÍT("#";DOSADIT(A3;"°";"#";2);1)+1;NAJÍT("#";DOSADIT(A3;"'";"#";2);1)-NAJÍT("#";DOSADIT(A3;"°";"#";2);1)-1) – výsledkem by měla být hodnota 8

Postupně tak měníme pouze hodnoty v dosadit za “ “(mezera), “°”,  “’”, “.”, ””” – zde pozor musíme to zadat “”””!

No pro univerzálnost jsem ještě zapojil i funkce ZNAK a KÓD asi takhle,... =KÓD(" ") mezera = =KÓD("°") stupně,... a pak upravím vzorec asi takto: 

=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";1);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";1);1)-NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";1);1)-1)

==================================================================================================

Příklad 1:

země›|měna|množství|kód|kurz = uloženo v buňce I3, ve sloupcích J-M2 jsou čísla 1,2,3,4,5

J3=ZLEVA($I3;NAJÍT("#";DOSADIT($I3;"|";"#";J$2);1)-1)    

K3=ČÁST($I3;NAJÍT("#";DOSADIT($I3;"|";"#";J$2);1)+1;NAJÍT("#";DOSADIT($I3;"|";"#";K$2);1)-NAJÍT("#";DOSADIT($I3;"|";"#";J$2);1)-1)   

L3=ČÁST($I3;NAJÍT("#";DOSADIT($I3;"|";"#";K$2);1)+1;NAJÍT("#";DOSADIT($I3;"|";"#";L$2);1)-NAJÍT("#";DOSADIT($I3;"|";"#";K$2);1)-1)  

M3=ČÁST($I3;NAJÍT("#";DOSADIT($I3;"|";"#";L$2);1)+1;NAJÍT("#";DOSADIT($I3;"|";"#";M$2);1)-NAJÍT("#";DOSADIT($I3;"|";"#";L$2);1)-1)  

N3=ZPRAVA($I3;DÉLKA($I3)-NAJÍT("#";DOSADIT($I3;"|";"#";M$2);1))

==================================================================================================

příklad 2:

Loc: 50°4'48.511"N, 15°8'57.777"E - V A5

B3="znak ='"&ZNAK(B4)&"'"       C3="znak ='"&ZNAK(C4)&"'"        D3="znak ='"&ZNAK(D4)&"'"       E3="znak ='"&ZNAK(E4)&"'"                F3="znak ='"&ZNAK(F4)&"'"

B4=KÓD(" ")          C4=KÓD("°")         D4=KÓD("'")          E4=KÓD(".")          F4=KÓD("""")

B5=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";1);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";1);1)-NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";1);1)-1)

C5=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";1);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";1);1)-NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";1);1)-1)

D5=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";1);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";1);1)-NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";1);1)-1)

E5=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";1);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(F$4);"#";1);1)-NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";1);1)-1)

F5="N"

----------------------------

B6=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";2);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";2);1)-NAJÍT("#";DOSADIT($A5;ZNAK(B$4);"#";2);1)-1)

C6=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";2);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";2);1)-NAJÍT("#";DOSADIT($A5;ZNAK(C$4);"#";2);1)-1)

D6=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";2);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";2);1)-NAJÍT("#";DOSADIT($A5;ZNAK(D$4);"#";2);1)-1)

E6=ČÁST($A5;NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";2);1)+1;NAJÍT("#";DOSADIT($A5;ZNAK(F$4);"#";2);1)-NAJÍT("#";DOSADIT($A5;ZNAK(E$4);"#";2);1)-1)

F6="E"

Zpět