[ Ivek33 @ 14.08.2006. 16:45 ] @
Radim na nekim dodatnim uputama primjera formula i funkcija ali uz objašnjenja riječima:

Možete li ti možda pojasniti ovu formulu riječima :
{=INDEX(B1:B9;MAX(IF(LEN(B1:B9)>0;ROW(B1:B9);0));1)}

Htio bih vidjeti iskustva drugih i objašnjenja riječima formule i ugniježđenih funkcija u njima.

Ovo je iz datoteke Zadnji unos.xls sa teme
http://www.elitesecurity.org/t203519-Excel-uporedjivanje
[ Ivek33 @ 16.08.2006. 12:23 ] @
No, da bi čovjek riječi rekao.

Ili su svi na godišnjem ili ne žele gubiti vrijeme na ovakve stvari?
[ BiloKoje @ 16.08.2006. 13:09 ] @
{=INDEX(B1:B9;MAX(IF(LEN(B1:B9)>0;ROW(B1:B9);0));1)}


Nisam na odmoru, na(moju)žalost.

Ovo bi bilo, odprilike, vrati najduži string iz opsega b1:b9. ?.
[ Ivek33 @ 16.08.2006. 20:59 ] @
Citat:
BiloKoje: Ovo bi bilo, odprilike, vrati najduži string iz opsega b1:b9. ?.


eh...ako ovako objasnim, mogao bi me neko gađati ciglom ;-)

Nisam mislio na to veš detaljnije objasniti što koja funkcija radi u formuli.

TNX za javljanje, no ni ja nisam na odmoru :-(
[ elmagio @ 19.08.2006. 23:54 ] @
Evo Ivek ja sam ti bio na odmoru. A ovu formulu su uzeo od mene? :)


INDEX ti pretražuje po kriteriju nešto slično kao i VLOOKUP
MAX ti traži najveći broj u nekome rasponu
LEN ti prebrojava koliko znakova ima u kojoj čeliji
ROW ti vraća ćeliju u kojem se nalazi nešto za što si postavio kriterije u INDEX i MAX
[ Ivek33 @ 20.08.2006. 15:47 ] @
Citat:
elmagio: Evo Ivek ja sam ti bio na odmoru. A ovu formulu su uzeo od mene? :)


..da uzeo sam je iz tvog primjera Zadnji unos.xls kao što sam i naveu odmah na početku. Pisao sam ti i na PP a uz to još nekim dečkima koji su na području excela aktivni.

Meni je ajmo reći 70% jasno što koja funkcija radi, onih 30% nisam siguran. Na kraju krajeva namučio sam se da ih sve sa primjerima postavim na web. http://www.ic.ims.hr/office/excel2003/excel38.html

No objašnjenje koje bih ja želio napisati u nekim slijedećim primjerima je poput ovoga ( da bi posjetilac lakše shvatio )

Aku u rasponu ćelija od B1:B9 postoji vrijednost ( INDEX ) i ako je ona veća od nule ( IF ), uzmi zadnje napisanu vrijednost tj. iz zadnjeg reda ( ROW ) iz tog raspona i nju upiši kao rezultat.

E sada me tu zbunjuje zašto si koristio LEN, koja je svrha prebrojavanje znakova?
Koja je svrha MAX ako nije bitna maximalna vrijednost već zadnje upisana vrijednost.

Malo me zbunila veličina formule i ugnjžđavanje funkcija baš na tom primjeru
http://www.elitesecurity.org/t203519-Excel-uporedjivanje
[ elmagio @ 20.08.2006. 16:10 ] @
Kao prvo nisam ni skužio da si napisao gore da si uzeo iz mog primjera. Izvinjavam se
Kao drugo kako nisam bio kod kuće pa nisam ni vidio poruke. Opet se izvinjavam


A sada idemo dalje.
LEN sam ti uporebljavao da broji koliko čelija imaju unose tj. da nisam stavio to onda bi uvijek vraćao deveti unos?
MAX nije kao u običnim formulama ovdje ga koristiš da uzmeš zadnju čeliju u unosu. zato imaš ROW iza.





[Ovu poruku je menjao elmagio dana 21.08.2006. u 11:07 GMT+1]
[ Ivek33 @ 21.08.2006. 14:58 ] @
Citat:
elmagio: e.
LEN sam ti uporebljavao da broji koliko čelija imaju unose tj. da nisam stavio to onda bi uvijek vraćao deveti unos?
MAX nije kao u običnim formulama ovdje ga koristiš da uzmeš zadnju čeliju u unosu. zato imaš ROW iza.


Ok je sve ovo,
Daj sada probaj svojim riječima sročiti tekstualno objašnjenje poput ovoga mog u gornjem predzadnjem postu.
[ Ivek33 @ 11.09.2006. 21:35 ] @
Što ?
zar nitko nema hrabrosti dati svoj prijedlog ili mišljenje.
[ Jpeca @ 12.09.2006. 08:11 ] @
Kad treba da objasnim ovako složene formule ja ih prvo raščlanim na delove - objasnim pojadinačne delove, pa onda čuvena rečenica: To možemo da iskombinujemo u jednu složenu formulu ...
Dakle ajde da pokušam:


Funkcijom IF(LEN(B1)>0;ROW(B1);0) vraćamo broj reda ukoliko ćelija B1 nije prazna, odnosno 0 ukoliko je ćelija B1 prazna. Tako isto možemo uraditi za ćelije B2, B3 itd do poslednje ćelije iz opsega lista B9. Sada, pošto nam treba poslednji red u kome je nešto upisano (tj. ćelija iz opsega nije prazna) iskoristićemo funkciju MAX i od svih dobijenih vrednosti naći maksimalnu vrednost. Da izbegnemo korišćenje međurezultata možemo koristiti formulu apliciranu na niz vrednosti (array formulu)
Code:

= {MAX(IF(LEN(B1:B9)>0;ROW(B1:B9);0)}

U ovoj formuli IF će se izvršiti za svaku vrednosti iz opsega B1:B9, pa smo tako samo jednom formulom dobili broj poslednjeg popunjenog reda u listi vrednosti B1:B9.

Sad da bi dobili vrednost ćelije iz ovog reda u oblasti B1:B9 koristimo funkciju INDEX koja vraća vrednost ćelije za zadatu referencu. Ukoliko je broj reda r tada:
Code:

=INDEX(B1:B9; r;1)  

vraća vrednost ćelije iz opsega B1:B9 u preseku reda r i kolone 1.

Na kraju ove dve formule možemo iskombinovati i dobijamo:

Code:

= {INDEX(B1:B9;MAX(IF(LEN(B1:B9)>0;ROW(B1:B9);0);1)}


E sad kad smo već kod objašnjenja formula:
Code:

{=SUM(1/COUNTIF(A2:A100;A2:A100))}

daje broj jedinstvenih vrednosti u opegu A2:A100 - ali kako ja ne razumem - umeli neko da objasni ? (izvor www.praktikum.co.yu
[ Ivek33 @ 12.09.2006. 13:07 ] @
Citat:
Jpeca: Kad treba da objasnim ovako složene formule ja ih prvo raščlanim na delove - objasnim pojadinačne delove, pa onda čuvena rečenica: To možemo da iskombinujemo u jednu složenu formulu ...

...........svaka čast @Jpeca, TNX
to se zove objašnjavanje.
No volio bih čuti i druge, ako imaju vremena i mašte.