< návrat zpět

MS Excel


Téma: Pole v buňce rss

Zaslal/a 8.1.2019 11:37

Dobrý den, je-li v buňce A1 jako hodnota zadáno 10,20,30 či 10;20;30 , lze hodnota buňky nějak použít jako pole ve vzorcích ?

Docílit něco ve smyslu =SUMA("{" & A1 & "}")
přemluvit by fungovalo =SUMA({10;20;30}) ?

Počet prvků pole v A1 by šel zjistit :
=DÉLKA(PROČISTIT(A1))-DÉLKA(DOSADIT(PROČISTIT(A1);";";""))+1

Dále je cílem ověřit, zda-li pole obsahuje daný prvek, předat třeba do COUNTIF pro počet výskytů pokud by pole obsahovalo stejnou hodnotu vícekrát nebo přes INDEX vracet prvky pole dle pozice anebo získat pozici prvku pomocí POZVYHLEDAT.

Předem děkuji za případné rady a tipy.

Zaslat odpověď >

#042343
avatar
Vzpomněl jsem si, že lze definovat název a použít EVALUATE :
=VYHODNOTIT("{" & A1 & "}") pak volat =SUMA(nazev)
Pak je ale třeba uložit jako sešit s makry... a to už vlastně lze pomocí VBA a vlastní funkce(UDF).
Nelze se tomu přecejen vyhnout? Ryze přes vzorečky...citovat
#042344
avatar
Kostrbaté, ale přeci (CTRL+SHIFT+ENTER):

=SUMA((PROČISTIT(ČÁST(DOSADIT(A1;",";OPAKOVAT(" ";255));1+(ŘÁDEK(A1:A1000)-1)*255;255)) & "0")/10)

Někdo jistě navrhne lepší a dodělá zbytek.citovat
#042349
avatar
Díky moc za příklad, ačkoli netuším, jak to funguje, tak zkouším vyhledat je-li číslo v poli hodnot ...

A1 obsahuje pole čísel oddělené čárkami : např. 10,20,30 ...
B1 hledané číslo v poli : např. 20
C1 se snažím ověřit existenci B1 v poli :
=POZVYHLEDAT(B1;INDEX((PROČISTIT(ČÁST(DOSADIT(A1;",";OPAKOVAT(" ";255));1+(ŘÁDEK(POSUN(A1;0;0;DÉLKA(PROČISTIT(A1))-DÉLKA(DOSADIT(PROČISTIT(A1);",";""))+1))-1)*255;255)) & "0")/10;);0)
Není maticově, nedovedu to vysvětlit, ale díky nějaké šťastné náhodě vrací pozici v poli nebo chybu není k dispozici. Těším se na návrhy a připomínky.citovat
#042350
elninoslov
Na overenie existencie predsa stačí iba:
=ISNUMBER((FIND(","&B1&",";","&A1&",")))
=JE.ČISLO((NAJÍT(","&B1&",";","&A1&",")))


Pozícia:
=IFERROR(FIND(","&B1&",";","&A1&",");0)
=IFERROR(NAJÍT(","&B1&",";","&A1&",");0)


Index:
=IFERROR(LEN(LEFT(A1;FIND(","&B1&",";","&A1&",")-1))-LEN(SUBSTITUTE(LEFT(A1;FIND(","&B1&",";","&A1&",")-1);",";""))+1;0)
=IFERROR(DÉLKA(ZLEVA(A1;NAJÍT(","&B1&",";","&A1&",")-1))-DÉLKA(DOSADIT(ZLEVA(A1;NAJÍT(","&B1&",";","&A1&",")-1);",";""))+1;0)


Počet:
=IF(A1="";0;LEN(A1)-LEN(SUBSTITUTE(A1;",";""))+1)
=KDYŽ(A1="";0;DÉLKA(A1)-DÉLKA(DOSADIT(A1;",";""))+1)


Súčet:
=SUMPRODUCT(--("0"&TRIM(MID(SUBSTITUTE(A1;",";REPT(" ";LEN(A1)));1+(ROW(OFFSET($A$1;;;LEN(A1)))-1)*LEN(A1);LEN(A1)))))
=SOUČIN.SKALÁRNÍ(--("0"&PROČISTIT(ČÁST(DOSADIT(A1;",";OPAKOVAT(" ";DÉLKA(A1)));1+(ŘÁDEK(POSUN($A$1;;;DÉLKA(A1)))-1)*DÉLKA(A1);DÉLKA(A1)))))


Výskytov:
=(LEN(A1)-LEN(SUBSTITUTE(A1;B1;"")))/LEN(B1)
=(DÉLKA(A1)-DÉLKA(DOSADIT(A1;B1;"")))/DÉLKA(B1)
citovat
#042351
avatar
To je ale nádhera, díky moc.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31

Makro smyčka

MilanKop • 18.4. 7:18

Makro smyčka

elninoslov • 18.4. 0:18

Makro smyčka

MilanKop • 17.4. 21:33