snad mohu přispět se svou troškou do mlýna. Jde to dvěma pomocnými sloupci + třetí jako výsledný.
sloupce A a B jsou zadání a začínají od A1 B1
řádek jedna bude malinko jiný a bude tam
ve sloupci C bude =A1
ve sloupci D bude =1
ve sloupci E bude =B1
na druhém řádku a pak roztaženě ve všech dalších:
C: =IF(E1>1;C1;INDEX($A$1:$A$35;D1+1;1))
D: =MATCH(C2;$A$1:$A$35;0)
E: =IF(E1>1;E1-1;INDEX($B$1:$B$35;D1+1;1))
Příklad je nastaven na 35 hodnot v zadání ale je to jedno, může jich být libovolně, stejně tak počet opakování jedné hodnoty. Když dojdou vzorce na konec tak se začnou objevovat chyby. To se dá ošetřit, ale taky nemusí, prostě se tam roztažení vzorců ukončí, záleží na tom jak moc má být soubor interaktivní - jak se budou měnit hodnoty a jak se bude výsledek vyhodnocovat.
Budu rád když dáte vědět jak jste pochodil, ještě jsem tady nikomu nic neradil, zato jsem tu už mnoho dostal.
Jo a není tu ošetřena nula opakování, to by se asi též dalo vymyslet, záleží na tom zda je to potřeba, nyní se zobrazuje minimálně jedenkrát i při zadání nuly.
... a takto by to bylo s ošetřením nuly
C: =IF(E1>1;C1;IF(AND(E1=1;INDEX($B$1:$B$35;D1+1;1)=0);INDEX($A$1:$A$35;D1+2;1);INDEX($A$1:$A$35;D1+1;1)))
D: =MATCH(C2;$A$1:$A$35;0)
E: =IF(E1>1;E1-1;IF(AND(E1=1;INDEX($B$1:$B$35;D1+1;1)=0);INDEX($B$1:$B$35;D1+2;1);INDEX($B$1:$B$35;D1+1;1)))
Editoval ludviktrnka (13. 5. 2014 16:25:39)