ഉള്ളടക്ക പട്ടിക
ഉപയോക്തൃ നിർവചിച്ച പ്രവർത്തനങ്ങളെക്കുറിച്ചുള്ള ട്യൂട്ടോറിയലുകളുടെ പരമ്പര ഞങ്ങൾ തുടരുകയാണ്. ഞങ്ങളുടെ മുൻ ലേഖനങ്ങളിൽ, ഇഷ്ടാനുസൃത ഫംഗ്ഷനുകൾ ഞങ്ങൾ പരിചയപ്പെടുകയും അവ എങ്ങനെ സൃഷ്ടിക്കാമെന്നും ഉപയോഗിക്കാമെന്നും പഠിച്ചു. ഈ മാനുവലിൽ ഞങ്ങൾ ഈ ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നതിന്റെ പ്രത്യേകതകൾ നോക്കുകയും UDF-കളും VBA മാക്രോകളും തമ്മിലുള്ള വ്യത്യാസങ്ങൾ കാണുകയും ചെയ്യും.
ഈ ട്യൂട്ടോറിയലിൽ, ഞങ്ങൾ ഇനിപ്പറയുന്നവ പഠിക്കും:
ഈ ലേഖനം UDF-നെ കുറിച്ചുള്ള നിങ്ങളുടെ അറിവ് വർദ്ധിപ്പിക്കുമെന്നും നിങ്ങളുടെ Excel വർക്ക്ബുക്കുകളിൽ അവ കൂടുതൽ ഫലപ്രദമായി ഉപയോഗിക്കാൻ സഹായിക്കുമെന്നും ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.
UDF ഉം Macro ഉം ഒന്നുതന്നെയാണോ?
ഉപയോക്താക്കൾ നിർവചിച്ചിരിക്കുന്ന പ്രവർത്തനങ്ങളും VBA-യും VBA എഡിറ്റർ ഉപയോഗിച്ചാണ് മാക്രോകൾ സൃഷ്ടിക്കുന്നത്. അവ തമ്മിലുള്ള വ്യത്യാസം എന്താണ്, എന്തിന് മുൻഗണന നൽകണം?
ഏറ്റവും പ്രധാനപ്പെട്ട വ്യത്യാസം ഫംഗ്ഷൻ കണക്കുകൂട്ടൽ നടത്തുന്നു, മാക്രോ ചില പ്രവർത്തനങ്ങൾ ചെയ്യുന്നു എന്നതാണ്. ഒരു സാധാരണ Excel ഫംഗ്ഷൻ പോലെ ഉപയോക്താവ് നിർവചിച്ച ഫംഗ്ഷൻ ഒരു സെല്ലിൽ എഴുതിയിരിക്കണം. അതിന്റെ നിർവ്വഹണത്തിന്റെ ഫലമായി, സെൽ ചില മൂല്യങ്ങൾ നൽകുന്നു. അതേസമയം, മറ്റ് സെല്ലുകളുടെ മൂല്യങ്ങളും നിലവിലെ സെല്ലിന്റെ ചില സവിശേഷതകളും മാറ്റുന്നത് അസാധ്യമാണ് (പ്രത്യേകിച്ച്, ഫോർമാറ്റിംഗ്). എന്നിരുന്നാലും, സോപാധിക ഫോർമാറ്റിംഗ് ഫോർമുലകളിൽ നിങ്ങൾക്ക് ഒരു ഇഷ്ടാനുസൃത ഫംഗ്ഷൻ ഉപയോഗിക്കാം.
UDF, VBA മാക്രോ വ്യത്യസ്ത രീതികളിൽ പ്രവർത്തിക്കുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾ വിഷ്വൽ ബേസിക് എഡിറ്ററിൽ ഒരു UDF സൃഷ്ടിക്കുമ്പോൾ, നിങ്ങൾ ഒരു പ്രസ്താവനയിൽ ഫംഗ്ഷൻ ആരംഭിച്ച് എൻഡ് ഫംഗ്ഷൻ എന്നതിൽ അവസാനിക്കുന്നു. നിങ്ങൾ ഒരു മാക്രോ റെക്കോർഡ് ചെയ്യുമ്പോൾ, നിങ്ങൾ ആരംഭിക്കുന്നത് എസ്റ്റേറ്റ്മെന്റ് ഉപ കൂടാതെ ഒരു എൻഡ് സബ് ഉപയോഗിച്ച് അവസാനിക്കുന്നു.
എല്ലാ വിഷ്വൽ ബേസിക് ഓപ്പറേറ്റർമാരെയും യു ഡി എഫ് സൃഷ്ടിക്കാൻ ഉപയോഗിക്കാനാവില്ല. ഇക്കാരണത്താൽ, ഒരു മാക്രോ കൂടുതൽ വൈവിധ്യമാർന്ന പരിഹാരമാണ്.
ഉപയോക്താവ് നിർവചിച്ച ഫംഗ്ഷനിൽ നിന്ന് വ്യത്യസ്തമായി ഒരു മാക്രോയ്ക്ക് ഉപയോക്താവ് ഏതെങ്കിലും ആർഗ്യുമെന്റുകൾ നൽകേണ്ടതില്ല (അല്ലെങ്കിൽ അതിന് ഏതെങ്കിലും ആർഗ്യുമെന്റുകൾ സ്വീകരിക്കാനും കഴിയില്ല).
<0 മാക്രോകളുടെ ചില കമാൻഡുകൾക്ക് സെൽ വിലാസങ്ങളോ ഫോർമാറ്റിംഗ് ഘടകങ്ങളോ ഉപയോഗിക്കാം എന്നതാണ് പ്രധാന കാര്യം (ഉദാഹരണത്തിന്, നിറം). നിങ്ങൾ സെല്ലുകൾ നീക്കുകയാണെങ്കിൽ, വരികളും നിരകളും ചേർക്കുകയോ നീക്കം ചെയ്യുകയോ, സെല്ലുകളുടെ ഫോർമാറ്റ് മാറ്റുകയോ ചെയ്താൽ, നിങ്ങളുടെ മാക്രോകൾ എളുപ്പത്തിൽ "തകർക്കാൻ" കഴിയും. നിങ്ങളുടെ മാക്രോകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് അറിയാത്ത സഹപ്രവർത്തകരുമായി നിങ്ങളുടെ ഫയൽ പങ്കിടുകയാണെങ്കിൽ ഇത് പ്രത്യേകിച്ചും സാധ്യമാണ്.ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് തികച്ചും പ്രവർത്തിക്കുന്ന ഒരു മാക്രോ ഉള്ള ഒരു ഫയൽ ഉണ്ട്. ഈ ഫോർമുല A1 മുതൽ A4 വരെയുള്ള സെല്ലിന്റെ ശതമാനം കണക്കാക്കുന്നു. മാക്രോ ഈ കോശങ്ങളുടെ നിറം മഞ്ഞയായി മാറ്റുന്നു. സജീവ സെല്ലിൽ ഒരു ശതമാനം ഫോർമാറ്റ് സജ്ജീകരിച്ചിരിക്കുന്നു.
നിങ്ങളോ മറ്റാരെങ്കിലുമോ ഒരു പുതിയ വരി ചേർക്കാൻ തീരുമാനിക്കുകയാണെങ്കിൽ, മാക്രോ A4 സെല്ലിലെ മൂല്യം തിരയുന്നത് തുടരും ( നിങ്ങളുടെ യു.ഡി.എഫിലെ 4,1 പാരാമീറ്റർ), പരാജയപ്പെടുകയും ഒരു പിശക് തിരികെ നൽകുകയും ചെയ്യുക:
ഈ സാഹചര്യത്തിൽ, പൂജ്യം കൊണ്ട് ഹരിച്ചതിനാൽ പിശക് സംഭവിച്ചു (പുതുതായി ചേർത്തതിൽ മൂല്യമില്ല വരി). മാക്രോ നിർവ്വഹിക്കുന്ന സാഹചര്യത്തിൽ, നമുക്ക് പറയാം, സംഗ്രഹം, അപ്പോൾ നിങ്ങൾക്ക് ഒരു തെറ്റായ ഫലം ലഭിക്കും. എന്നാൽ നിങ്ങൾ അതിനെക്കുറിച്ച് അറിയുകയില്ല.
മാക്രോകളിൽ നിന്ന് വ്യത്യസ്തമായി, ഉപയോക്തൃ നിർവചിച്ച ഫംഗ്ഷനുകൾക്ക് അത്തരം അസുഖകരമായ സാഹചര്യം ഉണ്ടാക്കാൻ കഴിയില്ല.
താഴെ നിങ്ങൾ ഇതിന്റെ പ്രകടനം കാണുന്നുUDF ഉപയോഗിച്ചുള്ള അതേ കണക്കുകൂട്ടലുകൾ. ഇവിടെ നിങ്ങൾക്ക് വർക്ക്ഷീറ്റിൽ എവിടെയും ഇൻപുട്ട് സെല്ലുകൾ വ്യക്തമാക്കാൻ കഴിയും, അത് മാറ്റുമ്പോൾ നിങ്ങൾക്ക് അപ്രതീക്ഷിതമായ പ്രശ്നങ്ങളൊന്നും നേരിടേണ്ടിവരില്ല.
ഞാൻ ഇനിപ്പറയുന്ന ഫോർമുല C3-ൽ എഴുതി:
=UDF_vs_Macro(A1,A4)
പിന്നെ ഞാൻ ഒരു ശൂന്യമായ വരി ചേർത്തു, മുകളിലെ സ്ക്രീൻഷോട്ടിൽ നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ ഫോർമുല മാറ്റി.
ഇപ്പോൾ നമുക്ക് ഒരു ഇൻപുട്ട് സെല്ലോ ഒരു ഫംഗ്ഷനുള്ള ഒരു സെല്ലോ എവിടെയും നീക്കാം. ഫലം എല്ലായ്പ്പോഴും ശരിയായിരിക്കും.
ഇൻപുട്ട് സെല്ലിലെ മൂല്യം മാറുമ്പോൾ അവ യാന്ത്രികമായി അപ്ഡേറ്റ് ചെയ്യുന്നു എന്നതാണ് UDF-കൾ ഉപയോഗിക്കുന്നതിന്റെ ഒരു അധിക നേട്ടം. മാക്രോകൾ ഉപയോഗിക്കുമ്പോൾ, എല്ലാ ഡാറ്റയും അപ് ടു ഡേറ്റ് ആണെന്ന് നിങ്ങൾ എല്ലായ്പ്പോഴും ഉറപ്പാക്കണം.
ഈ ഉദാഹരണം മനസ്സിൽ വെച്ചുകൊണ്ട്, സാധ്യമാകുന്നിടത്തെല്ലാം UDF-കൾ ഉപയോഗിക്കാനും മറ്റ് കണക്കുകൂട്ടൽ ഇതര പ്രവർത്തനങ്ങൾക്ക് മാത്രം മാക്രോകൾ ഉപയോഗിക്കാനും ഞാൻ ആഗ്രഹിക്കുന്നു.
UDF ഉപയോഗിക്കുന്നതിന്റെ പരിമിതികളും ദോഷങ്ങളും
ഞാൻ മുകളിൽ UDF ന്റെ ഗുണങ്ങൾ സൂചിപ്പിച്ചിട്ടുണ്ട്. ഒരു നീണ്ട കഥ, സാധാരണ Excel ഫംഗ്ഷനുകൾ ഉപയോഗിച്ച് സാധ്യമല്ലാത്ത കണക്കുകൂട്ടലുകൾ ഇതിന് നടത്താനാകും. കൂടാതെ, ദൈർഘ്യമേറിയതും സങ്കീർണ്ണവുമായ സൂത്രവാക്യങ്ങൾ സംരക്ഷിക്കാനും ഉപയോഗിക്കാനും കഴിയും, അവയെ ഒരൊറ്റ പ്രവർത്തനമാക്കി മാറ്റുന്നു. നിങ്ങൾക്ക് സങ്കീർണ്ണമായ സൂത്രവാക്യങ്ങൾ വീണ്ടും വീണ്ടും എഴുതേണ്ടിവരില്ല.
ഇനി യു ഡി എഫിന്റെ പോരായ്മകളെക്കുറിച്ച് കൂടുതൽ വിശദമായി സംസാരിക്കാം:
- യുഡിഎഫുകൾ സൃഷ്ടിക്കുന്നതിന് വിബിഎയുടെ ഉപയോഗം ആവശ്യമാണ്. അതിനൊരു വഴിയുമില്ല. എക്സൽ മാക്രോ പോലെ തന്നെ യു ഡി എഫിനെ റെക്കോർഡ് ചെയ്യാൻ ഉപയോക്താവിന് കഴിയില്ല എന്നാണ് ഇതിനർത്ഥം. യു ഡി എഫ് നിങ്ങൾ തന്നെ ഉണ്ടാക്കണം. എന്നിരുന്നാലും, നിങ്ങൾക്ക് പകർത്താനും കഴിയുംമുമ്പ് റെക്കോർഡ് ചെയ്ത മാക്രോ കോഡിന്റെ ഭാഗങ്ങൾ നിങ്ങളുടെ പ്രവർത്തനത്തിലേക്ക് ഒട്ടിക്കുക. ഇഷ്ടാനുസൃത ഫംഗ്ഷനുകളുടെ പരിമിതികളെക്കുറിച്ച് നിങ്ങൾ അറിഞ്ഞിരിക്കണം.
- മറ്റേതൊരു എക്സൽ ഫംഗ്ഷനെപ്പോലെ ഇതിന് ഒരു സെല്ലിലേക്ക് ഒരു മൂല്യമോ മൂല്യങ്ങളുടെ ഒരു നിരയോ മാത്രമേ തിരികെ നൽകാൻ കഴിയൂ എന്നതാണ് യു.ഡി.എഫിന്റെ മറ്റൊരു പോരായ്മ. ഇത് ലളിതമായി കണക്കുകൂട്ടലുകൾ നടത്തുന്നു, കൂടുതലൊന്നും ഇല്ല.
- നിങ്ങളുടെ വർക്ക്ബുക്ക് നിങ്ങളുടെ സഹപ്രവർത്തകരുമായി പങ്കിടാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, അതേ ഫയലിൽ തന്നെ നിങ്ങളുടെ UDF-കൾ സംരക്ഷിക്കുന്നത് ഉറപ്പാക്കുക. അല്ലെങ്കിൽ, നിങ്ങളുടെ ഇഷ്ടാനുസൃത ഫംഗ്ഷനുകൾ അവയ്ക്കായി പ്രവർത്തിക്കില്ല.
- VBA എഡിറ്റർ ഉപയോഗിച്ച് സൃഷ്ടിച്ച ഇഷ്ടാനുസൃത പ്രവർത്തനങ്ങൾ സാധാരണ ഫംഗ്ഷനുകളേക്കാൾ വേഗത കുറവാണ്. വലിയ പട്ടികകളിൽ ഇത് പ്രത്യേകിച്ചും ശ്രദ്ധേയമാണ്. നിർഭാഗ്യവശാൽ, VBA ഇതുവരെ വളരെ വേഗത കുറഞ്ഞ പ്രോഗ്രാമിംഗ് ഭാഷയാണ്. അതിനാൽ, നിങ്ങൾക്ക് ധാരാളം ഡാറ്റ ഉണ്ടെങ്കിൽ, സാധ്യമാകുമ്പോഴെല്ലാം സ്റ്റാൻഡേർഡ് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കാൻ ശ്രമിക്കുക, അല്ലെങ്കിൽ LAMBDA ഫംഗ്ഷൻ ഉപയോഗിച്ച് UDF-കൾ സൃഷ്ടിക്കുക.
ഇഷ്ടാനുസൃത പ്രവർത്തന പരിമിതികൾ:
- UDF-കൾ കണക്കുകൂട്ടലുകൾ നടത്താനും ഒരു മൂല്യം തിരികെ നൽകാനും രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു. മാക്രോകളുടെ സ്ഥാനത്ത് അവ ഉപയോഗിക്കാൻ കഴിയില്ല.
- മറ്റൊരു സെല്ലിന്റെയും ഉള്ളടക്കം മാറ്റാൻ അവർക്ക് കഴിയില്ല (സജീവമായ സെൽ മാത്രം).
- ഫംഗ്ഷൻ നാമങ്ങൾ ചില നിയമങ്ങൾ പാലിക്കണം. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ഒരു നേറ്റീവ് Excel ഫംഗ്ഷൻ പേരുമായോ AB123 പോലുള്ള ഒരു സെൽ വിലാസവുമായോ പൊരുത്തപ്പെടുന്ന ഒരു പേര് ഉപയോഗിക്കാൻ കഴിയില്ല.
- നിങ്ങളുടെ ഇഷ്ടാനുസൃത ഫംഗ്ഷനിൽ പേരിൽ സ്പെയ്സ് അടങ്ങിയിരിക്കരുത്, പക്ഷേ അതിൽ അടിവരയിടുന്ന പ്രതീകം ഉൾപ്പെടുത്താം. എന്നിരുന്നാലും, ഓരോ പുതിയതിന്റെയും തുടക്കത്തിൽ വലിയ അക്ഷരങ്ങൾ ഉപയോഗിക്കുന്നതാണ് അഭികാമ്യമായ രീതിword (ഉദാഹരണത്തിന്, GetMaxBetween).
- ഒരു UDF-ന് വർക്ക്ഷീറ്റിന്റെ മറ്റ് മേഖലകളിലേക്ക് സെല്ലുകൾ പകർത്തി ഒട്ടിക്കാൻ കഴിയില്ല.
- അവർക്ക് സജീവമായ വർക്ക്ഷീറ്റ് മാറ്റാൻ കഴിയില്ല.
- UDF-കൾക്ക് കഴിയും' t സജീവ സെല്ലിലെ ഫോർമാറ്റിംഗ് മാറ്റുക. വ്യത്യസ്ത മൂല്യങ്ങൾ പ്രദർശിപ്പിക്കുമ്പോൾ ഒരു സെല്ലിന്റെ ഫോർമാറ്റിംഗ് മാറ്റണമെങ്കിൽ, നിങ്ങൾ സോപാധിക ഫോർമാറ്റിംഗ് ഉപയോഗിക്കണം.
- അവർക്ക് അധിക പുസ്തകങ്ങൾ തുറക്കാൻ കഴിയില്ല.
- Application.OnTime ഉപയോഗിച്ച് മാക്രോകൾ പ്രവർത്തിപ്പിക്കാൻ അവ ഉപയോഗിക്കാനാവില്ല. .
- മാക്രോ റെക്കോർഡർ ഉപയോഗിച്ച് ഉപയോക്തൃ-നിർവചിച്ച ഫംഗ്ഷൻ സൃഷ്ടിക്കാനാവില്ല.
- ഫംഗ്ഷനുകൾ ഡെവലപ്പർ > Macros ഡയലോഗ്.
- നിങ്ങളുടെ ഫംഗ്ഷനുകൾ ഡയലോഗ് ബോക്സിലും ( Insert > Function ) ഫംഗ്ഷനുകളുടെ ലിസ്റ്റിലും അവ പൊതു<7 ആയി പ്രഖ്യാപിച്ചാൽ മാത്രം ദൃശ്യമാകും> (ഇത് സ്ഥിരസ്ഥിതിയാണ്, മറ്റുവിധത്തിൽ ശ്രദ്ധിക്കപ്പെടാത്ത പക്ഷം).
- സ്വകാര്യം എന്ന് പ്രഖ്യാപിച്ച ഫംഗ്ഷനുകളൊന്നും ഫീച്ചർ ലിസ്റ്റിൽ ദൃശ്യമാകില്ല.
വളരെ മന്ദഗതിയിലുള്ള പ്രവർത്തനം , കൂടാതെ ഉപയോഗത്തിലുള്ള ചില നിയന്ത്രണങ്ങളും നിങ്ങളെ ചിന്തിപ്പിച്ചേക്കാം: "ഈ ഇഷ്ടാനുസൃത ഫംഗ്ഷനുകളുടെ പ്രയോജനം എന്താണ്?"
അവ ഉപയോഗപ്രദമാകും, മാത്രമല്ല അവയിൽ ഏർപ്പെടുത്തിയിരിക്കുന്ന നിയന്ത്രണങ്ങളെക്കുറിച്ച് ഞങ്ങൾ ശ്രദ്ധാലുവാണെങ്കിൽ അത് ചെയ്യാം. യു ഡി എഫുകൾ എങ്ങനെ ശരിയായി സൃഷ്ടിക്കാമെന്നും ഉപയോഗിക്കാമെന്നും നിങ്ങൾ പഠിക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ ഫംഗ്ഷനുകളുടെ ലൈബ്രറി നിങ്ങൾക്ക് എഴുതാം. ഇത് Excel-ലെ ഡാറ്റ ഉപയോഗിച്ച് പ്രവർത്തിക്കാനുള്ള നിങ്ങളുടെ കഴിവിനെ വളരെയധികം വിപുലീകരിക്കും.
എന്നെ സംബന്ധിച്ചിടത്തോളം, ഇഷ്ടാനുസൃത പ്രവർത്തനങ്ങൾ മികച്ച സമയം ലാഭിക്കുന്നവയാണ്. പിന്നെ നിങ്ങളുടെ കാര്യമോ? നിങ്ങളുടെ സ്വന്തം യുഡിഎഫ് സൃഷ്ടിക്കാൻ നിങ്ങൾ ഇതിനകം ശ്രമിച്ചിട്ടുണ്ടോ? ഇത് നിങ്ങൾക്കിഷ്ടമായോഅടിസ്ഥാന എക്സൽ ഫംഗ്ഷനുകളേക്കാൾ മികച്ചത്? അഭിപ്രായങ്ങളിൽ അത് ചർച്ച ചെയ്യാം :)