
Splošna formula
=LOOKUP(2,1/(item="hat"),price)
Povzetek
Če želite poiskati najnovejšo ceno za izdelek na seznamu, razvrščene tako, da se zadnji izdelki pojavijo zadnji, lahko uporabite formulo, ki temelji na funkciji LOOKUP. V vzorčni oddaji je formula v G7:
=LOOKUP(2,1/(item=F7),price)
kjer je postavka imenovani obseg B5: B12, cena je imenovani obseg D5: D12, podatki pa so razvrščeni naraščajoče po datumu.
Pojasnilo
Funkcija LOOKUP predpostavlja, da so podatki razvrščeni in se vedno približno ujemajo. Če je vrednost iskanja večja od vseh vrednosti v iskalnem polju, je privzeto vedenje, da se "vrne" na prejšnjo vrednost. Ta formula to vedenje izkorišča tako, da ustvari matriko, ki vsebuje samo enote 1 in napake, nato pa namerno poišče vrednost 2, ki je nikoli ne bo mogoče najti.
Najprej se ovrednoti ta izraz:
item=F7
Ko F7 vsebuje "sandale", je rezultat vrsta TRUE in FALSE vrednosti, kot je ta:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Ta matrika je na voljo kot delitelj na 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Matematična operacija samodejno prisili vrednosti TRUE in FALSE na 1s in 0s, zato je rezultat še ena matrika:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
vrnil neposredno v funkcijo LOOKUP kot argument vektorja iskanja.
Upoštevajte, da matrika vsebuje samo dve unikatni vrednosti: napaka deljenja z ničlo (# DIV / 0!) In številka 1.
LOOKUP išče matriko za vrednost 2, pri čemer ne upošteva vrednosti napak. Ko ne najdem 2, se vrne na zadnjo 1, na položaj 7 v iskalnem vektorju. LOOKUP nato vrne 7. element v vektorju rezultatov (imenovani obseg "cena"), vrednost 15.
Če želite prebrati več o konceptu namernega iskanja vrednosti, ki se ne bo nikoli pojavila, preberite o BigNum.