Excel je výkonný program, ktorý obsahuje viac ako 450 preddefinovaných funkcií a tisíce ďalších možností, ktoré môžete kombinovať do veľmi komplexných a efektívnych vzorcov.
Niekedy však potrebujete vykonať konkrétnu úlohu, na ktorú Excel nemá pripravenú vlastnú funkciu. Vývojári síce dokázali predvídať množstvo potrieb používateľov, no nie je možné pokryť úplne každý spôsob, akým môže niekto Excel používať.
Riešením sú používateľom definované funkcie, známe aj ako UDF. Ide už o stredne pokročilú až pokročilú prácu v Exceli, takže ak nevytvárate zložité tabuľky a výpočty, možno ich zatiaľ nebudete potrebovať. Naučiť sa však ich princíp môže byť veľmi užitočné.
V ďalších častiach sa pozrieme na to, kedy a prečo sa vlastné funkcie oplatí vytvárať a ako prebieha tvorba vzorcov v Exceli pomocou UDF.
Čo je používateľom definovaná funkcia (UDF)?
Používateľom definovaná funkcia (UDF) je vlastná funkcia, ktorú si v Exceli vytvoríte tak, aby vykonávala presne určenú operáciu alebo výpočet.
Podobne ako funkcia SUM prikáže Excelu sčítať hodnoty uvedené v zátvorkách, aj vlastná UDF funkcia môže Excelu zadať konkrétny výpočet alebo úlohu podľa vašich potrieb.
Ako používať vzorce v Exceli
Funkcie a vzorce výrazne zjednodušujú prácu v Exceli a pomáhajú spracovávať údaje rýchlejšie a efektívnejšie. Ak s programom ešte len začínate, najskôr sa oplatí zvládnuť základy Excelu a pochopiť, ako fungujú bunky, vzorce a základné funkcie.
Vzorce sa kombinujú s funkciami a vytvárajú presné postupy, pomocou ktorých môžete údaje zadávať, analyzovať a vyhodnocovať. Vždy, keď je to možné, sa oplatí používať opakovateľné vzorce a funkcie namiesto manuálnych výpočtov. Ušetríte tak čas a zároveň si postupne osvojíte ďalšie možnosti Excelu.

