Prednosti i nedostaci prilagođenih funkcija u Excelu

  • Podijeli Ovo
Michael Brown

Nastavljamo seriju vodiča o korisnički definiranim funkcijama. U našim prethodnim člancima upoznali smo se s prilagođenim funkcijama i naučili kako ih izraditi i koristiti. U ovom ćemo priručniku pogledati specifičnosti korištenja ovih funkcija i vidjeti razlike između UDF-ova i VBA makronaredbi.

U ovom vodiču naučit ćemo sljedeće:

    Nadamo se da će ovaj članak poboljšati vaše znanje o UDF-u i pomoći vam da ih još učinkovitije koristite u svojim Excel radnim knjigama.

    Jesu li UDF i Macro ista stvar?

    I korisnički definirane funkcije i VBA makronaredbe se stvaraju pomoću VBA editora. Koja je razlika između njih i čemu dati prednost?

    Najvažnija razlika je u tome što funkcija izvodi izračun, a makronaredba izvodi neku radnju. Korisnički definirana funkcija, kao i obična Excel funkcija, mora biti zapisana u ćeliju. Kao rezultat svog izvršenja, ćelija vraća neku vrijednost. Istodobno je nemoguće promijeniti vrijednosti drugih ćelija, kao i neka svojstva trenutne ćelije (osobito oblikovanje). Međutim, možete koristiti prilagođenu funkciju u formulama uvjetnog oblikovanja.

    UDF i VBA makronaredba rade na različite načine. Na primjer, kada kreirate UDF u uređivaču Visual Basic, počinjete s naredbom Function i završavate s End Function . Kada snimate makro, počinjete s aizraz Sub i završava s End Sub.

    Ne mogu se svi Visual Basic operatori koristiti za stvaranje UDF-ova. Iz tog je razloga makronaredba svestranije rješenje.

    Makronaredba ne zahtijeva od korisnika prosljeđivanje argumenata (niti može prihvatiti bilo kakve argumente), za razliku od korisnički definirane funkcije.

    Poanta je da neke naredbe makronaredbi mogu koristiti adrese ćelija ili elemente oblikovanja (na primjer, boju). Ako premještate ćelije, dodajete ili uklanjate retke i stupce, mijenjate format ćelija, tada možete lako "razbiti" svoje makronaredbe. To je posebno moguće ako svoju datoteku dijelite s kolegama koji ne znaju kako funkcioniraju vaše makronaredbe.

    Na primjer, imate datoteku s makronaredbom koja savršeno radi. Ova formula izračunava postotak ćelija A1 do A4. Makro mijenja boju ovih ćelija u žutu. Format postotka postavljen je u aktivnoj ćeliji.

    Ako vi ili netko drugi odlučite umetnuti novi redak, makronaredba će nastaviti tražiti vrijednost u ćeliji A4 ( parametar 4,1 u vašem UDF-u), ne uspijeva i vraća pogrešku:

    U ovom slučaju do pogreške je došlo zbog dijeljenja s nulom (nema vrijednosti u novododanom red). U slučaju da makro izvodi, recimo, zbrajanje, tada ćete jednostavno dobiti pogrešan rezultat. Ali nećete znati za to.

    Za razliku od makronaredbi, korisnički definirane funkcije ne mogu uzrokovati tako neugodnu situaciju.

    U nastavku vidite izvedbuiste izračune koristeći UDF. Ovdje možete navesti ćelije unosa bilo gdje na radnom listu i nećete imati neočekivanih problema kada ga mijenjate.

    Napisao sam sljedeću formulu u C3:

    =UDF_vs_Macro(A1,A4)

    Zatim sam umetnuo prazan redak i formula se promijenila kao što možete vidjeti na gornjoj snimci zaslona.

    Sada možemo premjestiti ulaznu ćeliju ili ćeliju s funkcijom bilo gdje. Rezultat će uvijek biti točan.

    Dodatna prednost korištenja UDF-ova je da se automatski ažuriraju kada se promijeni vrijednost u ulaznoj ćeliji. Kada koristite makronaredbe, uvijek morate osigurati da su svi podaci ažurni.

    Imajući ovaj primjer na umu, radije bih koristio UDF-ove gdje god je to moguće i koristio makronaredbe samo za druge aktivnosti koje nisu proračunske.

    Ograničenja i nedostaci korištenja UDF-a

    Gore sam već spomenuo prednosti UDF-a. Ukratko, može izvoditi izračune koji nisu mogući sa standardnim Excel funkcijama. Osim toga, može spremati i koristiti duge i složene formule, pretvarajući ih u jednu funkciju. I nećete morati uvijek iznova pisati komplicirane formule.

    Razgovarajmo sada detaljnije o nedostacima UDF-a:

    • Stvaranje UDF-ova zahtijeva upotrebu VBA. To se ne može zaobići. To znači da korisnik ne može snimiti UDF na isti način kao Excel makro. SDS morate sami stvoriti. Međutim, možete kopirati izalijepite dijelove prethodno snimljenog makro koda u svoju funkciju. Samo trebate biti svjesni ograničenja prilagođenih funkcija.
    • Još jedan nedostatak UDF-a je taj što, kao i svaka druga Excel funkcija, može vratiti samo jednu vrijednost ili niz vrijednosti u ćeliju. Jednostavno izvodi izračune, ništa više.
    • Ako želite podijeliti svoju radnu bilježnicu sa svojim kolegama, svakako spremite svoje UDF-ove u istu datoteku. U suprotnom, vaše prilagođene funkcije neće raditi za njih.
    • Prilagođene funkcije stvorene pomoću VBA uređivača sporije su od uobičajenih funkcija. To je posebno vidljivo u velikim stolovima. Nažalost, VBA je za sada vrlo spor programski jezik. Stoga, ako imate puno podataka, pokušajte koristiti standardne funkcije kad god je to moguće ili izradite UDF-ove pomoću funkcije LAMBDA.

    Ograničenja prilagođenih funkcija:

    • UDF-ovi su dizajniran za izvođenje izračuna i vraćanje vrijednosti. Ne mogu se koristiti umjesto makronaredbi.
    • Ne mogu promijeniti sadržaj nijedne druge ćelije (samo aktivne ćelije).
    • Nazivi funkcija moraju slijediti određena pravila. Na primjer, ne možete koristiti naziv koji odgovara izvornom nazivu Excel funkcije ili adresi ćelije, kao što je AB123.
    • Vaša prilagođena funkcija ne može sadržavati razmake u nazivu, ali može sadržavati znak podvlake. Međutim, poželjna metoda je korištenje velikih slova na početku svakog novogriječ (na primjer, GetMaxBetween).
    • UDF-ovi ne mogu kopirati i lijepiti ćelije u druga područja radnog lista.
    • Oni ne mogu promijeniti aktivni radni list.
    • UDF-ovi mogu' t promijeniti oblikovanje u aktivnoj ćeliji. Ako želite promijeniti oblikovanje ćelije pri prikazu različitih vrijednosti, trebali biste koristiti uvjetno oblikovanje.
    • Ne mogu otvoriti dodatne knjige.
    • Ne mogu se koristiti za pokretanje makronaredbi pomoću Application.OnTime .
    • Korisnički definirana funkcija ne može se stvoriti korištenjem snimača makronaredbi.
    • Funkcije se ne pojavljuju u Developer > Makronaredbe dijaloški okvir.
    • Vaše funkcije će se pojaviti u dijaloškom okviru ( Insert > Function ) i na popisu funkcija samo ako su deklarirane kao Public (ovo je zadano, osim ako nije drugačije navedeno).
    • Sve funkcije deklarirane kao Privatne neće se pojaviti na popisu značajki.

    Prilično spor rad , kao i neka ograničenja u korištenju, mogu vas navesti na razmišljanje: "Koja je korist od ovih prilagođenih funkcija?"

    Mogu biti korisne, i dobro ako vodimo računa o ograničenjima koja su im nametnuta. Ako naučite kako ispravno stvarati i koristiti UDF-ove, možete napisati svoju biblioteku funkcija. To će uvelike proširiti vašu sposobnost rada s podacima u programu Excel.

    Što se mene tiče, prilagođene funkcije odlično štede vrijeme. A što je s vama? Jeste li već pokušali stvoriti vlastiti UDF? Je li ti se svidjelobolji od osnovnih Excel funkcija? Raspravljajmo o tome u komentarima :)

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.