Prednosti in slabosti funkcij po meri v Excelu

  • Deliti To
Michael Brown

Nadaljujemo s serijo priročnikov o uporabniško definiranih funkcijah. V prejšnjih člankih smo se seznanili z uporabniško definiranimi funkcijami ter se naučili, kako jih ustvariti in uporabljati. V tem priročniku si bomo ogledali posebnosti uporabe teh funkcij in videli razlike med uporabniško definiranimi funkcijami in makri VBA.

V tem učbeniku se bomo naučili naslednje:

    Upamo, da bo ta članek okrepil vaše znanje o UDF in vam pomagal pri njihovi učinkovitejši uporabi v delovnih zvezkih programa Excel.

    Ali sta UDF in Makro ista stvar?

    Uporabniške funkcije in makri VBA so ustvarjeni z urejevalnikom VBA. Kakšna je razlika med njimi in čemu je treba dati prednost?

    Najpomembnejša razlika je v tem, da funkcija izvede izračun, makro pa izvede neko dejanje. Uporabniško določeno funkcijo je treba tako kot običajno funkcijo programa Excel zapisati v celico. Zaradi njenega izvajanja celica vrne neko vrednost. Hkrati ni mogoče spreminjati vrednosti drugih celic, pa tudi nekaterih lastnosti trenutne celice (npr,Vendar lahko v formulah pogojnega oblikovanja uporabite funkcijo po meri.

    UDF in makro VBA delujeta na različne načine. Na primer, ko v urejevalniku Visual Basic ustvarite UDF, začnete z izjavo Funkcija in se končajo z Konec funkcije . Ko snemate makro, začnete z izjavo Pod in se končajo z Konec podnaslova.

    Za ustvarjanje UDF-jev ni mogoče uporabiti vseh operatorjev Visual Basica. Zato je makro bolj vsestranska rešitev.

    Za razliko od uporabniško definirane funkcije makru ni treba posredovati nobenih argumentov (niti jih ne more sprejeti).

    Gre za to, da lahko nekateri ukazi makrov uporabljajo naslove celic ali elemente oblikovanja (na primer barvo). Če premikate celice, dodajate ali odstranjujete vrstice in stolpce, spreminjate obliko celic, lahko zlahka "pokvarite" svoje makre. To je še posebej mogoče, če svojo datoteko delite s sodelavci, ki ne vedo, kako delujejo vaši makri.

    Na primer, imate datoteko z odlično delujočim makrom. Ta formula izračuna odstotek celic A1 do A4. Makro spremeni barvo teh celic v rumeno. V aktivni celici je nastavljen format odstotka.

    Če se vi ali kdo drug odloči vstaviti novo vrstico, bo makro še naprej iskal vrednost v celici A4 (parameter 4,1 v vašem UDF), ne bo uspel in vrnil napako:

    V tem primeru je napaka nastala zaradi deljenja z nič (v novo dodani vrstici ni vrednosti). Če makro izvede, recimo, seštevanje, boste preprosto dobili napačen rezultat. Vendar za to ne boste vedeli.

    V nasprotju z makri uporabniško definirane funkcije ne morejo povzročiti takšnega neprijetnega položaja.

    Spodaj si lahko ogledate izvedbo istih izračunov z uporabo UDF-a. Pri tem lahko vhodne celice določite kjer koli v delovnem listu in pri spreminjanju ne boste naleteli na nepričakovane težave.

    Naslednjo formulo sem zapisal v C3:

    =UDF_vs_Macro(A1,A4)

    Nato sem vstavil prazno vrstico in formula se je spremenila, kot lahko vidite na zgornji sliki zaslona.

    Zdaj lahko vhodno celico ali celico s funkcijo premaknemo kamor koli. Rezultat bo vedno pravilen.

    Dodatna prednost uporabe UDF je, da se samodejno posodobijo, ko se spremeni vrednost v vhodni celici. Pri uporabi makrov morate vedno zagotoviti, da so vsi podatki posodobljeni.

    Glede na ta primer bi raje uporabljal UDF, kadar koli je to mogoče, makre pa le za druge dejavnosti, ki niso povezane z izračunavanjem.

    Omejitve in slabosti uporabe UDF

    Prednosti UDF sem že omenil zgoraj. Na kratko povedano, z njim lahko opravite izračune, ki jih s standardnimi funkcijami programa Excel ni mogoče izvesti. Poleg tega lahko shrani in uporabi dolge in zapletene formule ter jih spremeni v eno samo funkcijo. In ne bo vam treba vedno znova pisati zapletenih formul.

    Zdaj pa podrobneje spregovorimo o pomanjkljivostih sklada UDF:

    • Ustvarjanje funkcij UDF zahteva uporabo VBA. Tega ni mogoče zaobiti. To pomeni, da uporabnik ne more zapisati funkcije UDF na enak način kot makro Excel-a. Funkcijo UDF morate ustvariti sami. Vendar pa lahko dele predhodno zapisane kode makra kopirate in prilepite v svojo funkcijo. Zavedati se morate le omejitev funkcij po meri.
    • Druga pomanjkljivost UDF je, da lahko tako kot vsaka druga funkcija programa Excel vrne le eno vrednost ali niz vrednosti v celico. Preprosto izvaja izračune, nič več.
    • Če želite delovni zvezek deliti s sodelavci, ne pozabite shraniti svojih UDF v isto datoteko. V nasprotnem primeru vaše funkcije po meri ne bodo delovale z njimi.
    • Funkcije po meri, ustvarjene z urejevalnikom VBA, so počasnejše od običajnih funkcij. To je še posebej opazno pri velikih tabelah. Žal je VBA zaenkrat zelo počasen programski jezik. Če imate veliko podatkov, zato poskušajte uporabljati standardne funkcije, kadar koli je to mogoče, ali ustvarite UDF s funkcijo LAMBDA.

    Omejitve funkcije po meri:

    • UDF so namenjeni izvajanju izračunov in vračanju vrednosti. Ne morejo se uporabljati namesto makrov.
    • Ne morejo spreminjati vsebine drugih celic (samo aktivne celice).
    • Imena funkcij morajo upoštevati določena pravila. Ne morete na primer uporabiti imena, ki se ujema z imenom izvirne funkcije programa Excel ali naslovom celice, na primer AB123.
    • Vaša funkcija po meri v imenu ne sme vsebovati presledkov, lahko pa vsebuje znak podčrtanke. Vendar je zaželena uporaba velikih črk na začetku vsake nove besede (na primer GetMaxBetween).
    • UDF ne more kopirati in prilepiti celic na druga območja delovnega lista.
    • Aktivnega delovnega lista ne morejo spremeniti.
    • UDF ne morejo spremeniti oblikovanja v aktivni celici. Če želite spremeniti oblikovanje celice pri prikazu različnih vrednosti, uporabite pogojno oblikovanje.
    • Ne morejo odpreti dodatnih knjig.
    • Ne morete jih uporabiti za izvajanje makrov z uporabo Application.OnTime.
    • Uporabniško opredeljene funkcije ni mogoče ustvariti z makro zapisovalnikom.
    • Funkcije niso prikazane v Razvijalec> Makroji dialog.
    • Vaše funkcije bodo prikazane v pogovornem oknu ( Vstavljanje> Funkcija ) in na seznamu funkcij le, če so deklarirane kot Javna stran (to je privzeto, razen če ni navedeno drugače).
    • Vse funkcije, deklarirane kot Zasebno ne bo prikazana na seznamu funkcij.

    Zaradi precej počasnega delovanja in nekaterih omejitev pri uporabi lahko pomislite: "Kakšna je uporaba teh funkcij po meri?"

    Lahko nam pridejo prav in tudi pridejo, če se zavedamo omejitev, ki so jim naložene. Če se naučite pravilno ustvarjati in uporabljati UDF, lahko napišete svojo knjižnico funkcij. To bo močno razširilo vaše možnosti za delo s podatki v Excelu.

    Zame so funkcije po meri velik prihranek časa. Kaj pa vi? Ste že poskusili ustvariti svoj UDF? Vam je bil všeč bolj kot osnovne funkcije Excela? Pogovorimo se o tem v komentarjih :)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.