
Všeobecný vzorec
=LOOKUP(B5,minimums,results)
Zhrnutie
Ak chcete vyhľadať hodnoty medzi dvoma hodnotami a vrátiť zodpovedajúci výsledok, môžete použiť funkciu LOOKUP a zoradenú tabuľku. V zobrazenom príklade je vzorec v C5:
=LOOKUP(B5,mins,results)
kde „min“ je pomenovaný rozsah E5: E9 a „výsledky“ je pomenovaný rozsah G5: G9.
Vysvetlenie
Funkcia LOOKUP vykoná približné vyhľadanie zhody v jednom rozsahu a vráti zodpovedajúcu hodnotu v inom rozsahu.
Aj keď tabuľka v tomto príklade obsahuje maximálnu aj minimálnu hodnotu, musíme použiť iba minimálne hodnoty. Je to tak preto, lebo keď LOOKUP nenájde zhodu, bude zodpovedať najbližšej najmenšej hodnote. LOOKUP je nakonfigurovaný takto:
- Hodnoty vyhľadávania pochádzajú zo stĺpca B.
- Vyhľadávací vektor sa zadáva ako pomenovaný rozsah „min“ (E5: E9)
- Vektor výsledku sa zadáva ako pomenovaný rozsah „výsledky“ (G5: G9)
LOOKUP sa správa takto:
- Ak LOOKUP vo vyhľadávacom vektore narazí na presnú zhodu, vráti sa zodpovedajúca hodnota vo vektore výsledkov.
- Ak nenájdete presnú zhodu, funkcia LOOKUP bude prechádzať vyhľadávacím vektorom, kým nenájdete väčšiu hodnotu, potom sa vráti o krok späť k predchádzajúcemu riadku a vráti výsledok.
- Ak je vyhľadávacia hodnota väčšia ako najväčšia hodnota vo vyhľadávacom vektore, funkcia LOOKUP vráti výsledok spojený s poslednou hodnotou vo vyhľadávacom vektore.
Poznámka: hodnoty vo vyhľadávacom vektore musia byť zoradené vzostupne.
Doslova medzi
Hoci vyššie uvedený príklad funguje dobre a efektívne vyhľadá hodnotu „medzi“ min a max vo vyhľadávacej tabuľke, použije skutočne iba minimálne hodnoty. S pomenovaným rozsahom „maxs“ pre maximálne hodnoty môžete napísať doslovnú verziu vzorca takto:
=LOOKUP(2,1/((B5>=mins)*(B5<=maxs)),results)
Táto verzia vráti príslušnú hodnotu vo vektore výsledkov, keď je hodnota v B5 doslova medzi minimálnou a maximálnou hodnotou v danom riadku. V prípade duplikátov vráti tento vzorec poslednú zhodu. Vysvetlenie logiky je tu.