
Generička formula
=LOOKUP(2,1/(item="hat"),price)
Sažetak
Da biste potražili najnoviju cijenu proizvoda na popisu, poredanu tako da se najnovije stavke pojave posljednje, možete upotrijebiti formulu koja se temelji na funkciji LOOKUP. U primjeru emisije formula u G7 je:
=LOOKUP(2,1/(item=F7),price)
gdje je stavka imenovani raspon B5: B12, cijena je imenovani raspon D5: D12, a podaci se sortiraju uzlazno prema datumu.
Obrazloženje
Funkcija LOOKUP pretpostavlja da su podaci razvrstani i uvijek se približno podudaraju. Ako je vrijednost pregleda veća od svih vrijednosti u nizu pretraživanja, zadano ponašanje je "vraćanje" na prethodnu vrijednost. Ova formula iskorištava ovo ponašanje stvaranjem niza koji sadrži samo 1 i pogreške, a zatim namjerno traži vrijednost 2, koja nikada neće biti pronađena.
Prvo se ocjenjuje ovaj izraz:
item=F7
Kada F7 sadrži "sandale", rezultat je niz TRUE i FALSE vrijednosti poput ove:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Ovaj je niz naveden kao djelitelj na 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Matematička operacija automatski prisiljava vrijednosti TRUE i FALSE na 1s i 0s, pa je rezultat sljedeći niz poput ovog:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
vratio se izravno u funkciju LOOKUP kao argument vektora traženja.
Primijetite da niz sadrži samo dvije jedinstvene vrijednosti: pogrešku podijeli s nulom (# DIV / 0!) I broj 1.
LOOKUP pretražuje niz vrijednosti 2, zanemarujući vrijednosti pogreške. Ne pronalazeći 2, vraća se na posljednju 1, na poziciju 7 u tražilici. LOOKUP zatim vraća 7. stavku u vektoru rezultata (imenovani raspon "cijena"), vrijednost 15.
Da biste pročitali više o konceptu namjernog traženja vrijednosti koja se nikada neće pojaviti, pročitajte o BigNumu.