Ak napríklad potrebujete vypočítať priemer súboru údajov, nie je potrebné celý výpočet zapisovať ručne. Oveľa jednoduchšie je použiť funkciu AVERAGE, ktorá výpočet vykoná automaticky a zjednoduší aj celý vzorec.
Funkcie definované používateľom vám umožňujú vytvoriť vlastné funkcie obsahujúce presne tie vzorce a operácie, ktoré potrebujete na dosiahnutie konkrétneho výsledku.
Vlastnosti UDF funkcií
UDF sa od prednastavených funkcií v Exceli líšia tým, že ich môžete prispôsobiť presne svojim údajom a konkrétnym potrebám. Vstavané funkcie Excelu sú navrhnuté na všeobecné použitie, takže vyhovujú širokému okruhu používateľov, no pri špecifických úlohách nemusia vždy postačovať.
Medzi hlavné výhody používateľom definovaných funkcií patria:
UDF umožňujú vytvárať vlastné funkcie na konkrétne výpočty alebo operácie, ktoré nie sú pokryté vstavanými funkciami Excelu.
UDF môžu pracovať s objektovým modelom Excelu, ktorý zahŕňa prvky ako bunky, rozsahy, hárky či celé zošity. Vďaka tomu môžete s údajmi pracovať flexibilnejšie a vytvárať aj zložitejšie výpočty vo vlastných funkciách.
Keď si UDF vytvoríte, môžete ju v Exceli používať podobne ako ktorúkoľvek vstavanú funkciu. Stačí ju zadať do bunky, doplniť potrebné argumenty a funkcia vráti vypočítaný výsledok.
Podobne ako pri funkcii VLOOKUP, kde zadáte napríklad =VLOOKUP(), pri vlastnej funkcii jednoducho napíšete jej názov do riadka vzorcov. Funkciu si môžete pomenovať ľubovoľne, pokiaľ daný názov už nepoužíva iná funkcia.
UDF podporujú opakované využitie kódu. Keď raz vlastnú funkciu vytvoríte, môžete ju používať vo viacerých hárkoch alebo zošitoch. Vďaka tomu nemusíte ten istý výpočet vytvárať znova a znova a tvorba vzorcov v Exceli je prehľadnejšia a efektívnejšia.
Čo je Visual Basic for Applications (VBA)?
Visual Basic for Applications (VBA) je programovací jazyk používaný v Exceli napríklad na vytváranie vlastných funkcií, teda UDF. VBA sa upravuje v prostredí VBE (Visual Basic Editor).
Ak chcete VBA úspešne používať na tvorbu vlastných funkcií, musíte poznať jeho základnú syntax. Podobne ako pri iných programovacích jazykoch existujú konkrétne príkazy a výrazy, pomocou ktorých určujete, čo má kód vykonať.
Ako vytvoriť UDF funkciu v Exceli
Skôr než začnete, mali by ste vedieť, ako sa v Exceli zapisujú vzorce, a poznať aspoň základy VBA.
Krok 1: Otvorte editor Visual Basic for Applications (VBA)
- Stlačte Alt + F11 vo Windowse alebo Option + F11, prípadne Fn + Option + F11 na Macu. Tým otvoríte editor VBA v Exceli.
- Prípadne prejdite na kartu Vývojár a kliknite na Visual Basic.
- Ak kartu Vývojár nevidíte, prejdite na Súbor > Možnosti > Prispôsobiť pás s nástrojmi a v pravej časti zaškrtnite možnosť Vývojár.
Krok 2: Vložte nový modul
- V editore VBA kliknite pravým tlačidlom na ľubovoľnú položku v okne Project Explorer, ktoré sa zvyčajne nachádza vľavo.
- Vyberte Insert > Module.
Krok 3: Napíšte kód svojej UDF funkcie
Krok 3: Napíšte kód svojej UDF funkcie
V okne modulu môžete začať písať vlastnú funkciu pomocou jazyka VBA. Pri tom sa držte niekoľkých základných pravidiel:
- Kód musí začínať slovom Function, aby VBA rozpoznalo, že vytvárate funkciu.
- Potom svoju funkciu pomenujte. Názov môže byť ľubovoľný, pokiaľ ho už nepoužíva iná funkcia. Namiesto medzier používajte napríklad zápis typu MojaFunkcia.
- Hneď za názvom funkcie uveďte v zátvorkách argumenty, ktoré chcete vo vzorci používať.
- Poznámky do kódu môžete zapisovať pomocou apostrofu ' na začiatku riadka. Tieto poznámky nemajú vplyv na fungovanie kódu.
- Podľa potreby definujte ďalšie premenné a objekty, ktoré funkcia potrebuje.
- Kód ukončite príkazom End Function.
Ak sa po stlačení Enteru celý riadok kódu zafarbí načerveno, zvyčajne to znamená, že obsahuje syntaktickú chybu, ktorú je potrebné opraviť.
Príkaz (statement) vo Visual Basic predstavuje úplnú inštrukciu. Môže obsahovať kľúčové slová, operátory, premenné, konštanty a výrazy.
Vo VBA existujú tri základné typy príkazov:
- deklarácie (Declaration) – definujú premenné, konštanty alebo objekty,
- priradenia (Assignment) – priraďujú hodnotu premennej alebo objektu,
- vykonateľné príkazy (Executable) – vykonávajú konkrétnu akciu alebo operáciu.
Krok 4: Uložte zošit
- Excelový zošit uložte vo formáte, ktorý podporuje makrá, napríklad .xlsm. Vďaka tomu sa v súbore zachová aj vytvorený VBA kód.
Krok 5: Použite svoju UDF funkciu v Exceli
- Vráťte sa do svojho excelovského zošita.
- V ľubovoľnej bunke teraz môžete použiť vlastnú funkciu rovnako ako ktorúkoľvek inú excelovú funkciu.
Gratulujeme! Práve ste vytvorili vlastnú používateľom definovanú funkciu (UDF), ktorú môžete využívať na špecifické výpočty podľa svojich potrieb.
Príklady vlastných funkcií, ktoré môžete pridať do Excelu
Prečo by ste si vlastne mali vytvárať UDF? Používateľom definované funkcie sa hodia napríklad pri zložitejších finančných výpočtoch, štatistických analýzach alebo špecifickej úprave údajov. Ak Excel využívate na plánovanie financií, môžu vám pomôcť aj pri tvorbe a správe rozpočtu v Exceli. Ide často o úlohy, ktoré vývojári Excelu nemohli vopred predvídať, preto si na ich spracovanie potrebujete vytvoriť vlastnú funkciu.
Prečo vytvoriť UDF?
Existuje množstvo situácií, v ktorých môžu byť používateľom definované funkcie veľmi užitočné. Tu sú niektoré z dôvodov, prečo sa oplatí naučiť vytvárať a programovať UDF pomocou VBA v Exceli.
Špecializované výpočty
Pomocou UDF môžete vypočítať špecifický finančný ukazovateľ alebo vlastnú štatistickú metriku, ktorú bežné funkcie Excelu neponúkajú.
Môže ísť napríklad o vlastný index ziskovosti alebo ukazovateľ hodnotenia rizika prispôsobený konkrétnemu odvetviu.
Transformácia a čistenie údajov
UDF môžete využiť aj na úpravu a čistenie údajov spôsobom, ktorý sa pomocou vstavaných funkcií realizuje len ťažko.
Vlastná funkcia môže napríklad odstraňovať duplicity, upravovať formát textových reťazcov alebo vykonávať špecifické textové operácie.

