Výhody a nevýhody vlastných funkcií v programe Excel

  • Zdieľajte To
Michael Brown

Pokračujeme v sérii návodov o používateľsky definovaných funkciách. V predchádzajúcich článkoch sme sa zoznámili s používateľsky definovanými funkciami a naučili sme sa ich vytvárať a používať. V tomto návode sa pozrieme na špecifiká používania týchto funkcií a zistíme rozdiely medzi používateľsky definovanými funkciami a makrami VBA.

V tomto učebnom texte sa naučíme:

    Dúfame, že tento článok rozšíri vaše znalosti o UDF a pomôže vám ich ešte efektívnejšie používať v zošitoch Excelu.

    Je UDF a makro to isté?

    Používateľom definované funkcie aj makrá VBA sa vytvárajú pomocou editora VBA. Aký je medzi nimi rozdiel a čomu dať prednosť?

    Najdôležitejším rozdielom je, že funkcia vykonáva výpočet a makro vykonáva nejakú činnosť. Užívateľom definovaná funkcia, podobne ako bežná funkcia programu Excel, musí byť zapísaná v bunke. Výsledkom jej vykonania je, že bunka vráti nejakú hodnotu. Zároveň nie je možné meniť hodnoty iných buniek, ako aj niektoré vlastnosti aktuálnej bunky (najmä,Formátovanie). Vo vzorcoch podmieneného formátovania však môžete použiť vlastnú funkciu.

    UDF a makro VBA pracujú rôznymi spôsobmi. Napríklad pri vytváraní UDF v editore jazyka Visual Basic začnete príkazom Funkcia a končí sa Koniec funkcie Pri nahrávaní makra začnete príkazom Sub a končí sa Koniec Sub.

    Nie všetky operátory jazyka Visual Basic možno použiť na vytvorenie UDF. Z tohto dôvodu je makro univerzálnejším riešením.

    Na rozdiel od používateľom definovanej funkcie makro nevyžaduje od používateľa žiadne argumenty (ani ich nemôže prijať).

    Ide o to, že niektoré príkazy makier môžu používať adresy buniek alebo formátovacie prvky (napríklad farbu). Ak presúvate bunky, pridávate alebo odstraňujete riadky a stĺpce, meníte formát buniek, potom môžete svoje makrá ľahko "rozbiť". To je možné najmä vtedy, ak zdieľate svoj súbor s kolegami, ktorí nevedia, ako vaše makrá fungujú.

    Napríklad máte súbor s dokonale fungujúcim makrom. Tento vzorec vypočíta percentuálny podiel buniek A1 až A4. Makro zmení farbu týchto buniek na žltú. V aktívnej bunke je nastavený percentuálny formát.

    Ak sa vy alebo niekto iný rozhodne vložiť nový riadok, makro bude pokračovať v hľadaní hodnoty v bunke A4 (parameter 4,1 vo vašom UDF), zlyhá a vráti chybu:

    V tomto prípade chyba nastala v dôsledku delenia nulou (v novo pridanom riadku nie je žiadna hodnota). V prípade, že makro vykoná povedzme súčet, potom jednoducho dostanete nesprávny výsledok. O tom sa však nedozviete.

    Na rozdiel od makier, používateľom definované funkcie nemôžu spôsobiť takúto nepríjemnú situáciu.

    Nižšie vidíte vykonanie rovnakých výpočtov pomocou UDF. Tu môžete zadať vstupné bunky kdekoľvek v pracovnom hárku a pri ich zmene sa nestretnete s neočakávanými problémami.

    V jazyku C3 som napísal nasledujúci vzorec:

    =UDF_vs_Macro(A1,A4)

    Potom som vložil prázdny riadok a vzorec sa zmenil, ako vidíte na obrázku vyššie.

    Teraz môžeme vstupnú bunku alebo bunku s funkciou presunúť kamkoľvek. Výsledok bude vždy správny.

    Ďalšou výhodou používania UDF je, že sa automaticky aktualizujú, keď sa zmení hodnota vo vstupnej bunke. Pri používaní makier musíte vždy zabezpečiť, aby boli všetky údaje aktuálne.

    Vzhľadom na tento príklad by som uprednostnil používanie UDF všade, kde je to možné, a makrá by som používal len na iné činnosti, ktoré nie sú spojené s výpočtom.

    Obmedzenia a nevýhody používania UDF

    O výhodách UDF som sa už zmienil vyššie. Skrátka, dokáže vykonávať výpočty, ktoré nie sú možné pomocou štandardných funkcií Excelu. Okrem toho dokáže uložiť a použiť dlhé a zložité vzorce, pričom ich zmení na jednu funkciu. A vy nebudete musieť písať zložité vzorce stále dokola.

    Teraz sa podrobnejšie venujme nedostatkom UDF:

    • Vytváranie UDF si vyžaduje použitie jazyka VBA. Nedá sa to nijako obísť. To znamená, že používateľ nemôže zaznamenať UDF rovnakým spôsobom ako makro programu Excel. UDF musíte vytvoriť sami. Môžete však skopírovať a vložiť časti kódu predtým zaznamenaného makra do svojej funkcie. Musíte si len uvedomiť obmedzenia vlastných funkcií.
    • Ďalšou nevýhodou UDF je, že ako každá iná funkcia programu Excel môže do bunky vrátiť len jednu hodnotu alebo pole hodnôt. Jednoducho vykonáva výpočty, nič viac.
    • Ak chcete svoj zošit zdieľať s kolegami, nezabudnite uložiť svoje UDF do rovnakého súboru. Inak im vaše vlastné funkcie nebudú fungovať.
    • Vlastné funkcie vytvorené pomocou editora VBA sú pomalšie ako bežné funkcie. Je to viditeľné najmä pri veľkých tabuľkách. Bohužiaľ, VBA je zatiaľ veľmi pomalý programovací jazyk. Preto ak máte veľa údajov, snažte sa používať štandardné funkcie, kedykoľvek je to možné, alebo vytvárajte UDF pomocou funkcie LAMBDA.

    Obmedzenia vlastnej funkcie:

    • UDF sú určené na vykonávanie výpočtov a vrátenie hodnoty. Nemôžu sa používať namiesto makier.
    • Nemôžu meniť obsah iných buniek (iba aktívnej bunky).
    • Názvy funkcií musia dodržiavať určité pravidlá. Napríklad nemôžete použiť názov, ktorý sa zhoduje s pôvodným názvom funkcie programu Excel alebo s adresou bunky, napríklad AB123.
    • Vaša vlastná funkcia nemôže v názve obsahovať medzery, ale môže obsahovať znak podčiarkovníka. Uprednostňuje sa však použitie veľkých písmen na začiatku každého nového slova (napríklad GetMaxBetween).
    • UDF nemôže kopírovať a vkladať bunky do iných oblastí pracovného hárka.
    • Nemôžu zmeniť aktívny pracovný hárok.
    • UDF nemôžu zmeniť formátovanie v aktívnej bunke. Ak chcete zmeniť formátovanie bunky pri zobrazení rôznych hodnôt, mali by ste použiť podmienené formátovanie.
    • Nemôžu otvoriť ďalšie knihy.
    • Nemožno ich použiť na spúšťanie makier pomocou Application.OnTime.
    • Používateľom definovanú funkciu nie je možné vytvoriť pomocou makrorekordéra.
    • Funkcie sa nezobrazujú v Vývojár> Makrá dialóg.
    • Vaše funkcie sa zobrazia v dialógovom okne ( Vložiť> Funkcia ) a v zozname funkcií len vtedy, ak sú deklarované ako Verejnosť (ak nie je uvedené inak, je to predvolené nastavenie).
    • Všetky funkcie deklarované ako Súkromná stránka sa nezobrazí v zozname funkcií.

    Pomerne pomalá prevádzka, ako aj niektoré obmedzenia pri používaní, vás môžu prinútiť zamyslieť sa: "Načo sú tieto vlastné funkcie?"

    Môžu sa hodiť, a aj sa hodia, ak si uvedomíme obmedzenia, ktoré sú na ne kladené. Ak sa naučíte správne vytvárať a používať UDF, môžete si napísať svoju knižnicu funkcií. To výrazne rozšíri vaše možnosti práce s údajmi v programe Excel.

    Čo sa týka mňa, vlastné funkcie sú skvelou úsporou času. A čo vy? Vyskúšali ste si už vytvoriť vlastné UDF? Páčilo sa vám to viac ako základné funkcie Excelu? Poďme o tom diskutovať do komentárov :)

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.