[ BrackoNe @ 04.10.2007. 12:09 ] @
E da li može neko da mi pomogne u ovome.
Ovako ja sam putnik, i svaki dan putujem iz Pazove u Beograd.
Hteo sam da popišem red vožnje sa Lastine stanice, kako bih Excel sam stavljao kada imam prvi sledeći bus za povratak.
E ovako:
Na slici je raspored časova, a u polju B19 treba da ispiše D+E ćeliju koja odgovara vrednosti poslednjeg časa.
Kasnije ću ja da doradim ako je unutar petnaest min da mi ispiše, ako nije da mi piše prvi sledeći bus.
Ako neko zna, molim za pomoć...

[ anakin14 @ 04.10.2007. 13:18 ] @
Ja tebe nista ne razumem? Sta ti znci ono programiranje?
[ 3okc @ 04.10.2007. 13:19 ] @
Nisi baš jasan, Brackone. Mislim, "umeš sam da doradiš ispis unutar 15 min" a problem ti je D+E??
Code:
=TEXT(D15; "hh:mm") &" "& E15
[ BrackoNe @ 04.10.2007. 13:56 ] @
Grr znao sam da necu biti jasan...

E ovako:
Ovo programiranje je primer kada imam ponedeljkom zadnji cas od 8 do 10 (zeznuo sam se treba da pise od 7-9, ali nema veze, zamislite da je programiranje siftovano za jedno polje iznad).
Trebam da napravim formulu koja ce da trazi unutar 15 min +- kada imam bus iz druge tabele (sada je ona prikazana kao D i E polja, inace se nalazi na drugom radnom listu).

Za ovaj primer na slici, treba da napise u polju B19, 21:00 pazova, a da nema tog autobusa, treba da pise 21:30 pazova.

Nadam se da sam sada barem malo jasniji..?!
[ Jpeca @ 04.10.2007. 14:59 ] @
Možda može nekako lakše ali evo na brzinu.
Ako ti se nastava završava u 21:00, kako sam ja razumeo, prvi termin koji bi ti odgovarao je 21:15. Dakle to će biti uslov za pretragu.
Uslov možeš da dobiješ iz rasporeda časova pomoću matrične formule (unosi se bez vitičastih zagrada i završi sa CTRL+SHIFT+ENTER) :
Code:
{=MAX(IF(ISBLANK(B2:B16),0,A2:A16))+1.25/24}

Neka je to B20. Na osnovu tog uslova nalaziš prvi veći u listi prevoza npr kombinacijom INDEX i MATCH
Code:
=INDEX(TabVreme,MATCH(B20,TabVreme,-1 ))

Za ovo je potrebno da ti lista bude sortirana po opadajućem redosledu. TabVreme je prva kolona iz liste prevoza (TabVreme)
Na kraju liniju koja odgovara pronadjenom vremenu dobiješ sa VLOOKUP
Code:
=VLOOKUP(B21,TabPrevoz,2,false)
edit: ispravljen lapsus: matrične formule

[Ovu poruku je menjao 3okc dana 04.10.2007. u 21:44 GMT+1]
[ BrackoNe @ 04.10.2007. 16:06 ] @
E tooo... :)
Hvala!!!
[ BrackoNe @ 04.10.2007. 16:14 ] @
Hmmm izgleda da baguje...
Evo sada gledam, njemu je index 22:15, iako u 22 nemam cas, a treba da pise 21:15, ako se ne varam...
[ BrackoNe @ 04.10.2007. 17:28 ] @
O j.... ti, kako me nervira.
Ovo je tvoj (malo ispravljen).



edit by Ivek33: editirana psovka

[Ovu poruku je menjao Ivek33 dana 04.10.2007. u 20:02 GMT+1]
[ 3okc @ 04.10.2007. 20:32 ] @
Citat:
BrackoNe: Hmmm izgleda da baguje...
Evo sada gledam, njemu je index 22:15, iako u 22 nemam cas, a treba da pise 21:15, ako se ne varam...
To se i meni učinilo za momenat, međutim, varaš se, Peca ti je dao dobro rešenje! Ako poslednji čas počinje u 21h vreme za pretragu je valjda nakon završenog časa, zar ne? Dakle, vreme za sat više + rezerva od 15min.

Malo sam se poigrao i dođoh do definicije dinamičkog opsega ali bi ovaj način bio uslovljen neprekinutim nizom u polju predmeta pa je kao takav podložan grešci. Zaista je Pecina formula najintuitivnija.

Usput, jel možeš ubuduće da ostaviš formulu kao što svi rade?
Eventualno, ide slika koliko je već potrebno za ilustraciju ali ne kompletan Screen! Pretpostavljam da je slika tu zbog novog formata (pa *.xlsx kao att ne bi išao) ali ne verujem da će se ovo usvojiti kao pravilo.
[ BrackoNe @ 04.10.2007. 22:02 ] @
Hmm, meni treba 15 min do buske, što znači ako mi je čas do 21 (kao danas i sutra), ja stižem na bus u 21:15, što znači ne treba + 1:15, nego samo 15 min. (eventualno još jedan bus posle)

