
Obecný vzorec
=LOOKUP(B5,minimums,results)
souhrn
Chcete-li vyhledat hodnoty mezi dvěma hodnotami a vrátit odpovídající výsledek, můžete použít funkci VYHLEDAT a seřazenou tabulku. V zobrazeném příkladu je vzorec v C5:
=LOOKUP(B5,mins,results)
kde „min“ je pojmenovaný rozsah E5: E9 a „results“ je pojmenovaný rozsah G5: G9.
Vysvětlení
Funkce LOOKUP provede přibližné vyhledání shody v jednom rozsahu a vrátí odpovídající hodnotu v jiném.
Ačkoli tabulka v tomto příkladu obsahuje maximální i minimální hodnoty, musíme použít pouze minimální hodnoty. Je to proto, že když LOOKUP nemůže najít shodu, bude odpovídat další nejmenší hodnotě. VZHLED je nakonfigurován takto:
- Hodnoty vyhledávání pocházejí ze sloupce B.
- Vyhledávací vektor se zadává jako pojmenovaný rozsah „min“ (E5: E9)
- Výsledný vektor se zadává jako pojmenovaný rozsah „výsledky“ (G5: G9)
LOOKUP se chová takto:
- Pokud LOOKUP narazí na přesnou shodu ve vyhledávacím vektoru, vrátí se odpovídající hodnota ve vektoru výsledků.
- Pokud není nalezena žádná přesná shoda, funkce LOOKUP projde vyhledávacím vektorem, dokud nenajde větší hodnotu, poté „krok zpět“ na předchozí řádek a vrátí výsledek.
- Pokud je vyhledávací hodnota větší než největší hodnota ve vyhledávacím vektoru, funkce LOOKUP vrátí výsledek spojený s poslední hodnotou ve vyhledávacím vektoru.
Poznámka: hodnoty ve vyhledávacím vektoru musí být seřazeny vzestupně.
Doslova mezi
Ačkoli výše uvedený příklad funguje dobře a ve vyhledávací tabulce skutečně vyhledá hodnotu „mezi“ min a max, ve skutečnosti používá pouze minimální hodnoty. S pojmenovaným rozsahem „maxs“ pro maximální hodnoty můžete napsat doslovnou verzi vzorce takto:
=LOOKUP(2,1/((B5>=mins)*(B5<=maxs)),results)
Tato verze vrací přidruženou hodnotu ve vektoru výsledků, když je hodnota v B5 doslova mezi minimální a maximální hodnotou v daném řádku. V případě duplikátů vrátí tento vzorec poslední shodu. Vysvětlení logiky je zde.