Excel Makro Eğitimleri- Function ile Faktöriyel Bulma

Merhaba,

Excel Makro dersinden anladıklarımı, yaptığımız örnekleri burada yapmaya çalışacağım.  Bir önceki yazımda basit bit toplama işlemi yapmıştık. Şimdi ise Kullanıcı Tanımlı Fonksiyonlar(KTF) konusunda Function ile Faktöriyel bulma işlemini yapmaya çalışalım.

Kullanıcı Tanımlı Fonksiyonların İngilizce adı: User Defined Function (UDF).

Function nedir?

Excel’de birçok Yerleşik Fonksiyon mevcuttur. Fakat bunlar bazen yapmak istediğiniz işi görmeyebilirler. Belki de biz kendimize özel bir program hazırlamak istiyoruz ve burada kullanmak istediğiniz bir fonksiyon Excel’de yok. O halde kendi Fonksiyonunuzu hazırlamalı ve Excel Çalışma Sayfasında kullanılabilir hale getirmelisiniz. İşte bu hazırladığınız fonksiyona Kullanıcı Tanımlı Fonksiyon denmektedir. 

Function Genel Görünüşü:

Function Fonksiyon_adı([Değişken1] as tip , [Değişken2] as tip,…)
‘kodlar
‘kodlar
Fonksiyon_adı=[atanan değer]
End Function

 

 Mesela bir sayının iki katını alalım.

Function abc (k) 

abc=2 * k 

End Function

Kırmızı yazdığım yerler aynı olmak zorunda.  Excel sayfasına gelelim. “=abc(istediğimiz sayı)” yaptığımızda verdiğimiz saynın iki katını alırız.

 

Şimdi işimize daha çok yarayabileyecek bir örnek yapalım. Bir sayının faktöriyelini alalım.

Önce yanlışından başlayalım 🙂

Function fkt(a)
For p = 1 To a
w = w * p
Next
fkt = w

 

Normalde 120 demesi gerekiyordu ancak “0” değerini verdi. Belki yanlışı buldunuz ama hemen açıklayalım.

VB w başlangıç değerini 0 olarak olmaktadır.Her defasında 0 ile çarptığı için de sonuç 0 oldu. w’ye 1 sayısını atayabiliriz çünkü 1 sayısının her sayıyla çarpımı kendisini verir.

Peki w=1 atamasını nereye koyacağız? 

w=1 atamasını for döngünün üstüne koyduğumuzda problem ortadan kalkmaktadır.

Peki ya negatif değer girersek?

Matematikte negatif değerlerin faktöriyeli olmaz. Bu örnekte bunu düşünüp düzeltme yapmalıyız.

“Function fkt(a)
w = 1
If a < 0 Then
fkt = “Hatalı veri”
Else

For p = 1 To a
w = w * p
Next
fkt = w
End If”

Eklemeleri koyu renkte gösterdim. Örneğimizin son hali budur.

Bir sonraki örneklerde görüşmek üzere.

Hoşçakalın 🙂

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz