Vzorec aplikace Excel: Vyhledávání vlevo pomocí VLOOKUP -

Obecný vzorec

=VLOOKUP(A1,CHOOSE((1,2),range2,range1),2,0)

souhrn

Chcete-li použít VLOOKUP k provedení vyhledávání vlevo, můžete pomocí funkce CHOOSE změnit pořadí vyhledávací tabulky. V zobrazeném příkladu je vzorec v F5:

=VLOOKUP(E5,CHOOSE((1,2),score,rating),2,0)

kde skóre (C5: C9) a hodnocení (B5: B9) jsou pojmenované rozsahy.

Vysvětlení

Jedním z klíčových omezení funkce VLOOKUP je, že může vyhledávat pouze hodnoty napravo. Jinými slovy musí sloupec, který obsahuje vyhledávací hodnoty, sedět nalevo od hodnot, které chcete pomocí VLOOKUP načíst. Neexistuje žádný způsob, jak toto chování přepsat, protože je pevně zapojeno do funkce. Výsledkem je, že při normální konfiguraci neexistuje způsob, jak použít VLOOKUP k vyhledání hodnocení ve sloupci B na základě skóre ve sloupci C.

Jedním řešením je restrukturalizovat samotnou vyhledávací tabulku a přesunout vyhledávací sloupec nalevo od vyhledávacích hodnot. To je přístup přijatý v tomto příkladu, který používá reverzní hodnocení a výběr funkce CHOOSE takto:

CHOOSE((1,2),score,rating)

Normálně se CHOOSE používá s jediným číslem indexu jako prvním argumentem a zbývající argumenty jsou hodnoty, ze kterých si můžete vybrat. Zde však zadáme volbu konstanty pole pro indexové číslo obsahující dvě čísla: (1,2). V podstatě žádáme o výběr první i druhé hodnoty.

Hodnoty jsou v příkladu uvedeny jako dva pojmenované rozsahy: skóre a hodnocení. Všimněte si však, že tyto rozsahy poskytujeme v obráceném pořadí. Funkce CHOOSE vybere oba rozsahy v uvedeném pořadí a vrátí výsledek jako jedno pole takto:

(5,"Excellent";4,"Good";3,"Average";2,"Poor";1,"Terrible")

CHOOSE vrátí toto pole přímo do VLOOKUP jako argument pole tabulky. Jinými slovy, CHOOSE přináší do VLOOKUP takovou vyhledávací tabulku:

Pomocí vyhledávací hodnoty v E5 vyhledá VLOOKUP shodu uvnitř nově vytvořené tabulky a vrátí výsledek z druhého sloupce.

Změna pořadí s konstantou pole

V zobrazeném příkladu měníme pořadí vyhledávací tabulky obrácením „hodnocení“ a „skóre“ uvnitř vybrané funkce. Mohli bychom však místo toho použít konstantu pole k takovému pořadí:

CHOOSE((2,1),rating,score)

Výsledek je úplně stejný.

S INDEXEM a ZÁPASEM

I když výše uvedený příklad funguje dobře, není to ideální. Za prvé, většina průměrných uživatelů nechápe, jak vzorec funguje. Přirozenějším řešením je INDEX a MATCH. Zde je ekvivalentní vzorec:

=INDEX(rating,MATCH(E5,score,0))

Ve skutečnosti je to dobrý příklad toho, jak je INDEX a MATCH flexibilnější než VLOOKUP.

Zajímavé články...