[ Sudarica @ 16.02.2013. 13:16 ] @
Molim pomoć trebam pronaći tri uzastopne ćelije koje su veće od 0 i prepisati njihove naslove, zatim upisati njihove vrijednosti. Okačila sam primjer kako bi bilo što jasnije. unaprijed hvala LP |
[ Sudarica @ 16.02.2013. 13:16 ] @
[ 3okc @ 17.02.2013. 10:59 ] @
Za vertikalni vektor/opseg rng, matrična formula preko opsega 3x2:
Code: =OFFSET(INDIRECT(ADDRESS(1;COLUMN(rng)));LOOKUP(2;1/( SUBTOTAL(6;OFFSET(rng;ROW(INDIRECT("1:"&ROWS(rng)-1))-1;;3))>0) ;ROW(rng))-{1;0;-1};{-1\0}) ![]() [ Sudarica @ 17.02.2013. 12:38 ] @
[quote]3okc: Za vertikalni vektor/opseg rng, matrična formula preko opsega 3x2:
Code: =OFFSET(INDIRECT(ADDRESS(1;COLUMN(rng)));LOOKUP(2;1/( SUBTOTAL(6;OFFSET(rng;ROW(INDIRECT("1:"&ROWS(rng)-1))-1;;3))>0) ;ROW(rng))-{1;0;-1};{-1\0}) oprosti ali ne razumijem ovu formulu i dok vidi funkciju Lookup gotova sam jer je ona za mene koma molim te da mi na mom primjeru pokušaš objasniti. jedino što mi je poznato u ovoj formuli je definirani naziv rng ovo drugo ništa. Zahvalna do groba ps nije mi jasno te dvije formule su potpuno identične a dobio si drugačiji rezultat 3okc o čemu se radi Skužila sam da ta formula vraća rezultat u stupce a ne u redove, a mora biti u redovima onako kako sam navela u primjeru ali sam primjetila i da ne vraća prve tri uzastopne ćelije nego zadnje tri ??????? [Ovu poruku je menjao Sudarica dana 17.02.2013. u 16:11 GMT+1] [ 3okc @ 17.02.2013. 17:23 ] @
Formulu i rešenje sam pisao prema onome kako sam razumeo; učinio mi se prilično jasan zadatak (ne bih se usuđivao da nije), a fajl nisam bio otvarao. Pošto se tražilo nalaženje "tri uzastopne ćelije" sa vrednošću >0, u formuli se prolazi kroz opseg sa brojevima (u formuli nazvan rng) po 3 ćelije nadole. Trojka se međusobno izmnoži i gleda se je li proizvod >0 (logično, onda je i cela trojka >0). Pošto lociranje trojke dalje vrši LOOKUP onda i rezultat ide od dna ka vrhu, LOOKUP tako radi.
U svakom slučaju, ono što sad vidim u okačenom fajlu nema mnogo veze sa ovim kako sam ja u glavi zamislio... vrlo mi je zanimljivo shvatanje 'uzastopnog' u primeru -onako prošarano nulama između, bez naznake reda. U stvari, koliko mogu sada da vidim, i nije bilo presudno je li "veće od nule" već da jednake vrednosti budu u grupi a nule da se zanemaruju. Od samog početka zadatak nije ni bio za formule. [ Brodoplovac @ 17.02.2013. 21:12 ] @
Evo dva teksta o tome kako se matrica koja sadrži konstante upisuje u formulu. Jedna takva matrica je u 3okc-ovoj formuli zapisana kao "{1;0;-1}". Ja se prvi put susrećem sa takvim zapisom.
http://www.itechtalk.com/thread10860.html http://wiki.openoffice.org/wik...es/array_constants_in_formulas [ Sudarica @ 18.02.2013. 17:16 ] @
ja sam niz ovako riješila (okačila sam primjer) ali ne znam kako da to upišem u zadnjih šest ćelija
[ Jpeca @ 19.02.2013. 07:17 ] @
Da upišeš odgovarajuće vrednosti najlakše je da pronađeš broj "kolone" od koje počinju tri uzastopne vrednosti veće od 0 i onda koristiš INDEX
Npr. Ako ti se niz u kome tražiš tri uzastopne vrednosti veće od 0 A8:N8 Prve tri uzastopne vrednosti B8,C8 i D8 počinju dakle od kolone 2 (B) Onda ćeš vredosti do1, do2 i do3 dobiti kao Code: =INDEX(A8:N8;2) =INDEX(A8:N8;2+1) i =INDEX(A8:N8;2+2) A odgovarajuće vrednosti iz zaglavlja (naslova A7:N7) Code: =INDEX($A$7:$N$7;2) =INDEX($A$7:$N$7;2+1) i =INDEX($A$7:$N$7;2+2) Kolone sam napisao pod navodnicima zato što se u tvom slučaju radi o kolonama a inače je redni broj člana (indeks) u nizu. Naravno da ovo +1, +2 može da se reši preko forumle, a ne ručno ali da ne komplikujemo za sada. Problem se sada svodi na pronalaženje kolone od koje počinje grupa tri uzastopne vrednosti veće od 0. Ako se držimo primera koji si postavila jedan način da to uradiš je korišćenje MATCH funkcije. Pošto si u pomoćnim kolonama O..Z izvršila prebrojavanja trojki susednih ćelija, tražimo prvu vrednost koja je jednaka 3 Code: =MATCH(3;O8:Z8;0) Rezultat je indeks u okviru niza O8:Z8, u konkretnom slučaju 2. Sad sa tim indeksom koristiš gornje formule (2 se zameni sa adresom rezultata). Pomoćne kolone AA .. AM nisu ti potrebne U prilogu sam dao i slično rešenje gde se broj kolone računa preko matrične (array) formule, tako da je izbegnuto dodavanje pomoćnih kolona za prebrojavanje. Možda nije tako elegantno kao rešenje koje je dao 3okc, ali se nadam da je lakše za razumevanje [ FOX028 @ 19.02.2013. 08:49 ] @
Ajde i ja da se ukljucim u ovaj problem, gledao sam tvoje primere i resenja koja su ti ponudjena ali koliko vidim postoji jedna nedoumica u tvom problemu a to je sta smatras pod tim "TRI UZASTOPNE CELIJE VECE OD NULE" u tvom prvom primeru koji si navela postoje vise uzastopnih celija vecih od nule u jednoj koloni a ti si uzela samo jednu kombinaciju od tri celije i da li moraju biti u nekom rastucem nizu ili opadajucem ili je to nebitno. Budi malo konkretnija oko toga. I reci mi da li mora da se resi samo formulama ili moze i preko VBA (da se napise funkcija u VBA i da je kasnije pozivas kao neku vec ugradjenu funkciju u Excel-u)
[ Sudarica @ 19.02.2013. 16:24 ] @
Citat: FOX028: Ajde i ja da se ukljucim u ovaj problem, gledao sam tvoje primere i resenja koja su ti ponudjena ali koliko vidim postoji jedna nedoumica u tvom problemu a to je sta smatras pod tim "TRI UZASTOPNE CELIJE VECE OD NULE" u tvom prvom primeru koji si navela postoje vise uzastopnih celija vecih od nule u jednoj koloni a ti si uzela samo jednu kombinaciju od tri celije i da li moraju biti u nekom rastucem nizu ili opadajucem ili je to nebitno. Budi malo konkretnija oko toga. I reci mi da li mora da se resi samo formulama ili moze i preko VBA (da se napise funkcija u VBA i da je kasnije pozivas kao neku vec ugradjenu funkciju u Excel-u) jednostavne trebam prve tri uzastopen ćelije u nizu koje su veće od nule. U drugom primjeru sam ja pokušala stvoriti niz i izdvojiti iz niza ono što mi treba i nakraju to je riješio Jpeca (nemojte mi zamjeriti ali moram reći najbolji od najboljih hvala mu). Izbacila sam Pomoćne kolone AA .. AM jer mi stvarno nisu potrebne. Zatim sam definirala stupce pomoću formule =MATCH(3;O8:Z8;0) i dalje sam radila prema uputama Jpeca i dobila točno ono što mi treba. Hvala vam puno svima puno sam naučila od vas svih i bilo mi je drago što smo učili zajedno. Ja sam došla do kraja. S poštovanjem i velikim zagrljajem svim forumašima. [ FOX028 @ 19.02.2013. 23:44 ] @
Evo da ponudim i ja moje resenje, ja sam ovaj problem resio pomocu VBA. U VBA editoru sam napisao funkciju koja se poziva kao i bilo koja druga ugradjena funkcija. U prilogu primer sa detaljnim objasnjenjem kako se koristi ova funkcija. Jedna od prednosti ovakvog nacina resenja ovog problema je taj sto se izbegava pisanje dugackih funkcija i koriscenje matricnih funkcija jer su nekad jako komplikovane
![]() [ 3okc @ 20.02.2013. 20:25 ] @
Kao pomoć u traženju/markiranju/uklanjanju duplikata može poslužiti odličan alat (Excel add-in):
Duplicate Master V2 (David Brett) & Help file (CHM) for using the Excel add-in. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|