
Üldine valem
=LOOKUP(2,1/(item="hat"),price)
Kokkuvõte
Loendis oleva toote uusima hinna otsimiseks järjestatud nii, et viimased üksused oleksid viimased, võite kasutada funktsiooni LOOKUP põhinevat valemit. Näites on valem G7-s järgmine:
=LOOKUP(2,1/(item=F7),price)
kus üksus on nimega vahemik B5: B12, on hind nimega vahemik D5: D12 ja andmed on järjestatud kuupäeva järgi kasvavas järjestuses.
Selgitus
Funktsioon LOOKUP eeldab, et andmed on sorteeritud, ja teeb alati ligikaudse vaste. Kui otsingu väärtus on suurem kui kõik otsingumassiivi väärtused, on vaikekäitumine "tagasi langemine" eelmise väärtuse juurde. See valem kasutab seda käitumist, luues massiivi, mis sisaldab ainult 1-sid ja vigu, ja seejärel otsib teadlikult väärtust 2, mida kunagi ei leita.
Esiteks hinnatakse seda väljendit:
item=F7
Kui F7 sisaldab "sandaale", on tulemuseks massiivi TÕENE ja VÄÄR väärtus, mis on järgmine:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
See massiiv on esitatud jagajana 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Matemaatikaoperatsioon sunnib TÕENE ja VALE väärtused automaatselt väärtusele 1 ja 0, nii et tulemuseks on järgmine selline massiiv:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
tagastatakse otsingu vektorargumendina otse funktsiooni LOOKUP.
Pange tähele, et massiiv sisaldab ainult kahte unikaalset väärtust: jagamine nullveaga (# DIV / 0!) Ja arv 1.
LOOKUP otsib massiivi väärtust 2, ignoreerides vea väärtusi. Kui ei leia 2, langeb see tagasi otsingu vektori viimasele 1-le, 7. kohale. Seejärel tagastab LOOKUP tulemusvektori seitsmenda elemendi (nimega vahemik "hind") väärtuse 15.
Kui soovite lisateavet selle kohta, kuidas tahtlikult otsida väärtust, mis kunagi ei ilmu, lugege BigNumi kohta.