elninoslov napsal/a:
Obe verzie prerobené tak, že je jedno, či je to číslo alebo textočíslo. Každopádne to musí byť prevediteľné na číslo.
Ale ja by som si to určo previedol na čísla. Na to môžu nadväzovať ďalšie problémy ako filtre (časté aj pri dátum vs. textodátum) a pod. Jednorázové prevádzanie sa robí tak, že si niekde do bunky dočasne napíšete 1, tú bunku dáte Ctrl+C, označíte textočísla, pravý klik, Prilepiť špeciálne, Hodnoty a Násobenie, bunku s 1 zmažete. Ak to je často menené, napr. nejaký import, tak priamo v importe by to malo ísť, alebo pomocným stĺpcom so vzorcami ako to máte teraz. A možnosť je samozrejme aj takýto upravený vzorec čo Vám sem teraz dávam, ktorému je to jedno :)
elninoslov napsal/a:
A Vám nevadí, že Vám Excel jasne hovorí (zelený trojuholník), že tie "0" nie sú 0? Veď to tam jasne píše, že máte tie "čísla" uložené ako text. Použite normálne čísla a ten kratší vzorec. O tom, že to musí byť číslo, som písal aj ja.
EDIT:
A u dlhšieho vzorca je problém okrem textočísel aj v tom, že neviete ako funguje, a nesprávne ste ho upravil. Tučným som zvýraznil Vaše chyby. To A1 je tam na získanie číselného radu (indexu) začínajúceho 1 a končiaceho počtom <>0, to A1 bude vždy A1 bezohľadu akú oblasť chcete skúmať. A to -2 tam musíte dať z rovnakého dôvodu, aby ste získali číselný rad podľa počtu skúmaných buniek ale tiež začínajúcim od 1. Preto ak ste na riadku V3 tak -2.
=INDEX(V3:V45;INDEX(SMALL(IF(V3:V45<>0;ROW(V3:V45)-2;FALSE);ROW(OFFSET(A1;;;COUNTIF(V3:V45;"<>"&0))));RANDBETWEEN(1;COUNTIF(V3:V45;"<>"&0))))
=INDEX(V3:V45;INDEX(SMALL(KDYŽ(V3:V45<>0;ŘÁDEK(V3:V45)-2;NEPRAVDA);ŘÁDEK(POSUN(A1;;;COUNTIF(V3:V45;"<>"&0))));RANDBETWEEN(1;COUNTIF(V3:V45;"<>"&0))))
lubo napsal/a:
Pokud máte novější verzi excelu, pak
=LET(tab;FILTER($A$1:$A$6;$A$1:$A$6<>0);INDEX(tab;RANDBETWEEN(1;POČET(tab))))
elninoslov napsal/a:
Jednoduchší vzorec ma zatiaľ nenapadol, tak snáď niekto iný:
(maticový vzorec Ctrl+Shift+Enter)
=INDEX(A1:A6;INDEX(SMALL(IF(A1:A6<>0;ROW(A1:A6);FALSE);ROW(OFFSET(A1;;;COUNTIF(A1:A6;"<>"&0))));RANDBETWEEN(1;COUNTIF(A1:A6;"<>"&0))))
=INDEX(A1:A6;INDEX(SMALL(KDYŽ(A1:A6<>0;ŘÁDEK(A1:A6);NEPRAVDA);ŘÁDEK(POSUN(A1;;;COUNTIF(A1:A6;"<>"&0))));RANDBETWEEN(1;COUNTIF(A1:A6;"<>"&0))))
kratší variant, ale musia to byť čísla
=SMALL(IF(A1:A6<>0;A1:A6;FALSE);RANDBETWEEN(1;COUNTIF(A1:A6;"<>"&0)))
=SMALL(KDYŽ(A1:A6<>0;A1:A6;NEPRAVDA);RANDBETWEEN(1;COUNTIF(A1:A6;"<>"&0)))
Je to presne tak. Díky!
Ahoj.
v mojom liste kde mám v jednom stĺpci dátum mi z neznámeho dôvodu začalo pri usporiadaní od najstaršieho po najnovšie zahŕňať do usporiadania aj hornú lištu kde mám názvy buniek a filtre. Neviete čím to môže byť? Ďakujem
Ďakujem za odpoveď. Samozrejme chyba bola presne v maticovom vzorci.
Inak keď rozbalím funkciu tak mi píše správny výsledok ale v bunke aj tak zadá len najvyššiu hodnotu
Ahoj. Ďakujem za pomoc pohol som sa aspoň trochu dopredu. Len mám predstavu že to bude vypadať približne ako posielam v prílohe. Čiže v každom riadku aby k danému klientovi bola najvyššia hodnota. Len v mojom vzorci mi vždy vybere iba hodnotu najvyššiu. Kde robím chybu. Ďakujem ešte raz
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.