Excelda SUM, VLOOKUP, LEFT va boshqalar kabi yuzlab o'rnatilgan funktsiyalar mavjud bo'lsa-da, mavjud o'rnatilgan funktsiyalar odatda juda murakkab vazifalarni bajarish uchun etarli emas. Xavotir olmang, chunki kerakli funktsiyalarni faqat o'zingiz yaratishingiz kerak.
Qadam

Qadam 1. Yangi ish daftarchasini yarating yoki foydalanuvchi tomonidan belgilangan funktsiyalar (UDF) bilan ishlov berishni xohlagan ishchi kitobni oching

Qadam 2. Microsoft Excel-da Tools-> Makro-> Visual Basic Editor orqali Visual Basic Editor-ni oching (yoki Alt+F11 yorliqlarini bosing)

Qadam 3. Ish sahifangizga yangi modul qo'shish uchun Module tugmasini bosing
Siz ishchi daftarchasida yangi modul qo'shmasdan UDF yaratishingiz mumkin, lekin bu ish kitobining boshqa varaqlarida ishlamaydi.

Qadam 4. O'zingizning funktsiyangizning "boshi" yoki "prototipini" yarating
Funktsiya prototipi quyidagi tuzilishga mos kelishi kerak:
"Funktsiya nomi" umumiy funktsiyasi (parametr1 turi 1, parametr2 turi 2 kabi) Natija turi sifatida.
Prototiplar iloji boricha ko'proq funktsiyaga ega bo'lishi mumkin va ularning turlari Range ko'rinishidagi barcha asosiy ma'lumotlar turlari yoki Excel ob'ekt turlari bo'lishi mumkin. Siz parametrlarni funktsiya ishlaydigan "operatorlar" (operatorlar) deb o'ylashingiz mumkin. Masalan, sinusni 45 gradusni hisoblash uchun SIN (45) yozganingizda, parametr sifatida 45 raqami olinadi. Keyin, funktsiya kodi bu qiymatlarni hisoblarni bajarish va natijalarni ko'rsatish uchun ishlatadi.