@Ivek33
Izvini na cenzuri... :(
[ BrackoNe @ 04.10.2007. 22:22 ] @
E da li je ovo do ofisa 07, ili šta je upitanju pojma nemam.
Prekucam istu tvoju formulu i pustim korak po korak da se izvršava, i odmah u prvom gde ti dobiješ 0,0,0,0,... ja dobijem #value, i zakuca mi vrednost na 23:15.

Pretpostavljam gde grešim...
Verovatno u ovome, što ne mogu da nađem "matričnu formulu", ja lupam kao mutav CTRL+Enter, ali nedobijem, kao ti, ove vitičaste zagrade.

[Ovu poruku je menjao BrackoNe dana 04.10.2007. u 23:42 GMT+1]
[ Jpeca @ 05.10.2007. 07:48 ] @
Moja greška nije CTRL+Enter nego CTRL+Shift+Enter, kao što je 3okc već izmenio u original poruci. Inače dodatne informacije možeš naći u helpu - Guidelines and examples of array formulas
[ BrackoNe @ 07.10.2007. 20:09 ] @
Peco/3oks, još se zezam sa ovim.
Ajde, ako vam nije problem, pogledajte gde grešim, pa ispravite i postavite ovde.
Može?

Hvala u napred.
[ Jpeca @ 08.10.2007. 07:18 ] @
Kao što sam ti napisao u formuli za VLOOKUP - potrebno je staviti opciju FALSE kako bi se tražila tačna vrednost (Ovo nije bilo ispravno u fajlu koji sam okačio kao primer). Bez ove opcije VLOOKUP traži prvu manju vrednost, a kako su vremena sortirana opadajuće javlja grešku N/A.
[ BrackoNe @ 08.10.2007. 08:06 ] @
Samo da sam pročitao pomoć iz Excel-a, nisam morao ni da te uznemiravam...

Citat:
Range_lookup Logička vrednost koja određuje da li želite da VLOOKUP pronađe vrednost koja se potpuno ili približno podudara zadatoj vrednosti:

• Ako je vrednost TRUE ili je izostavljena, funkcija vraća vrednost koja se potpuno ili približno podudara. Ako se potpuno podudarna vrednost ne pronađe, kao rezultat će biti vraćena sledeća vrednost po veličini koja je manja od vrednosti lookup_value.
Vrednosti u prvoj koloni argumenta table_array moraju se sortirati po rastućem redosledu; u suprotnom se može desiti da funkcija VLOOKUP ne dâ tačnu vrednost. Više informacija potražite u članku Sortiranje podataka.

• Ako je vrednost FALSE, VLOOKUP će pronaći samo potpuno podudarnu vrednost. U ovom slučaju nije potrebno da se vrednosti u prvoj koloni argumenta table_array sortiraju. Ako se u prvoj koloni argumenta table_array nalaze dve ili više vrednosti koje se podudaraju sa vrednošću lookup_value, koristiće se prva pronađena vrednost. Ako se ne pronađe istovetna vrednost, dobija se greška #N/A.
[ BrackoNe @ 08.10.2007. 13:36 ] @
Evo još ovo, i gotovo... :)
Okačiću završeno izdanje, kada još ovo ispravim, pa ako ima neko sličan problem - može da iskoristi.

Ovo je formula koju mi je dao Peca: =INDEX(VremeOdlaznaLinija; MATCH(F18;VremeOdlaznaLinija;-1 )), ona je u redu. Sve super radi.
Uključio sam mogućnost tolerancije. Ako u narednih 20 minuta nema autobusa, da mi ispiše prvi prethodni polazak.
Vršljao sam po kodu i piše da ako stavim bez ovog „minus 1“ i ostane samo „1“ da bi formula trebala to da uradi - da mi da prethodni podatak, ali imam N/A?!

Ovo mi kaže Excel:


Baza je popunjena, i ima vrednosti ispred te koja piše. Što znači da može da ispiše i manju vrednost, ali neće... Grr... :D
[ Jpeca @ 08.10.2007. 13:53 ] @
Nažalost nije tako jednostavno. Ukoliko je 1 lista mora da bude sortirana rastuće, a za -1 opadajuće.

Ako hoćeš da nađeš prvi manji od onog što si našao (u slučaju kad nije zadovoljen kriterijum) možeš koristiti funkciju OFFSET koja daje vrednost ćelije za određeni broj redova/kolona u odnosu na posmatranu:
Code:
=OFFSET(INDEX(VremeOdlaznaLinija, MATCH(D18,VremeOdlaznaLinija,-1 )),1,0)


[Ovu poruku je menjao Jpeca dana 08.10.2007. u 15:10 GMT+1]