Özel Fonksiyon Nedir?
İngilizce: User-Defined Function
Yayın: · Son güncelleme:
Özel Fonksiyon Nedir? Kısaca
Özel fonksiyon, Excel'in hazır fonksiyonları dışında kullanıcının kendisinin tanımladığı fonksiyondur. Geleneksel olarak VBA ile yazılır; Microsoft 365'te LAMBDA ile formül düzeyinde de oluşturulabilir. İngilizcede user-defined function (UDF) denir.

Özel fonksiyon nedir?
Excel yüzlerce hazır fonksiyon sunar, ama her iş için bir karşılık yoktur. Şirketinize özgü bir prim hesabını ya da karmaşık bir indirim kuralını her seferinde uzun bir formülle yazmak yerine ona bir ad verip tek fonksiyon gibi kullanabilirsiniz. Bu şekilde tanımlanan fonksiyonlara özel fonksiyon denir.
Kullanıldığı anda hazır fonksiyonlardan farkı yoktur. Örneğin =PRIM(C2;D2) yazarsınız ve Excel sizin tanımladığınız kurala göre sonucu döndürür.
Nasıl oluşturulur?
İlk yol VBA'dır. Geliştirici sekmesinden VBA düzenleyicisini açar, bir modül ekler ve Function ile başlayan bir kod bloğu yazarsınız. Bu fonksiyon yalnız o çalışma kitabında, ya da kişisel makro çalışma kitabına kaydedildiyse sizin bilgisayarınızda çalışır. Dosya makro içerdiği için .xlsm olarak kaydedilmelidir.
İkinci yol, Microsoft 365'teki LAMBDA fonksiyonudur. Bu yöntemde kod yazmazsınız. Formülü LAMBDA ile tanımlar ve ad yöneticisi üzerinden bir ada atarsınız. Dosya .xlsx olarak kalabilir ve makro uyarısı çıkmaz.
Örnek kullanım
Varsayımsal bir satış ekibinde prim, satış hedefi aşılınca aşan kısmın belli bir yüzdesi olarak hesaplanıyor olsun. Bu kuralı her hücreye EĞER zinciriyle yazmak yerine PRIM adlı bir özel fonksiyon tanımlamak hem formülleri kısaltır hem de kural değiştiğinde tek yerden güncelleme yapmayı sağlar.
Sınırları nelerdir?
VBA ile yazılan fonksiyonlar web için Excel'de ve mobil uygulamalarda çalışmaz. Makroları engelleyen güvenlik ayarları da fonksiyonun çalışmasını durdurabilir. Tanımadığınız kaynaktan gelen makrolu dosyaları açarken dikkatli olun; özel fonksiyon kılığında zararlı kod da bulunabilir. LAMBDA ise yalnız destekleyen sürümlerde çalışır.
Sıkça Sorulan Sorular
Özel fonksiyon yazmak için programlama bilmek gerekir mi?
VBA yönteminde temel düzeyde kod yazmak gerekir. Microsoft 365'teki LAMBDA ise formül bilgisiyle oluşturulur ve kod gerektirmez.
Özel fonksiyon başka bilgisayarda çalışır mı?
VBA fonksiyonu dosyanın içindeyse ve makrolar etkinse çalışır. Kişisel makro çalışma kitabına kaydedilen fonksiyonlar ise yalnız sizin bilgisayarınızda bulunur.