Kullanıcı Tanımlı Fonksiyon Yazmak İçin

Aynı tür girdileri kullanan, aynı amaçlı sonucu veren ve çok sık yaptığımız işlemleri bir fonksiyon oluşturup, Excel’in kendinde tanımlı fonksiyonları gibi kullanmak işlerimizi çok kolaylaştırabilir.

Bir fonksiyon, bir veya birden fazla girdi bilgisi (parametre) alır, amaca yönelik işlem yapar, en az ve en fazla tek bir sonuç verir. Fonksiyonun bu özelliği, fonksiyonlar ile ilgili gönderimimde belirttiğim gibi matematikte de aynıdır. (Fonksiyonlar ile ilgili diğer temel bilgiler için bu gönderimim okunabilir.)


Yapılacak İşlemler (Ana Hatlarıyla)

Bu amaçla önce bir fonksiyon oluşturma ortamımız olacak.

Bu fonksiyona bir veya birden fazla parametre almasını sağlayacağız.

Bu parametreleri kullanıp amaca göre işlemler yapacağız.

Bu işlemlerden sonra en az ve en fazla tek bir sonuç elde edeceğiz.

Sistem, fonksiyonu çağıran yere bu sonucu çıktı olarak gönderecek.

 

Yukarıda genel olarak sözünü ettiğimiz işlemleri, şimdi adım adım görelim:


Fonksiyonu oluşturma ortamımızı elde etmek için #Excel programında Alt-F11 yapalım. Açılan ekrandaki şerit menüden Insert seçeneğini seçelim. Açılan listede Module seçeneğini işaretleyelim. Program yazma için bir beyaz sayfa açılacaktır.

Bu sayfada öncelikle yazdığımızın fonksiyon olduğunu ‘Function’ terimiyle belirteceğiz ve fonksiyona bir isim vereceğiz.

Bir fonksiyon, If kontrolü, vs. yazdığımızda bunların bir bitiş satırı olmalı. Bu bitiş satırları örneğin ‘Function’ için ‘End Function’, ‘If’ için ‘End If’ şeklinde olmalı.

Tabii bir fonksiyondan bahsettiğimize göre fonksiyonun parametresini, birden fazlaysa parametrelerini bir parantez içinde belirteceğiz. (Bu parametrelerin veri tipleri de söz konusudur, ama burada kullanmadan konumuza devam edeceğiz.)  

 

Bu amaçla yazacağımız başlık satırı şöyle olacak:

Function <Fonksiyon-Adı> (<Parametre1>, <Parametre2>, …)

Fonksiyon işlem satırlarını bu ‘Function’ – ‘End Function’ bloğu içine yazacağız.

Şimdi şöyle bir örnek yazalım: Bu örnekte, parametrede seçilen hücreden alınan Karne Notunun 50 ile karşılaştırılması ve 50’den büyük veya eşitse fonskiyonun yazıldığı hücreye ‘Geçti’, değilse ‘Kaldı’ yazması olsun. Burada söz edilen karşılaştırma ile ilgili ‘If’ deyiminin yapısı, If ile ilgili gönderimimde bahsettiğim gibidir.

Söz konusu fonksiyonun yazılışı şöyledir:

Function KarneDurumu(KarneNotu)

 If KarneNotu >= 50 Then

  KarneDurumu = "Geçti"

 Else

  KarneDurumu = "Kaldı"

 End If

End Function 





 

 

 






Fonksiyonu bu şekilde oluşturduktan sonra, kaydetmeden önce şekilde olduğu gibi deneyelim:


Bu fonksiyonu daha sonraları kullanmak amacıyla kaydetmek için Ctrl-S yapalım, açılan ekrandaki Kayıt Türü alanında ‘Excel Eklentisi (*.xlam)’ seçeneğini seçelim ve Eklenti dosyamıza isim verip kaydedelim. Bu dosya sizin kendinize ait Kullanıcı klasörüne ilişkin AddIns klasörüne kaydolacaktır.


Bu dosyanın Excel programınız tarafından kullanılabilmesi için bu eklentinin programınıza yüklenmesi gerekmektedir. Bu amaçla Dosya menüsündeki Seçenekler seçeneğine ait ekranı açın. Açılan bu ekranda soldaki menüden Eklentiler seçeneğini işaretleyin. Bu menünün sağındaki formun sol altındaki Yönet alanında Excel Eklentileri seçiliyken Git düğmesini tıklayın. Açılan mini ekranda, daha önce kaydettiğiniz eklentiyi bulun ilgili seçim alanını işaretleyin.


Unutmayalım, kullanıcı tanımlı fonksiyonla üretilmiş bilgiler, dosya bu eklentinin bulunmadığı bir bilgisayara gönderildiğinde bu bilgisayarda görünmeyecektir. Bu amaçla o bilgisayara da bu eklentinin yüklenmesi gerekmektedir. 



Bu blogdaki popüler yayınlar

Power BI'da Yeni Sütun Eklemek

Power BI Kullanımına Giriş

Power BI Üzerinde Fonksiyon Oluşturma ve Kullanma

Kümülatif Toplam

Ağırlıklı Ortalama Hesabı

SQL'de Group By Yaparak Rapor Oluşturmak

SQL'de Birden Fazla Tablodan Listeleme Yapmak

ETarihli Fonksiyonu

Bir Ürünün En Son Tarihli Fiyatının Bulunması