5 -qadam. Siz ishonch hosil qilish uchun funktsiya kodini qo'shing: 1) parametr tomonidan berilgan qiymatdan foydalaning; 2) natijani funksiya nomiga berish; 3) funktsiyani "tugatish funktsiyasi" jumlasi bilan yoping.. VBA yoki boshqa tilda dastur o'rganish ko'p vaqt va batafsil ko'rsatmalarni talab qiladi. Yaxshiyamki, bu funktsiyalar odatda kichik kod bloklariga ega va dasturlash tili xususiyatlaridan unchalik foydalanmaydi. Bu erda VBA tilining ba'zi elementlari ishlatilishi mumkin:
- If (if) bloki, bu sizga shart bajarilgan taqdirdagina kodning bir qismini bajarishga imkon beradi. Misol tariqasida:
- . Kodning ikkinchi qismi bilan bir qatorda, boshqa kalit so'zni qoldirishingiz mumkin, chunki bu ixtiyoriy.
- Vaqt yoki Qachon kodining bir qismini shart bajarilganda yoki bajarguncha bajaradigan Do (do) bloki. Misol tariqasida:
- . O'zgaruvchini "e'lon qiladigan" ikkinchi qatorga ham e'tibor bering. Keyinchalik ishlatish uchun kodingizga o'zgaruvchilar qo'shishingiz mumkin. O'zgaruvchilar kodda vaqtinchalik qiymatlar vazifasini bajaradi. Nihoyat, funktsiya deklaratsiyasini BOOLEAN sifatida ko'rib chiqing, bu faqat TRUE yoki FALSE qiymatlariga ruxsat beruvchi ma'lumotlar turi. Bosh sonlarni aniqlashning bu usuli maqbul emas, lekin kod shunday o'qilganki, shunday yozilganki.
- Blok uchun (to), bu ma'lum miqdordagi kodni bajaradi. Misol tariqasida:
- To'g'ridan -to'g'ri hujayra formulasiga yoziladigan doimiy qiymat. Bunday holda, matn (satr) tirnoqqa olinishi kerak.
- Masalan, hujayra havolalari B6 yoki shunga o'xshash diapazon A1: C3 (parametr "Range" ma'lumot turi bo'lishi kerak)
-
Sizning funktsiyangizga kiritilgan boshqa funktsiya (sizning funktsiyangiz boshqa funktsiyaga ham qo'shilishi mumkin), masalan: = Faktorial (MAX (D6: D8))
Microsoft Excel -da foydalanuvchi belgilaydigan funktsiyani yarating 7 -qadam Qadam 7. Natijalarning to'g'riligiga ishonch hosil qiling
Funktsiya turli parametr qiymatlarini to'g'ri boshqarishi mumkinligiga ishonch hosil qilish uchun uni bir necha marta ishlating:
Maslahatlar
- If, For, Do va hokazo kabi boshqaruv tuzilmalarida kod bloklarini yozishda, bo'sh joyni yoki yorliqni bir necha marta bosish orqali kod blokini kirgizib qo'ying (chap chiziq chegarasini biroz ichkariga kiriting). Bu kodni tushunishni osonlashtiradi va xatolarni topish ancha oson bo'ladi. Bundan tashqari, funksionallikni oshirish osonroq bo'ladi.
- Agar siz funktsiyalar uchun kod yozishni bilmasangiz, Microsoft Excel -da oddiy makroni qanday yozish haqida maqolani o'qing.
- Ba'zida natijalarni hisoblash uchun funktsiyalarga barcha parametrlar kerak emas. Bunday holda, funktsiya sarlavhasida parametr nomidan oldin Optional kalit so'zidan foydalanishingiz mumkin. Parametrga qiymat berilganmi yoki yo'qligini aniqlash uchun kodingizdagi IsMissing (parameter_name) funktsiyasidan foydalanishingiz mumkin.
- Excelda ishlatilmaydigan ismlarni funktsiyalar sifatida ishlating, shunda hech qanday funksiya qayta yozilmaydi va o'chirilmaydi.
- Excel-da ko'plab o'rnatilgan funktsiyalar mavjud va ko'pchilik hisob-kitoblar bu o'rnatilgan funktsiyalar yordamida ham alohida, ham birdaniga bajarilishi mumkin. O'zingizni kodlashni boshlashdan oldin, mavjud funktsiyalar ro'yxati bilan tanishib chiqing. Agar siz o'rnatilgan funktsiyalardan foydalansangiz, ijro tezroq bajarilishi mumkin.
Ogohlantirish
- Xavfsizlik nuqtai nazaridan, ko'p odamlar makrolarni o'chirib qo'yishadi. Ish daftarchasini qabul qiluvchilarga makrolar borligini va bu makrolar ularning kompyuterlariga zarar etkazmasligini bildirganingizga ishonch hosil qiling.
- Ushbu maqolada ishlatilgan funktsiya tegishli muammoni hal qilishning eng yaxshi usuli emas. Misol tilni boshqarish tuzilmalaridan foydalanishni tushuntirish uchun ishlatiladi.
- VBA, boshqa tillar singari, Do, If va For -dan tashqari yana bir nechta boshqaruv tuzilmalariga ega. Bu erda muhokama qilingan tuzilma faqat funksiyaning manba kodida nima qilish mumkinligini tasvirlaydi. Internetda VBA -ni o'rganishga yordam beradigan ko'plab qo'llanmalar mavjud.
Umumiy funktsiya kursi natijasi (butun son sifatida) String sifatida
Agar qiymat> = 5 bo'lsa
Kurs natijalari = "Qabul qilingan"
Boshqa
Kurs natijalari = "Rad etildi"
Agar tugasa
Tugatish funktsiyasi
If kod blokidagi elementlarga e'tibor bering:
IF sharti BOShQA kodi ENDI IF
BilPrima umumiy funktsiyasi (qiymati butun son sifatida) mantiqiy
Dim va butun son
i = 2
BilPrima = To'g'ri
Qil
Agar qiymat / i = Int (qiymat / i) Keyin
BilPrima = noto'g'ri
Agar tugasa
i = i + 1
Loop While i <value And NumberPrima = True
Tugatish funktsiyasi
Yana elementlarga qarang:
LOOP WHILE/UNTIL shartini bajaring
Umumiy funktsiya faktoriali (qiymati butun son sifatida)
Kam natijalar
Dim va butun son
Agar qiymat = 0 bo'lsa
natija = 1
ElseIf qiymati = 1 Keyin
natija = 1
Boshqa
natija = 1
I = 1 uchun
natija = natija * i
Keyingi
Agar tugasa
Faktorial = natija
Tugatish funktsiyasi
Yana elementlarga qarang:
FOR o'zgaruvchisi uchun = pastki chegarasi TO kodining keyingi chegarasi
. Bundan tashqari, If bayonotida qo'shimcha ElseIf elementiga e'tibor bering, bu sizga bajarilayotgan kodga qo'shimcha variantlarni qo'shish imkonini beradi. Nihoyat, "natija" funktsiyasini va Long deb e'lon qilingan o'zgaruvchini ko'rib chiqing. Uzoq ma'lumotlar turi Integerga qaraganda ancha katta qiymatlarga ruxsat beradi.
Quyida kichik sonlarni so'zlarga aylantiradigan funksiyaning kodi ko'rsatilgan.

Qadam 6. Ish daftarchasiga qayting va "teng" belgisini (=) yozib, undan keyin yacheykadagi funktsiyani yozib, funktsiyadan foydalaning
Belgidan foydalanib, funktsiya nomidan keyin ochiladigan qavslarni ("(") yozing koma Parametrlarni ajratish va qavs (")" bilan tugatish). Misol tariqasida:
= NumberToLetter (A4)
. Shuningdek, uy formulalarini toifalar bo'yicha qidirish orqali ham foydalanishingiz mumkin Foydalanuvchi tomonidan aniqlangan Formulani qo'shish opsiyasi ichida. Siz faqat tugmani bosishingiz kerak Fx formula satrining chap tomonida. Funktsiyalarda uch xil parametr shakllari mavjud: