Tento článek popisuje, jak použít funkci SVYHLEDAT v situaci, kdy máme více zdrojových tabulek a dopředu nevíme, která se má použít. (Pokud vás zajímá návod na propojování dvou tabulek podle více klíčových sloupců, klikněte sem.)

Např. tady potřebujeme do růžové oblasti vlevo přiřadit ceny různých položek.. Ty jsou ale ne v jednom, ale ve dvou (třech, čtyřech… ) cenících.

puvodni-tabulka

Pokud by ceník byl jeden, je to hračka – použijeme běžnou funkci SVYHLEDAT / VLOOKUP.

Pro více ceníků budeme postupovat trochu jinak. Nejprve zkusíme najít položku v prvním, a pokud se nenajde (výsledek bude chyba), zkusíme druhý ceník, a pokud se zase nenajde… atd.

Kromě SVYHLEDAT použijeme funkci IFNA. Ta nahradí případné chybné hodnoty něčím jiným – tedy pokusem najít ve druhé tabulce. (Funkce IFNA funguje podobně jako IFERROR – jen za chybu považuje pouze chybu #N/A a nikoliv ostatní chyby. Pokud byste ale měli starou verzi Excelu bez funkce IFNA, použijte IFERROR…)

Pokud by položky byly pouze z prvního ceníku zvířat, zadali bychom funkci takto:

  • =SVYHLEDAT(A:A;D:E;2;0)

svyhledat

Protože jsou ale ceníky dva, zadáme vzorec takto:

  • =IFNA(SVYHLEDAT(A:A;D:E;2;0);SVYHLEDAT(A:A;G:H;2;0))

dvojita-svyhledat

Tedy “když první SVYHLEDAT v tabulce D:E skončí chybou, zkus SVYHLEDAT v tabulce G:H”.

Pokud by tabulek bylo více, můžeme zapisovat další a další vrstvy:

  • =IFNA(IFNA(SVYHLEDAT(A:A;D:E;2;0);SVYHLEDAT(A:A;G:H;2;0));SVYHLEDAT(..))

1 Komentář

  1. Lámu si marně hlavu s vnořováním kombinace těchto funkcí. V mém případě se vyhledává v F18, tabulky jsou A:B, C:D, E:F, G:H, I:J. Logicky jsem to zapsal takto, ale evidentně je to špatně. =IFERROR(SVYHLEDAT(F18;Zaměření!A:B;2;0);SVYHLEDAT(F18;Zaměření!C:D;2;0));(SVYHLEDAT(F18;Zaměření!E:F;2;0);SVYHLEDAT(F18;Zaměření!G:H;2;0));(SVYHLEDAT(F18;Zaměření!I:J;2;0))

  2. Vy ty funkce dáváte za sebe – musíte je ale dávat všechny postupně DO sebe…

  3. No trvalo to, než mi došla logika vnořování, ale už to běhá. Nicméně nakonec těch tabulek k vyhledávání bude 17 a ten vzorec bude šílený. Neexistuje ještě nějaká jednodušší metoda?

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář