Function joinitemscol(retezec as string, rozdelovac as string, data as object, sloupec as integer) as string
joinitemscol=""
if sloupec<1 then sloupec=1
prvky = split(retezec, rozdelovac)
for i=0 to ubound(prvky)
for j=1 to ubound(data)
if val(prvky(i))=data(j,1) then
if joinitemscol = "" then
joinitemscol = data(j,sloupec)
else
joinitemscol = joinitemscol & "," & data(j,sloupec)
end if
exit for
end if
next j
next i
End Function
Číslování sloupců je vzhledem k definované oblasti dat - 1 je sl. s indexy, 2 je první sloupec se jmény, 3 je druhý sl se jmény atd.
=JOINITEMSCOL(D1;",";$A$1:$C$10;3)
obecně
=JOINITEMSCOL(vzor;oddělovač;data;sloupec)
FUNKCE NEJSOU OPTIMALIZOVÁNY NA VÝKON ! tj. při velkém objemu dat by mohly fungovat pomalu, musely by se poladit. Taky nejsou moc odolné na špatně zadané vstupy.
]]>Sloupec A (prvky) 1,2,3 atd.
Sloupec B (data)
Sloupec C (data)
atd
Po zadání hodnot do buňky 1,2
- zadám do funkce parametr 1 (sloupec B) - vypíše hodnoty oddělené čárkou.
- zadám do funkce 2 (sloupec C) - vypíše hodnoty oddělené čárkou.
Děkuji
]]>Function joinitems(retezec as string, rozdelovac as string, data as object) as string
joinitems=""
prvky = split(retezec, rozdelovac)
for i=0 to ubound(prvky)
for j=1 to ubound(data)
if val(prvky(i))=data(j,1) then
if joinitems = "" then
joinitems = data(j,2)
else
joinitems = joinitems & "," & data(j,2)
end if
exit for
end if
next j
next i
End function
Ve vašem případě pak v listu použijete vzorec
=JOINITEMS(C1;",";A1:B3) resp. pokud ho budete chtít kopírovat do dalších buněk =JOINITEMS(C1;",";$A$1:$B$3)
obecně
=JOINITEMS(vzor;oddělovač;data)
V sloupci A1 mám hodnoty: 1 2 3 (A1:A3). Ve sloupci B1 mám textové údaje např. Jan Karel Dasa (B1:B3). Do buňky C1 chci zadat hodnoty oddělené čárkou např.1,3. Do buňky D1 chci aby se mi vypsali hodnoty: Jan,Dasa. Když to shrnu, tak potřebuji po zadání libovolných hodnot ve sloupci A1 oddělené čárkou do jedné buňky, vypsat hodnoty ve vedlejším sloupci taktéž oddělené čárkou do jedné buňky.
A B
1 Jan
2 Karel
3 Dasa
buňka C1: 1,2
buňka D1: Jan,Karel
nebo
C1: 1,2,3
D1: Jan,Karel,Dasa
atd.