SVYHLEDAT je nejpoužívanější vyhledávací funkce v Excelu — a zároveň nejčastější zdroj #N/A chyb. Pojďme si ji projít tak, abyste ji už nikdy nepoužili špatně.
Syntaxe a parametry
SVYHLEDAT(co_hledat; kde_hledat; sloupec; [typ_porovnání]). První sloupec tabulky musí obsahovat hledanou hodnotu, jinak funkce vrátí #N/A.
=SVYHLEDAT(A2; Cenik!$A$2:$D$500; 3; NEPRAVDA)Nejčastější chyba: chybějící NEPRAVDA
Bez čtvrtého parametru Excel hledá přibližnou shodu — což u neseřazených dat vrací nesmyslné výsledky.
"tok-c">' ŠPATNĚ (přibližná shoda):
=SVYHLEDAT(A2; Cenik!A:D; 3)
"tok-c">' SPRÁVNĚ (přesná shoda):
=SVYHLEDAT(A2; Cenik!A:D; 3; NEPRAVDA)Ošetření #N/A pomocí IFERROR
Pokud hodnota v tabulce není, SVYHLEDAT vrátí #N/A. Obal ji do IFERROR.
=IFERROR(SVYHLEDAT(A2; Cenik!A:D; 3; NEPRAVDA); "Nenalezeno")Kdy raději XLOOKUP
- Hledáte v libovolném sloupci (nejen v prvním).
- Potřebujete vrátit více sloupců najednou.
- Chcete vlastní hodnotu místo #N/A bez zanořeného IFERROR.
=XLOOKUP(A2; Cenik[Kod]; Cenik[Cena]; "Nenalezeno")SVYHLEDAT ve VBA — programatické vyhledávání
V makru můžete SVYHLEDAT volat přes WorksheetFunction. Pro velké tabulky je ale rychlejší použít Match + Index nebo Dictionary.
Sub HledejCenu()
Dim cena As Variant
On Error Resume Next
cena = Application.WorksheetFunction.VLookup( _
Range("A2").Value, _
Sheets("Cenik").Range("A:D"), _
3, False)
On Error GoTo 0
If IsEmpty(cena) Or IsError(cena) Then
Range("B2").Value = "Nenalezeno"
Else
Range("B2").Value = cena
End If
End SubČasto kladené dotazy
Proč mi SVYHLEDAT vrací #N/A?+
Nejčastěji proto, že hledaná hodnota v tabulce skutečně není, nebo má jiný datový typ (text vs. číslo) či mezery na okraji. Zkontrolujte =A2=Cenik!A2.
Může SVYHLEDAT hledat vlevo od klíčového sloupce?+
Ne. SVYHLEDAT vyhledává vždy v prvním sloupci tabulky. Pro vyhledávání vlevo použijte XLOOKUP nebo INDEX/POZVYHLEDAT.
Je XLOOKUP dostupný ve všech verzích Excelu?+
Pouze v Excel pro Microsoft 365 a Excel 2021+. Ve starších verzích (2019, 2016) musíte použít SVYHLEDAT nebo INDEX/POZVYHLEDAT.
Jak SVYHLEDAT zrychlit u velkých tabulek?+
Hledejte v co nejmenším rozsahu (ne celý sloupec A:A), používejte tabulky (Ctrl+T) a pokud vyhledáváte stejný klíč mnohokrát, zvažte přesun logiky do Power Query nebo do VBA s Dictionary.
Autor
Dušan Kahánek
VBA / Power BI / Microsoft 365 specialista
