Excelda maxsus funksiyalarning afzalliklari va kamchiliklari

  • Buni Baham Ko'Ring
Michael Brown

Biz foydalanuvchi tomonidan belgilangan funksiyalar boʻyicha oʻquv qoʻllanmalarini davom ettirmoqdamiz. Oldingi maqolalarimizda biz maxsus funktsiyalar bilan tanishdik va ularni qanday yaratish va ishlatishni o'rgandik. Ushbu qo'llanmada biz ushbu funksiyalardan foydalanishning o'ziga xos xususiyatlarini ko'rib chiqamiz va UDF va VBA makroslari o'rtasidagi farqlarni ko'rib chiqamiz.

Ushbu qo'llanmada biz quyidagilarni bilib olamiz:

    Umid qilamizki, ushbu maqola UDF haqidagi bilimlaringizni oshiradi va ulardan Excel ish kitoblarida yanada samarali foydalanishga yordam beradi.

    UDF va Makro bir xil narsami?

    Ikkala foydalanuvchi tomonidan belgilangan funktsiyalar va VBA makroslar VBA muharriri yordamida yaratiladi. Ularning bir-biridan farqi nimada va nimalarga ustunlik berish kerak?

    Eng muhim farq shundaki, funksiya hisoblashni amalga oshiradi, makro esa ba'zi amallarni bajaradi. Oddiy Excel funksiyasi kabi foydalanuvchi tomonidan belgilangan funksiya hujayraga yozilishi kerak. Uning bajarilishi natijasida hujayra qandaydir qiymatni qaytaradi. Shu bilan birga, boshqa kataklarning qiymatlarini, shuningdek, joriy katakning ba'zi xususiyatlarini (xususan, formatlashni) o'zgartirish mumkin emas. Biroq, shartli formatlash formulalarida maxsus funktsiyadan foydalanishingiz mumkin.

    UDF va VBA makrosi turli usullarda ishlaydi. Masalan, Visual Basic muharririda UDF yaratishda siz Funktsiya bayoni bilan boshlaysiz va Funktsiyani tugatish bilan yakunlaysiz. Makrosni yozib olganingizda, siz a bilan boshlaysiz Sub bayonoti va End Sub bilan tugaydi.

    UDF yaratish uchun hamma Visual Basic operatorlaridan ham foydalanish mumkin emas. Shu sababli, so'l ko'p qirrali yechim hisoblanadi.

    Makro foydalanuvchi belgilagan funksiyadan farqli o'laroq, foydalanuvchidan biron bir argumentni (argumentlarni ham qabul qila olmaydi) o'tkazishni talab qilmaydi.

    Gap shundaki, makroslarning ba'zi buyruqlari hujayra manzillari yoki formatlash elementlaridan (masalan, rang) foydalanishi mumkin. Agar siz hujayralarni ko'chirsangiz, qatorlar va ustunlarni qo'shsangiz yoki olib tashlasangiz, hujayralar formatini o'zgartirsangiz, makroslaringizni osongina "buzishingiz" mumkin. Bu, ayniqsa, agar siz makroslaringiz qanday ishlashini bilmagan hamkasblaringiz bilan faylni baham ko'rsangiz mumkin.

    Masalan, sizda mukammal ishlaydigan makrosga ega fayl mavjud. Ushbu formula A1 dan A4 gacha bo'lgan kataklarning foizini hisoblab chiqadi. Makro bu hujayralarning rangini sariq rangga o'zgartiradi. Faol katakchada foiz formati oʻrnatiladi.

    Agar siz yoki boshqa birov yangi qator qoʻshishga qaror qilsangiz, soʻl A4 katakchadagi qiymatni qidirishni davom ettiradi ( UDF-dagi 4,1 parametri), muvaffaqiyatsizlikka uchradi va xatoni qaytaring:

    Bunday holatda xato nolga bo'linish tufayli yuzaga keldi (yangi qo'shilgan parametrda qiymat yo'q) qator). Agar makro bajarilsa, aytaylik, yig'indi, keyin siz shunchaki noto'g'ri natijaga erishasiz. Lekin siz bu haqda bilmay qolasiz.

    Makrolardan farqli o'laroq, foydalanuvchi tomonidan belgilangan funksiyalar bunday noxush holatni keltirib chiqara olmaydi.

    Quyida siz uning ishlashini ko'rasiz.UDF yordamida bir xil hisoblar. Bu yerda siz ishchi varaqning istalgan joyida kiritish katakchalarini belgilashingiz mumkin va uni o‘zgartirishda hech qanday kutilmagan muammolarga duch kelmaysiz.

    Men C3 da quyidagi formulani yozdim:

    =UDF_vs_Macro(A1,A4)

    Keyin men boʻsh qator qoʻydim va formula yuqoridagi skrinshotda koʻrib turganingizdek oʻzgardi.

    Endi biz kiritish katakchasini yoki funksiyasi boʻlgan katakni istalgan joyga koʻchirishimiz mumkin. Natija har doim to'g'ri bo'ladi.

    UDF-lardan foydalanishning qo'shimcha afzalligi shundaki, ular kirish katakchasidagi qiymat o'zgarganda avtomatik ravishda yangilanadi. Makroslardan foydalanganda har doim barcha maʼlumotlarning yangilanganligiga ishonch hosil qilishingiz kerak.

    Ushbu misolni yodda tutgan holda, iloji boricha UDF-lardan foydalanishni va makroslarni faqat boshqa hisoblanmaydigan amallar uchun ishlatishni afzal koʻraman.

    UDF dan foydalanishning cheklovlari va kamchiliklari

    Men yuqorida UDF ning afzalliklari haqida aytib o'tdim. Qisqasi, standart Excel funktsiyalari bilan mumkin bo'lmagan hisob-kitoblarni amalga oshirishi mumkin. Bundan tashqari, u uzoq va murakkab formulalarni saqlashi va ishlatishi, ularni yagona funktsiyaga aylantirishi mumkin. Va siz murakkab formulalarni qayta-qayta yozishingiz shart emas.

    Endi UDF ning kamchiliklari haqida batafsil toʻxtalib oʻtamiz:

    • UDF yaratish VBA dan foydalanishni talab qiladi. Buning atrofida hech qanday yo'l yo'q. Bu shuni anglatadiki, foydalanuvchi UDF ni Excel makrosidagi kabi yozib ololmaydi. UDFni o'zingiz yaratishingiz kerak. Biroq, siz nusxa ko'chirishingiz mumkin vaavval yozib olingan so'l kodning qismlarini funksiyangizga joylashtiring. Siz shunchaki maxsus funksiyalarning cheklovlaridan xabardor bo'lishingiz kerak.
    • UDF ning yana bir kamchiligi shundaki, u boshqa Excel funksiyalari singari hujayraga faqat bitta qiymat yoki qiymatlar massivini qaytarishi mumkin. U shunchaki hisob-kitoblarni amalga oshiradi, boshqa hech narsa emas.
    • Agar siz ish kitobingizni hamkasblaringiz bilan baham ko'rmoqchi bo'lsangiz, UDF-laringizni bir xil faylda saqlang. Aks holda, sizning shaxsiy funksiyalaringiz ular uchun ishlamaydi.
    • VBA muharriri bilan yaratilgan maxsus funksiyalar oddiy funksiyalarga qaraganda sekinroq. Bu, ayniqsa, katta stollarda seziladi. Afsuski, VBA hozirgacha juda sekin dasturlash tilidir. Shuning uchun, agar sizda juda ko'p ma'lumotlar bo'lsa, iloji boricha standart funktsiyalardan foydalanishga harakat qiling yoki LAMBDA funksiyasidan foydalanib UDF-larni yarating.

    Maxsus funksiya cheklovlari:

    • UDFlar hisob-kitoblarni amalga oshirish va qiymatni qaytarish uchun mo'ljallangan. Ularni makroslar oʻrniga ishlatib boʻlmaydi.
    • Ular boshqa kataklarning mazmunini oʻzgartira olmaydi (faqat faol hujayra).
    • Funktsiya nomlari maʼlum qoidalarga amal qilishi kerak. Masalan, AB123 kabi mahalliy Excel funksiyasi nomiga yoki katak manziliga mos keladigan nomdan foydalana olmaysiz.
    • Sizning maxsus funksiyangiz nomdagi boʻshliqlarni oʻz ichiga olmaydi, lekin u pastki chiziq belgisini oʻz ichiga olishi mumkin. Biroq, afzal qilingan usul - har bir yangining boshida katta harflardan foydalanishword (masalan, GetMaxBetween).
    • UDF hujayralarni ishchi varaqning boshqa joylariga nusxalash va joylashtirish mumkin emas.
    • Ular faol ish varag'ini o'zgartira olmaydi.
    • UDF'lar' t faol hujayradagi formatlashni o'zgartirish. Agar siz turli qiymatlarni ko'rsatayotganda katak formatini o'zgartirmoqchi bo'lsangiz, shartli formatlashdan foydalaning.
    • Ular qo'shimcha kitoblarni ocholmaydi.
    • Ulardan Application.OnTime yordamida makroslarni ishga tushirishda foydalanib bo'lmaydi. .
    • Foydalanuvchi tomonidan belgilangan funktsiyani so'l yozuvchisi yordamida yaratib bo'lmaydi.
    • Funktsiyalar Dasturchi > Makroslar dialog oynasi.
    • Sizning funksiyalaringiz dialog oynasida ( Insert > Function ) va funksiyalar roʻyxatida faqat Ommaviy<7 deb eʼlon qilingan taqdirda paydo boʻladi> (agar boshqacha ko'rsatilmagan bo'lsa, bu birlamchi hisoblanadi).
    • Maxfiy deb e'lon qilingan har qanday funksiyalar funksiyalar ro'yxatida ko'rinmaydi.

    Juda sekin ish. , shuningdek, foydalanishdagi ba'zi cheklovlar sizni o'ylashga majbur qilishi mumkin: "Ushbu maxsus funktsiyalardan nima foyda?"

    Ular foydali bo'lishi mumkin va agar biz ularga qo'yilgan cheklovlarni yodda tutsak. Agar siz UDF-larni qanday qilib to'g'ri yaratish va ulardan foydalanishni o'rgansangiz, o'zingizning funktsiyalar kutubxonangizni yozishingiz mumkin. Bu sizning Excelda ma'lumotlar bilan ishlash qobiliyatingizni sezilarli darajada kengaytiradi.

    Menga kelsak, maxsus funktsiyalar vaqtni tejaydi. O'zingda nima gaplar? O'zingizning UDF-ni yaratishga harakat qildingizmi? Sizga yoqdimiExcelning asosiy funktsiyalaridan yaxshiroqmi? Keling, buni Izohlarda muhokama qilamiz :)

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.