Nejspíše někdy používáte funkci VLOOKUP (SVYHLEDAT). Je to funkce velmi užitečná, má ale jednu nevýhodu, na kterou občas narazíte.

Příklad

V následujícím příkladu potřebuji doplnit k zaměstnancům jméno jejich nadřízeného. Na základě toho, do kterého oddělení zaměstnanec patří - protože každé oddělení má svého jednoho šéfa.

Mohl bych použít VLOOKUP. Ale to by musely sloupečky v tabulce vpravo mít obrácené pořadí. Funkce VLOOKUP totiž vyžaduje, aby v tabulce, na kterou se odkazuji, bylo v prvním sloupci to, podle čeho se obě tabulky propojují. Jinými slovy - tabulky jsou propojené přes název oddělení, proto v tabulce vpravo musí být sloupec s názvy oddělení vlevo od jména šéfa.

Návod

Sloupce bych mohl prohodit, ale ne vždy je to možné.

Proto použiji kombinaci funkcí INDEX a MATCH (POZVYHLEDAT), která mě toto umožní. Zápis do buňky C2, který pak roztáhnu, bude vypadat takto:

=INDEX(E:E;MATCH(B2;F:F;0))

Logika je taková, že:

  • Nejprve funkce MATCH zjistí, kolikátá je určitá hodnota ve sloupci. V našem případě zjistí, že hodnota "HR" je ve sloupci F na druhém místě. Výstupem vnořené funkce je tedy dvojka.
  • Pak funkce INDEX zjistí, co je na tomto místě v určitém sloupci. V našem případě zjistí, že na druhém místě je ve sloupci E hodnota "Hanka". A výstupem funkce, čili přiřazením nadřízeného pro Adélu, je správně "Hanka".

Vzorec roztáhnu a mám ošetřené všechny hodnoty / všechny zaměstnance.

match_index_priklad_hotovy

Upozornění

Aby tato kombinace funkcí fungovala, musí být hodnoty v prohledávaném sloupci seřazené podle abecedy. Jinak se výsledky tváří, že fungují, ale nefungují.

1 Komentář

  1. Dobrý den, ráda bych Vás požádala o radu.
    Pracuji v Excelu, mám téměř 1 milion řádků. Mám dva sloupce, s tím, že k určitým hodnotám potřebuji vyhledat ze druhého sloupce daná čísla (je jich víc a nelze používat vlooup). Proto používám následující funkci, která přesně splňuje co potřebuji vyhledat, ovšem funguje jen na malém množství dat, ve velkém množství se seká, což je můj případ.. IFERROR(INDEX($A$2:$A$20;POZVYHLEDAT(0;COUNTIF($B$1:B1;$A$2:$A$20);0));”No more items”)

    Nešlo by nějak můj problém řešit v kontingenční tabulce??? potřebovala bych vždy, když mi to pro danou bunku vyhledá hodnotu, tak aby mi jí to dalo do nového sloupce. respektive, pro jednu bunku mi to vyhledá např. jen jednu hodnotu, pro jinou např. 5 hodnot. A já si následně potřebuji tyto hodnoty filtrovat atd.

    Děkuji velice!!!

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář