[ mojeKorIme @ 08.01.2013. 14:01 ] @
Pozdrav.. kako napraviti formulu u kojoj će se ispisati podatak odabran iz druge tablice..da bira iz tablice vrijednost na osnovu ideksa koji se poklapa
sa nekoliko vrijednosti koje su jednake (sto sam uspio) ali trebam i uslov da se nesto nalazi izmedju max i min vrijednosti koje su u istoimenim kolonama te tabele iz koje se bira..

Code:

=INDEX(tablica!$B$1:$B$100;MATCH(1;(C5096=tablica!$A$1:$A$2971)*(D5096=tablica!$C$1:$C$2971)*(F5096=tablica!$E$1:$E$2971);0))


molim Vas za pomoc!
[ 3okc @ 08.01.2013. 14:30 ] @
Ne valja ti ta formula: čitaš iz tablice sa indeksom od 1:100 a tražiš rezultate u opsegu od 1:2971!

Što se tiče provere, da li je nešto u opsegu MIN/MAX možeš da vidiš sa AND, ovako:
Code:
=AND(C5096>=MIN(tablica!$A$1:$A$2971);C5096<=MAX(tablica!$A$1:$A$2971))

ili sa MEDIAN, ovako:
Code:
=C5096=MEDIAN(C5096;MIN(tablica!$A$1:$A$2971);MAX(tablica!$A$1:$A$2971))
[ mojeKorIme @ 08.01.2013. 16:22 ] @
hvala ti na odgovoru.. nebitan mi je opseg.. zelim sljedece..za tabelu A

sifra min max vrijednost
1 1 2 0
1 2 3 1
1 4 10 2
2
2
2
.
.
.

zelim odabrati "vrijednost" ako je kolona sifra = npr. i izmedju min i max.. nadam se da sam uspio objasniti
[ Jpeca @ 09.01.2013. 14:20 ] @
Postoji više načina da se ovo uradi, neka rešenja su bila i na forumu. Najlakše za razumevanje i najpreglednije je da se formira pomoćna kolona sa kombinovanim uslovom (npr. AND kako je 3okc naveo) i onda na osnovu tražiš True u ovoj koloni.

Naravno postoje rešenja i pomoću jedne formule, bez pomoćne kolone. Možeš da koristiš SUMPRODUCT, kombinaciju INDEX-MATCH kao matričnu formulu. Za ovu priliku rešenje koje sam skoro video "matrični" VLOOKUP

Uzmimo da je tvoja tabela sa kolonama (Šifra, Min, Max, Vrednost) u opsegu A2:D13 i neka je šifra koja se zadaje u I1. Formula bi mogla da glasi

Code:
=LOOKUP(1;1/(A2:A13=I1)/(D2:D13>=B2:B13)/(D2:D13<=C2:C13);(D2:D13))


Ovde se lista za Lookup formira tako što se 1 deli sa nizom True/False vrednosti za svaki od uslova
A2:A13=I1 - šifra jednaka zadatoj šifri
D2:D13>=B2:B13 - vrednost veća ili jednaka min
D2:D13<=C2:C13 - vredmpst veža ili jednaka max

Kako su true/false ustvari 1 ili 0 rezlutujuća lista imaće članove 1 kad su svi uslovi zadovoljeni odnosno #N/A kad neki uslov nije zadovoljen

Tražimo 1 u toj listi, a vektor čije vrednosti vraćamo je D2:D13. U slučaju više vrednosti koje zadovoljavaju uslov rezultat će biti poslednja od njih
[ 3okc @ 12.01.2013. 14:39 ] @
@Jpeca: Hvala za predloženo rešenje, LOOKUP mi je jedna od najintrigantnijih formula! Zadovoljstvo mi je da čitam primere u kojima može da radi s obzirom da mi se čini da nisam još u potpunosti usvojio logiku po kojoj 'funkcioniše'.

Nikako je ne bih preporučivao početnicima tj svima koji se smatraju manje iskusnima! -sem ovako u formi gotovog rešenja, je li. Malo mi je zaparalo uši ono poređenje sa VLOOKUP: mislim da je bolje ne dovoditi ih u vezu znajući da manje iskusni imaju već problem i sa VLOOKUP, dok je ova druga nešto sasvim drugačije; lako ih je pomešati zbog sličnog naziva, pa eto da ne bismo doprinosili konfuziji.

Najvažnija osobina LOOKUP je da zanemaruje greške, preskače ih. Tj, da bi LOOKUP vratila grešku, neoph. je da onda sve instance sadrže grešku. Inače, vraća poslednje nađeni rezultat. Druga je, pomenuta, da normalno radi sa opsegom, kao i SUMPRODUCT, te je nije potrebno unositi sa Ctrl+Shift+Enter.

Upravo na osobini da trpi greške zasnivaju se rešenja u kojima se LOOKUP upotrebljava (pa tako i ovo @Jpecino). Naime, zbog toga ona recipročna vrednost iz logičkih iskaza/uslova: da bismo generisali nedozvoljeno deljenje nulom nad uslovima koji nisu ispunjeni.

Takođe, zbog toga i ono dosledno deljenje između logičkih iskaza -sasvim korektno sa aritmetičke strane, ali za Bulovu algebru nije bitno da li pišemo 1*1 ili 1/1, to postaje bitno tek kada se uvede manipulisanje greškom! i to je ono što je izuzetno 'opasno' jer potpuno izvrće konvencionalnu logiku pri računanju (gde se vrednuje izbegavanje grešaka).

Ovo se može demonstrirati na preth. primeru ako podesimo logičke iskaze tako, da sada 1 izazove grešku a da je traženi rezultat onda kada imamo 0.

Sledeća formula bi trebala da radi identično: sve je izvrnuto a LOG je upotrebljen da bi u finalu od 'jedinice' pravila traženu 'nulu' a od 'svega ostalog' - grešku.
Code:

=LOOKUP(0;LOG(1-(A2:A13<>I1)-(D2:D13<B2:B13)-(D2:D13>C2:C13));D2:D13)
[ Jpeca @ 14.01.2013. 09:58 ] @
3okc potupuno si u pravu. Ovo gore je sa VLOOKUP i LOOKUP je zaista konfuzno. Hteo sam da kazem da je to verzija LOOKUP
koja radi sa nizovima, za razliku od druge variajnte koja radi sa opsegom. Medjutim, pošto sam pre toga razmišljao da li može da se reši sa VLOOKUP, izgleda da je to uticalo na omašku koja je uzrok konfuzije.