Edukien taula
Erabiltzaileak definitutako funtzioei buruzko tutorial sortarekin jarraitzen ari gara. Gure aurreko artikuluetan, funtzio pertsonalizatuak ezagutu genituen eta haiek sortzen eta erabiltzen ikasi genuen. Eskuliburu honetan funtzio hauek erabiltzearen berezitasunak ikusiko ditugu eta UDF eta VBA makroen arteko desberdintasunak ikusiko ditugu.
Tutorial honetan, honako hau ikasiko dugu:
Artikulu honek UDFri buruzko ezagutzak areagotzea eta Excel-eko liburuetan are eraginkorrago erabiltzen lagunduko dizula espero dugu.
UDF eta Macro gauza bera al dira?
Erabiltzaileak definitutako funtzioak eta VBA makroak VBA editorea erabiliz sortzen dira. Zein da haien arteko aldea eta zeri eman lehentasuna?
Desberdintasun garrantzitsuena funtzioak kalkulua egiten duela eta makroak ekintzaren bat egiten duela da. Erabiltzaileak definitutako funtzio bat, Excel funtzio arrunt bat bezala, gelaxka batean idatzi behar da. Bere exekuzioaren ondorioz, gelaxkak balioren bat itzultzen du. Aldi berean, ezinezkoa da beste gelaxken balioak aldatzea, baita uneko gelaxkaren propietate batzuk ere (bereziki, formatua). Hala ere, baldintzazko formatu-formuletan funtzio pertsonalizatu bat erabil dezakezu.
UDF eta VBA makroak modu ezberdinetan funtzionatzen dute. Adibidez, Visual Basic Editor-en UDF bat sortzen duzunean, Funtzioa adierazpen batekin hasten zara eta Amaiera funtzioa batekin amaitzen zara. Makro bat grabatzen duzunean, batekin hasten zara Sub adierazpena eta amaitzen da End Sub.
Visual Basic-eko operadore guztiak ezin dira erabili UDFak sortzeko. Hori dela eta, makro bat irtenbide polifazetikoa da.
Makro batek ez dio erabiltzaileari argumenturik pasa behar (ezta argumenturik onartu ere), erabiltzaileak definitutako funtzioak ez bezala.
Kontua da makroen komando batzuek gelaxken helbideak edo formateatzeko elementuak erabil ditzaketela (adibidez, kolorea). Gelaxkak mugitzen badituzu, errenkadak eta zutabeak gehitu edo kentzen badituzu, gelaxken formatua aldatu, orduan erraz "hautsi" ditzakezu makroak. Hau bereziki posible da zure fitxategia zure makroek nola funtzionatzen duten ezagutzen ez duten lankideekin partekatzen baduzu.
Adibidez, ezin hobeto funtzionatzen duen makroa duen fitxategi bat duzu. Formula honek A1 eta A4 gelaxken ehunekoa kalkulatzen du. Makroak gelaxka hauen kolorea horira aldatzen du. Ehuneko formatua ezartzen da gelaxka aktiboan.
Zuk edo beste norbaitek errenkada berri bat txertatzea erabakitzen baduzu, makroak A4 gelaxkako balioa bilatzen jarraituko du ( zure UDFko 4,1 parametroa), huts egin eta errore bat itzuli:
Kasu honetan, errorea zeroz zatitzearen ondorioz gertatu da (gehitu berri den baliorik ez ilara). Makroa egiten bada, demagun batuketa, emaitza oker bat lortuko duzu. Baina ez duzu horren berri izango.
Makroekin ez bezala, erabiltzaileek definitutako funtzioek ezin dute halako egoera desatsegina eragin.
Behean ikusten duzu errendimendua.kalkulu berdinak UDF erabiliz. Hemen sarrerako gelaxkak zehaztu ditzakezu lan-orriko edozein lekutan eta ez duzu ustekabeko arazorik izango hura aldatzean.
Ondoko formula hau idatzi dut C3-n:
=UDF_vs_Macro(A1,A4)
Ondoren, errenkada huts bat txertatu nuen, eta formula aldatu egin zen goiko pantaila-argazkian ikus dezakezun bezala.
Orain sarrerako gelaxka bat edo funtzio bat duen gelaxka bat edonora eraman dezakegu. Emaitza zuzena izango da beti.
UDFak erabiltzearen abantaila gehigarri bat sarrerako gelaxkako balioa aldatzen denean automatikoki eguneratzen direla da. Makroak erabiltzean, datu guztiak eguneratuta daudela ziurtatu behar duzu beti.
Adibide hau kontuan izanda, nahiago dut UDFak erabiltzea ahal den guztietan eta makroak kalkulatzeko ez diren beste jardueretarako soilik erabili.
UDF erabiltzearen mugak eta desabantailak
UDFren abantailak aipatu ditut lehen. Laburbilduz, Excel funtzio estandarrekin posible ez diren kalkuluak egin ditzake. Horrez gain, formula luze eta konplexuak gorde eta erabil ditzake, funtzio bakar bihurtuz. Eta ez duzu formula korapilatsuak behin eta berriz idatzi beharko.
Orain hitz egin dezagun zehatzago UDFren gabeziei buruz:
- UDFak sortzeak VBA erabiltzea eskatzen du. Ez dago inondik inora. Horrek esan nahi du erabiltzaileak ezin duela UDF grabatu Excel makro baten moduan. Zuk zeuk sortu behar duzu UDF. Hala ere, kopiatu dezakezu etaitsatsi aurretik grabatutako makro-kodearen zatiak zure funtzioan. Funtzio pertsonalizatuen mugen berri izan behar duzu.
- UDF-ren beste eragozpen bat Excel-eko beste edozein funtzio bezala balio bakarra edo balio-matrize bat gelaxka batean soilik itzul dezakeela da. Kalkuluak besterik ez ditu egiten, ezer gehiago.
- Zure lan-liburua zure lankideekin partekatu nahi baduzu, ziurtatu zure UDFak fitxategi berean gordetzen dituzula. Bestela, zure funtzio pertsonalizatuek ez dute funtzionatuko.
- VBA editorearekin sortutako funtzio pertsonalizatuak ohiko funtzioak baino motelagoak dira. Hau bereziki nabarmena da mahai handietan. Zoritxarrez, VBA programazio-lengoaia oso motela da orain arte. Horregatik, datu asko badituzu, saiatu funtzio estandarrak erabiltzen ahal den guztietan, edo sortu LAMBDA funtzioa erabiliz UDFak.
Funtzio pertsonalizatuen mugak:
- UDFak dira. kalkuluak egiteko eta balio bat itzultzeko diseinatua. Ezin dira makroen ordez erabili.
- Ezin dute beste edozein gelaxken edukia aldatu (gelaxka aktiboa soilik).
- Funtzio-izenek arau batzuk jarraitu behar dituzte. Adibidez, ezin duzu erabili jatorrizko Excel funtzioaren izenarekin edo gelaxka-helbide batekin bat datorren izenik, hala nola AB123.
- Zure funtzio pertsonalizatuak ezin du zuriunerik izan izenean, baina azpimarra karakterea izan dezake. Hala ere, hobetsitako metodoa berri bakoitzaren hasieran letra larriak erabiltzea dahitza (adibidez, GetMaxBetween).
- UDF batek ezin ditu gelaxkak kopiatu eta itsatsi lan-orriaren beste eremu batzuetan.
- Ezin dute lan-orri aktiboa aldatu.
- UDF-ek' t aldatu formatua gelaxka aktiboan. Balio desberdinak bistaratzen direnean gelaxka baten formatua aldatu nahi baduzu, baldintzapeko formatua erabili beharko zenuke.
- Ezin dituzte liburu gehigarririk ireki.
- Ezin dira erabili makroak exekutatzeko Application.OnTime erabiliz. .
- Erabiltzaileak definitutako funtziorik ezin da sortu makro-grabagailua erabiliz.
- Funtzioak ez dira agertzen Garatzailea > Makroak elkarrizketa-koadroan.
- Zure funtzioak elkarrizketa-koadroan agertuko dira ( Txertatu > Funtzioa ) eta funtzioen zerrendan Publikoak<7 gisa deklaratzen badira soilik> (hau da lehenetsia, bestela adierazi ezean).
- Pribatua gisa deklaratutako edozein funtzio ez da funtzioen zerrendan agertuko.
Eragiketa nahiko motela. , eta erabileran dauden murrizketa batzuek, pentsarazi dezakete: "Zertarako balio dute funtzio pertsonalizatu hauek?"
Ondo etor daitezke, eta ezartzen zaizkien mugak kontuan hartzen baditugu. UDFak behar bezala sortzen eta erabiltzen ikasten baduzu, zure funtzioen liburutegia idatz dezakezu. Horrek asko zabalduko du Excel-en datuekin lan egiteko gaitasuna.
Niri bezala, funtzio pertsonalizatuek denbora aurrezteko aukera handia dute. Eta zu zer? Dagoeneko saiatu al zara zure UDF sortzen? Gustatu zaizuExcel oinarrizko funtzioak baino hobea? Eztabaida dezagun Iruzkinetan :)