| |
Jaz pa bi samo vprašal, ali gre pri tej obdelavi za kakšen realen primer.
Ker v Excelu se sicer da narediti, vendar pa ni najbolj primeren za to, če ne drugega, že zaradi same preglednosti.
Vsekakor, če se to več uporablja, bi bilo za to precej bolje spisati svoj program, ki je prilagojen tej nalogi.
|
| |
| |
Realna potreba, ja. Zaloga vrednosti števil je lahko večja, maksimalno 0 do 50. Pogoji glede pojavljanja naključno nastalih Grup so malo drugačni (potem se gleda od grupe3 do grupe12, in število N nepojavljanja je za vsako grupo drugačno), je pa princip enak kot v primeru zgoraj. Lahko je pa zahteva tudi za vnaprej predpisane grupe (fiksne). Recimo 0 1 2 3 4 5 (in pogoj, da se ni pojavila zaporedoma recimo 80x). Tudi te grupe so lahko velike 3 do 12 številk. V Excelu res ni pregledno. Programček bi sigurno bil pregleden, pa verjetno tudi ni kompliciran, ker gre samo za štetje. Številke se pa sproti ročno vpisujejo skozi okence.
|
| |
| |
mišljeno je vedno nepojavljanje grupe VSAJ N-krat (vsaj 16x, vsaj 22x, vsaj 27x, vsaj 80x...)
|
| |
| |
Nikakor mi ne uspe datoteke v linku
https://gofile.io/d/qaIwoB
odpreti na način, da bi bila uporabna.
Jo je možno poslati na način, da jo tudi navaden excel lahko odpre?
Hvala lepa.
|
| |
| |
Ah, šele zdaj vidim, da sem v formulah uporabljal funkcije, ki so na voljo samo v najnovejši različici Excela (Office 365).
Mislim, da v starejših verzijah Excela tega problema ne bo enostavno rešiti z običajnimi formulami. Kot je predlagal podtalje: smiselno bi bilo uporabiti kak namenski program. Če pa že vztrajate pri Excelu, potem bi problem lahko rešili (sprogramirali) z makri (VBA). Jih poznate? Kodo vam sicer lahko napišem, vendar bo kakršno koli dodatno prilagajanje potem nekoliko zahtevnejše, če ne poznate programiranja ...
|
| |
| |
Uh, ne poznam programiranja. In seveda Excel ni nujen, je pa res tudi dosti nepregleden. Se pravi možen je samo program. Je kompliciran za napisat oz. vzame veliko časa za napisati? Zamisel sem narisal kako bi naj tole šlo. S pomočjo 3 bazenov. 1. bazen: vsa možna števila 2. bazen: prišla števila 3. bazen: neprišla števila In potem v vsakem trenutku (dogodek) vidiš/veš kje si.
|
| |
| |
Sprogramiral sem funkcijo ManjkajocaStevila(), ki naredi, kar želite. Sprejme dva argumenta: prvo celico iz seznama in celico v isti vrstici.
https://gofile.io/d/PTd7WO
Datoteka je oblike .xlsm, saj vsebuje makro. Ob odpiranju morate dovoliti izvajanje makrov.
|
| |
| |
Hvala lepa. Zelo ste prijazni.
Če dovolite, bi pa samo pojasnil.
Kot ste rekli, sprejme samo prvo celico iz stolpca. Je pa tako, da cifre sproti prihajajo, tista na vrhu je zadnja, ki je prišla, zmeraj sledi nova in se cel stolpec za 1 poveča (nastane nova za 1 daljša vrsta).
V zapisanem primeru pomeni vrsta: 3 2 0 0 7 6 5 6 0 0 2 7 5 0 2 2 5 6 11 2 1 7 0 8 2 3 10
da je najprej prišla 10, potem 3, potem 2, potem 8, 0, 7.... in nazadnje 3, sledila bo spet nova in nova in nova...
Zato sem narisal tisto z bazenčki, ker pri takem "mehanizmu" se v vsakem trenutku ve, katere cifre so "že prišle" in katere še niso.
Še več... Če bi zakrili 1.dogodek, bi dobili novo vrsto, ki se začne z 2.dogodkom (ki s tem postane 1.dogodek) in takoj je rezultat drugačen.
In tako naprej, če bi zakrili spet naslednjega, dobimo spet novo vrsto in spet drugačne rezultate. Zadeva je drseča, dinamična.
Pri tem "gledanju" dolge vrste iz stolpca (s svojim začetkom in koncem) imamo pogoj, da celotna gledana vrsta nikdar ni krajša od 4-ih elementov (se pravi ne zakrivamo prvega dogodka dokler ne dosežemo zadnjega, potem bi prišli do vrste s samo enim, to je zadnjim elementom... z zakrivanjem prvih dogodkov prenehamo prej, čim pridemo do vrste velike 4 elemente... v primeru vrste zgoraj je to do 0 0 2 3.... se pravi ne prekrivamo še naprej 0 in potem spet 0 in potem še 2... ker potem bi prišli do 3, do enega samega elementa, ni kaj za analizirat pri njem).
V vsakem trenutku nastajanja vrste smo znotraj celotne vrste analizirali vse druge sledeče manjše vrste s prekrivanjem prvega dogodka proti zadnjemu prišlemu elementu vrste (vendar ne do njega), v primeru zgoraj je to: najprej prekrijemo 10, potem 3, 2, 8, 0, 7, vse do najmanjše vrste s 4 elementi (0 0 2 3).
Besedno razložit je zelo kunšt, verjetno tudi za razumet, v resnici je pa zelo enostavno.
Kot vidim tale stvar v Excelu ni rešljiva. Čeprav je na videz zelo preprosta, je za Excel prevelik zalogaj.
Saj se tudi N pogoj lahko kadarkoli spremeni (glede N-kratnega nepojavljanja grupe). In tudi potreba po iskanju m-elementov velike grupe se lahko kadarkoli spremeni (grupa 4 5 6 7 8 9 10 11 12.... 17 elementov). In tudi zaloga možnih vrednosti (lahko je maksimalno od 0 do 50). Vse to troje bi moralo bit na voljo človeku za izbiro (tako kot ste že rešili v Officu 365).
Očitno bo treba ročno spremljat in gledat (človek). Excel prekompliciran.
Še enkrat velik hvala.
|
| |
| |
Pa še tole. Zadnji trenutek, ko zagotovo začnemo s pokrivanjem prvih dogodkov je takrat, ko ob analizi celotne vrste ni izpolnjen noben pogoj in ni nobene rešitve, torej nobene skupine "m" števil, ki se ni pojavila že N-krat. Potem se takoj začne prekrivat prve dogodke, naprej prvega, in čim je grupa za eno cifro manjša, se zadeva sproti, že lahko obstaja kak rezultat, ki zadosti našim pogojem. Če za zopet ni, spet pokrijemo naslednji minuli dogodek z začetka vrste. S postopkom nadaljujemo, dokler ne pridemo do takšne vrste, kjer obstaja nek rezultat. Če se zgodi, da ni nobenega rezultata vse do najkrajše vrste 4 elementov, v vrsto spustimo nov element, vse dokler se ne pojavi rezultat, ki izpolnjuje naše zahteve. Sliši se strašno komplicirano. Pa ni. Princip je zelo enostaven.
|
| |
| |
Pa še tole. Zadnji trenutek, ko zagotovo začnemo s pokrivanjem prvih dogodkov je takrat, ko ob analizi celotne vrste ni izpolnjen noben pogoj in ni nobene rešitve, torej nobene skupine "m" števil, ki se ni pojavila že N-krat. Potem se takoj začne prekrivat prve dogodke, najprej prvega, in čim je grupa za eno cifro manjša, se zadeva sprosti in že lahko obstaja kak rezultat, ki zadosti našim pogojem. Če ga (rezultata) zopet ni, spet pokrijemo "naslednji" minuli dogodek z začetka vrste. S postopkom nadaljujemo, dokler ne pridemo do takšne vrste, kjer obstaja nek rezultat. Če se zgodi, da ni nobenega rezultata vse do najkrajše vrste 4 elementov, v vrsto spustimo nov element, vse dokler se ne pojavi rezultat, ki izpolnjuje naše zahteve. Sliši se strašno komplicirano. Pa ni. Princip je zelo enostaven.
|
| |
Prikazujem 2 od skupno 3 strani |
|