Vzorce pre konkrétne odvetvia
V oblastiach, ako sú technika alebo prírodné vedy, môžu byť potrebné špecializované výpočty typické pre daný odbor.
Pomocou UDF môžete vytvoriť zložité technické vzorce alebo vedecké rovnice, ktoré medzi štandardnými funkciami Excelu nenájdete.
Automatizácia zložitých úloh
VBA Excel a UDF môžete využiť aj na automatizáciu série zložitejších úloh alebo analýz, ktoré by inak vyžadovali viacero krokov.
Takáto automatizácia šetrí čas a znižuje riziko chýb. Môže ísť napríklad o finančné modelovanie, analýzu rôznych scenárov alebo spracovanie väčšieho množstva údajov.
Vlastné reporty a analýzy
UDF môžu pomôcť aj pri vytváraní reportov so špecifickým formátovaním, rozložením alebo obsahom.
Vlastná funkcia sa môže stať súčasťou širšieho systému, ktorý generuje reporty podľa parametrov zadaných používateľom.
Príklad
Nasledujúca UDF funkcia sčíta hodnoty vo vybranom rozsahu buniek a výslednú sumu vydelí číslom 12, čím vypočíta priemernú mesačnú platbu:Function CalculateMonthlyPayment(rng As Range) As Double
' Táto UDF sčíta hodnoty vo vybranom rozsahu
' a výslednú sumu vydelí číslom 12, aby získala mesačnú platbu
' Skontroluje, či vstupný rozsah nie je prázdny
If Not rng Is Nothing Then
Dim cell As Range
Dim totalAmount As Double
' Prejde každú bunku v rozsahu a sčíta jej hodnoty
For Each cell In rng
If IsNumeric(cell.Value) Then
totalAmount = totalAmount + cell.Value
End If
Next cell
' Vydelí celkovú sumu číslom 12 a vypočíta mesačnú platbu
CalculateMonthlyPayment = totalAmount / 12
Else
' Ak je vstupný rozsah prázdny, vráti hodnotu 0
CalculateMonthlyPayment = 0
End If
End Function
Takáto funkcia definovaná používateľom vám umožní opakovane používať rovnaký výpočet bez toho, aby ste zakaždým museli vytvárať celý vzorec odznova.
Užitočné UDF funkcie v Exceli
Keďže UDF funkcie sú zo svojej podstaty veľmi individuálne, existuje množstvo riešení, ktoré si používatelia vytvorili na konkrétne účely. Dobrou inšpiráciou môžu byť napríklad fóra ako Reddit, VBA Express Forum alebo OzGrid Forums, kde používatelia zdieľajú svoje postupy a kódy vo VBA.
Tu je niekoľko zaujímavých príkladov, ktoré vytvorili iní používatelia Excelu:
- Zistenie názvu hárka, v ktorom sa nachádza odkazovaná bunka
Function SheetName(CellReference As Range)
SheetName = CellReference.Parent.Name
End Function - Kontrola, či už existuje súbor s konkrétnym názvom
Function filesExist(ByVal fileArr As Variant, Optional checkAll As Boolean = True) As Boolean 'Zistí, či súbory uvedené vo fileArr existujú
' Každá hodnota vo fileArr musí obsahovať úplnú cestu k súboru
' Ak checkAll = True, musia existovať všetky súbory vo fileArr,
' aby funkcia vrátila True
' Ak checkAll = False, musí existovať aspoň jeden súbor vo fileArr,
' aby funkcia vrátila True filesExist = thingsExist("", fileArr, "File", checkAll)
End Function
- Kontrola, či už existuje konkrétny hárok
Function CheckSheetExists(ByRef wb As Workbook, ByVal shName As String) As Boolean Dim ws As Worksheet 'Prejde všetky hárky v zošite For Each ws In wb.Worksheets ' Ak hárok existuje, funkcia vráti True a ukončí sa If ws.Name = shName Then CheckSheetExists = True Exit Function End If Next ws ' Ak sa hárok nenašiel, funkcia vráti False CheckSheetExists = False
End Function
Tieto príklady ukazujú, ako môžu funkcie definované používateľom zjednodušiť opakované úlohy a rozšíriť možnosti Excelu nad rámec jeho vstavaných funkcií.
Keďže vo VBA kóde môžete definovať vlastné objekty a pravidlá, pomocou UDF môžete vytvoriť obrovské množstvo rôznych používateľských funkcií prispôsobených konkrétnym potrebám.
Objavte ďalšie UDF funkcie so Superprof
Učenie akéhokoľvek programovacieho jazyka si vyžaduje čas a VBA nie je výnimkou. Ak sa vám jeho princípy zo začiatku zdajú zložité, je to úplne bežné. So skúseným lektorom zo Superprof sa môžete naučiť VBA základy, postupne prejsť k pokročilejším postupom a vytvárať vlastné funkcie definované používateľom.
Niekoľko lekcií s kvalifikovaným a skúseným lektorom vám môže pomôcť rýchlejšie pochopiť syntax, logiku kódu aj samotnú tvorbu vzorcov v Exceli pomocou VBA.
Vytváranie UDF môže výrazne rozšíriť možnosti, ktoré vám Excel ponúka. Ak chcete pracovať efektívnejšie a automatizovať špecifické úlohy, oplatí sa túto pokročilejšiu techniku spoznať a postupne ju zaradiť do svojej práce. Pozrite si aj ďalšie Excel tipy a triky, ktoré vám pomôžu zrýchliť a zjednodušiť prácu v Exceli.
Zhrnúť pomocou AI:









