Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Poradíte lepší řešení probému v Excelu?

Se spoustou věcí už si dokážu poradit, ale tohle se mi zatím nedaří...
Neznáte nějakou (pro mě zatím neznámou) funkci nebo fintu, jak nemuset psát tolik funkcí KDYŽ, kolik je položek v seznamu? Navíc se občas počet položek může změnit, chtělo by to tedy nějaké obecnější řešení (ale pokud možno ne makrem).
Více viz ukázka v příloze, jedná se o sloupeček "Seznam položek 5"...

Řešení:

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Páčilo by sa Ti viac napr toto: ? do bunky S3 (a do ostatných skopírovať): =SUBSTITUTE(TRIM(INDEX(…
robert13 08.04.2022 11:15
robert13
Děkuji, taky zajímavé řešení, asi to bez makra jednodušeji opravdu nepůjde...
JoDiK 08.04.2022 13:29
JoDiK
Půjde pomocí maticového vzorce.
Siki83 08.04.2022 13:35
Siki83
Witaj Siki! Už som čakal na Teba a Tvoje maticové riešenie ;-) Ja som na to tiež chcel ísť s maticam…
robert13 08.04.2022 14:01
robert13
Ahoj, jakou máš verzi Excelu? Funkce TEXTJOIN by měla být dostupná od verze 2016.
Siki83 08.04.2022 14:13
Siki83
Mám 2016... Tak to bude asi od vyššej... Alebo... nemáš to nejaký externý doplnok? nový
robert13 08.04.2022 14:17
robert13
Ne ne, Excel 2019 bez doplňků. nový
Siki83 08.04.2022 20:11
Siki83
Jo... V mojej 2016 to nie je podporované (pred funkciou mi aj vypíše "_xlfn")... poslední
robert13 08.04.2022 20:37
robert13
Matice bych si nechal do Matlabu, jen jsem neměl tu odvahu to tu navrhnout (matlab nepatří k běžnému… nový
ml1 08.04.2022 17:34
ml1

Páčilo by sa Ti viac napr toto: ?

do bunky S3 (a do ostatných skopírovať):

=SUBSTITUTE(TRIM(INDEX(B1:B2;(B3=L$1)+1;) & " " & INDEX(C1:C2;(C3=L$1)+1;) & " " & INDEX(D1:D2;(D3=L$1)+1;) & " " & INDEX(E1:E2;(E3=L$1)+1;) & " " & INDEX(F1:F2;(F3=L$1)+1;) & " " & INDEX(G1:G2;(G3=L$1)+1;) & " " & INDEX(H1:H2;(H3=L$1)+1;) & " " & INDEX(I1:I2;(I3=L$1)+1;) & " " & INDEX(J1:J2;(J3=L$1)+1;));" ";", ")

v českej verzii:

=DOSADIT(PROČISTIT(INDEX(B1:B2;(B3=L$1)+1;) & " " & INDEX(C1:C2;(C3=L$1)+1;) & " " & INDEX(D1:D2;(D3=L$1)+1;) & " " & INDEX(E1:E2;(E3=L$1)+1;) & " " & INDEX(F1:F2;(F3=L$1)+1;) & " " & INDEX(G1:G2;(G3=L$1)+1;) & " " & INDEX(H1:H2;(H3=L$1)+1;) & " " & INDEX(I1:I2;(I3=L$1)+1;) & " " & INDEX(J1:J2;(J3=L$1)+1;));" ";", ")

:-D

Matice bych si nechal do Matlabu, jen jsem neměl tu odvahu to tu navrhnout (matlab nepatří k běžnému vybavení domácího počítače)


cisla=randi(5,1,10)
popisky={'KC'	'KY'	'R'	'C'	'L'	'IGT'	'CMOS'	'FET'	'SD' 'X9' 'X10'}
ind=find(cisla==5)
popisky(ind)

bylo by programátorsky čistčí použít strukturu, ale dva vektory jeden s čísly a jeden s popisky je jednodušší. Funkce find vrátí indexy položek, které se dají přímo použít k indexování. Počet by potom byl numel(ind). A dá se s tím dělat spousta dalších věcí. A je úplně jedno, jestli je těch položek 10 nebo milion. A přitom je to rychlé i pro 10 milionů prvků, což je množství, které excel ani nenačte.

Zpět do poradny Odpovědět na původní otázku Nahoru