Zpět na blog
Excel funkce 23. června 2025 9 min čtení

Excel funkce SVYHLEDAT aneb, jak najít hodnotu dle kritéria

Kompletní průvodce funkcí SVYHLEDAT (VLOOKUP). Syntaxe, příklady, časté chyby a kdy raději sáhnout po XLOOKUP nebo INDEX/POZVYHLEDAT.

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.

Základní vzorecExcel formula
=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.

Špatně vs. správněExcel formula
"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.

Čistý výstup bez chybExcel formula
=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 — moderní náhradaExcel formula
=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.

Volání SVYHLEDAT z VBAVBA
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