Excel’de yıllardır aynı uzun formülü tekrar tekrar yazmaktan sıkıldıysanız, LAMBDA fonksiyonu tam size göre. Microsoft 365 ile gelen bu fonksiyon sayesinde kendi özel formüllerinizi tanımlayıp, tıpkı DÜŞEYARA veya ETOPLA gibi her hücrede tek bir komutla çağırabilirsiniz. Bu rehberde LAMBDA’nın nasıl çalıştığını, gerçek hayattan örneklerle nasıl kullanılacağını ve sık yapılan hataların nasıl önleneceğini adım adım göreceksiniz.
İçindekiler
LAMBDA Fonksiyonu Nedir?
LAMBDA, Excel’de kendi özel fonksiyonunuzu yazmanızı sağlayan bir araçtır. Bir başka deyişle: karmaşık bir hesaplamayı bir kez kurar, ona bir isim verir ve sonrasında o ismi normal bir formül gibi kullanırsınız. Excel’in 500’ün üzerinde hazır fonksiyonu olsa da bazen iş yerinizdeki özel hesaplamaları (örneğin şirketinize özel bir prim formülü ya da kendi sektörünüze ait bir oran) tek bir isimle çağırabilmek paha biçilemez bir kolaylık sağlar.
Eski Excel sürümlerinde bu işi yapmak için VBA ve makro bilmek gerekiyordu. LAMBDA ile artık kod yazmadan, sadece formül diliyle aynı şeyi yapabilirsiniz. Üstelik dosyanız bir başka kullanıcıya gittiğinde makro uyarısı da çıkmaz.
Hangi Excel Sürümlerinde Var?
LAMBDA fonksiyonu yalnızca Microsoft 365 aboneliği olan Excel sürümlerinde ve Excel 2024‘te bulunur. Excel 2019, 2021 veya daha eski sürümlerde kullanılamaz. Excel’inizin Hesap menüsünden sürümünüzü kontrol edebilirsiniz.
LAMBDA’nın Temel Sözdizimi
LAMBDA’nın yapısı son derece basittir:
=LAMBDA(parametre1; parametre2; ... ; hesaplama)
İlk kısımlar formülünüzün alacağı değişkenlerdir (parametreler). Son kısım ise bu değişkenlerle yapılacak hesaplamadır. İngilizce Excel kullananlar için yapı aynıdır, sadece noktalı virgül yerine virgül kullanılır:
=LAMBDA(parameter1, parameter2, ... , calculation)
İlk LAMBDA’nızı Yazın: KDV Hesaplama
Türkiye’de en sık ihtiyaç duyulan hesaplamalardan biri KDV dahil tutarı bulmaktır. Şu formülü her seferinde yazmak yerine bir LAMBDA hazırlayalım:
=LAMBDA(tutar; oran; tutar * (1 + oran))(1000; 0,2)
Bu formül 1000 TL’yi %20 KDV ile birlikte 1200 TL olarak döndürür. Buradaki (1000; 0,2) kısmı, LAMBDA’yı hemen test etmek için eklenmiştir. Fakat asıl güç, bu LAMBDA’ya bir isim verip kalıcı hale getirmekte gizlidir.
Ad Yöneticisi ile LAMBDA’yı Kalıcı Yapma
LAMBDA’yı yalnızca yazdığınız hücrede çalıştırmak işin yarısı. Asıl kullanışlı olan, ona bir ad vermek ve her yerden çağırabilmektir. Adım adım yapalım:
- Şerit menüden Formüller sekmesine geçin.
- Ad Yöneticisi‘ne tıklayın (kısayol: Ctrl + F3).
- Yeni butonuna basın.
- Ad alanına KDVDahil yazın.
- Başvuru yeri kutusuna şu formülü girin:
=LAMBDA(tutar; oran; tutar*(1+oran)) - Tamam’a basıp pencereyi kapatın.
Artık herhangi bir hücreye =KDVDahil(A2; 0,2) yazarak A2 hücresindeki tutarın %20 KDV dahil halini görebilirsiniz. Sanki Excel’in yerleşik bir fonksiyonu gibi davranır.
Örnek Senaryo: Fatura Tutarları Listesi
Diyelim ki muhasebe biriminden gelen bir liste var ve KDV oranı ürüne göre değişiyor:
| Ürün | Tutar (KDV Hariç) | KDV Oranı | KDV Dahil Tutar |
|---|---|---|---|
| Defter | 250,00 ₺ | %20 | =KDVDahil(B2;C2) → 300,00 ₺ |
| Süt | 45,00 ₺ | %1 | =KDVDahil(B3;C3) → 45,45 ₺ |
| Bilgisayar | 15.000,00 ₺ | %20 | =KDVDahil(B4;C4) → 18.000,00 ₺ |
| Kitap | 120,00 ₺ | %0 | =KDVDahil(B5;C5) → 120,00 ₺ |
Tek bir LAMBDA tanımıyla artık tüm fatura kalemleriniz için aynı formülü tekrar tekrar yazmanıza gerek kalmaz.
Gerçek Hayattan Örnekler
1. Ad-Soyad Düzeltme
İK biriminden gelen listede isimler “ahmet YILMAZ”, “MERVE demir” gibi karışık formatta. Hepsini tek seferde düzeltmek için bir LAMBDA tanımlayalım:
Ad: AdSoyadDuzelt
Tanım: =LAMBDA(metin; YAZIM.DÜZENİ(metin))
İngilizce karşılığı: =LAMBDA(text; PROPER(text))
Kullanım: =AdSoyadDuzelt(A2) → “Ahmet Yılmaz”
2. Yaş Hesaplama
Doğum tarihinden bugünkü yaşı bulmak için Excel’in ETARİHLİ (DATEDIF) fonksiyonu vardır ama her seferinde “Y” parametresini hatırlamak zordur. LAMBDA ile sadeleştirelim:
Ad: Yas
Tanım: =LAMBDA(dogumTarihi; ETARİHLİ(dogumTarihi; BUGÜN(); "Y"))
İngilizce karşılığı: =LAMBDA(birthDate; DATEDIF(birthDate; TODAY(); "Y"))
Kullanım: =Yas(C2) → 34 (doğum tarihi 02.05.1991 olan biri için)
3. Borç-Alacak Bakiyesi
Cari hesap takibinde her zaman ihtiyaç duyulan klasik bir hesap: borç toplamından alacak toplamını çıkarıp net bakiyeyi bulmak. Negatif çıkarsa “Alacaklı”, pozitifse “Borçlu” yazsın istiyoruz:
Ad: Bakiye
Tanım: =LAMBDA(borc; alacak;
EĞER(borc - alacak > 0; (borc - alacak) & " ₺ Borçlu";
EĞER(borc - alacak < 0; ABS(borc - alacak) & " ₺ Alacaklı"; "Dengede")))
| Müşteri | Borç | Alacak | Durum |
|---|---|---|---|
| Demir Ticaret | 12.500 ₺ | 8.000 ₺ | 4.500 ₺ Borçlu |
| Kaya Otomotiv | 3.200 ₺ | 9.500 ₺ | 6.300 ₺ Alacaklı |
| Yıldız Gıda | 5.000 ₺ | 5.000 ₺ | Dengede |
| Şahin Lojistik | 22.800 ₺ | 15.000 ₺ | 7.800 ₺ Borçlu |
LAMBDA ile LET Birlikte Kullanımı
Karmaşık hesaplamalarda ara değişkenler tanımlamak isterseniz LAMBDA'nın içinde LET fonksiyonunu kullanabilirsiniz. Örneğin bir personelin brüt maaşından net maaşı hesaplayalım (basit bir model):
Ad: NetMaas
Tanım: =LAMBDA(brut;
LET(
sgk; brut * 0,14;
issizlik; brut * 0,01;
gv; (brut - sgk - issizlik) * 0,15;
dv; brut * 0,00759;
brut - sgk - issizlik - gv - dv
))
Kullanım: =NetMaas(35000) şeklinde brüt maaşı girip net maaşı anlık görebilirsiniz. LET sayesinde her ara değer (SGK, işsizlik, gelir vergisi, damga vergisi) ayrı ayrı tanımlanır ve formül çok daha okunaklı olur.
LAMBDA Yardımcı Fonksiyonları
LAMBDA'nın gerçek gücü, dizi fonksiyonlarıyla birlikte kullanıldığında ortaya çıkar. Üç önemli yardımcı fonksiyon var:
| Fonksiyon | Ne Yapar? | Örnek Kullanım |
|---|---|---|
| MAP | Bir dizideki her hücreye LAMBDA'yı uygular | =MAP(A2:A10; LAMBDA(x; x*2)) |
| SATIRA (BYROW) | Dizinin her satırı için tek bir sonuç üretir | =SATIRA(A2:C10; LAMBDA(s; TOPLA(s))) |
| SÜTUNA (BYCOL) | Dizinin her sütunu için tek bir sonuç üretir | =SÜTUNA(A2:C10; LAMBDA(s; ORTALAMA(s))) |
| REDUCE | Diziyi tek bir değere indirger (toplam, çarpım vb.) | =REDUCE(0; A2:A10; LAMBDA(top; deg; top+deg)) |
Pratik Örnek: Çalışan Performansı
Çağrı merkezi ekibinin haftalık performans tablosunu düşünün. Her satırda bir çalışanın 5 günlük çağrı sayısı var. SATIRA (BYROW) fonksiyonu ile her satırın toplamını tek formülle alabilirsiniz:
=SATIRA(B2:F8; LAMBDA(satir; TOPLA(satir)))
İngilizce karşılığı: =BYROW(B2:F8; LAMBDA(row; SUM(row)))
| Çalışan | Pzt | Sal | Çar | Per | Cum | Toplam |
|---|---|---|---|---|---|---|
| Elif Aydın | 42 | 38 | 45 | 50 | 41 | 216 |
| Burak Şen | 30 | 32 | 28 | 35 | 29 | 154 |
| Selin Kara | 48 | 52 | 49 | 55 | 50 | 254 |
| Mert Çelik | 22 | 25 | 20 | 28 | 24 | 119 |
Sık Karşılaşılan Hatalar ve Çözümleri
| Hata | Sebebi | Çözüm |
|---|---|---|
| #AD? | LAMBDA'ya verdiğiniz isim yanlış yazıldı ya da Ad Yöneticisi'nde kayıtlı değil | İsmi kontrol edin, Ctrl+F3 ile Ad Yöneticisi'ni açıp tanımı doğrulayın |
| #HESAP! | LAMBDA test edilirken parametreler sağlanmadan çağrıldı | Test için en sona parantez içinde değer ekleyin: =LAMBDA(x; x*2)(5) |
| #DEĞER! | LAMBDA'ya geçirilen veri tipi yanlış (örn. sayı beklerken metin geldi) | EĞERHATA veya METNESAYI kontrolüyle koruyucu bir katman ekleyin |
| #YAYILMA! | Dizi sonucu sığacak boş alan yok | Sonucun yayılacağı satır/sütunlardaki verileri temizleyin |
LAMBDA Ne Zaman Kullanılmamalı?
Her güçlü araç gibi LAMBDA'nın da yeri vardır. Aşağıdaki durumlarda LAMBDA yerine standart formüller kullanmak daha mantıklıdır:
- Yalnızca bir hücrede tek seferlik bir hesaplama yapacaksanız LAMBDA tanımlamak zaman kaybıdır.
- Dosyayı Excel 2019 veya daha eski sürümleri kullanan biriyle paylaşacaksanız LAMBDA çalışmaz.
- Çok uzun ve karmaşık iç içe LAMBDA'lar yazmak yerine bunu birden fazla daha küçük LAMBDA'ya bölmek hem performans hem de okunabilirlik açısından daha iyidir.
- VBA ile yapılabilen kullanıcı arayüzü, dosya açma-kaydetme gibi işlemler LAMBDA'nın kapsamı dışındadır; bunlar için makro gereklidir.
LAMBDA'nızı Başka Dosyalara Taşıma
Tanımladığınız LAMBDA'lar bulunduğu dosyaya özgüdür. Onları başka dosyalarda da kullanmak isterseniz iki seçeneğiniz var:
- Ad Yöneticisi'nden kopyalama: Her iki dosyayı da açın, kaynak dosyada Ctrl+F3 ile Ad Yöneticisi'ni açın, tanımı kopyalayın ve hedef dosyada yapıştırın.
- Şablon olarak kaydetme: İçinde tüm LAMBDA'larınız tanımlı bir Excel dosyasını .xltx (şablon) olarak kaydedin. Yeni dosyalarınızı her zaman bu şablondan başlatın.
Microsoft'un yeni duyurduğu Excel Labs eklentisindeki Advanced Formula Environment ile LAMBDA'larınızı bir kütüphane olarak yönetmek de mümkündür. Bu eklenti özellikle ekip içinde standart formüller kullanan finans ve muhasebe ekiplerinin işini ciddi şekilde kolaylaştırır.
Özet
LAMBDA, Excel'i sadece bir tablo programından kendi formüllerinizi yazabildiğiniz mini bir geliştirme ortamına dönüştürüyor. KDV hesaplamadan personel net maaşına, cari bakiye takibinden çalışan performans raporuna kadar pek çok rutin işi tek bir isimle çağırabilir hale geliyorsunuz. Önemli olan: önce küçük başlayın, bir-iki parametreli LAMBDA'lar yazın, sonra LET ve dizi fonksiyonlarıyla birleştirerek güçlendirin. Birkaç hafta sonra Excel'inizdeki Ad Yöneticisi sizin için özel hazırlanmış bir fonksiyon kütüphanesine dönüşecek.
Bir sonraki yazımızda Excel'de sayfa koruma ve dosya güvenliğini ele alacağız. Hazırladığınız LAMBDA'ları yanlışlıkla silinmekten nasıl koruyabileceğinizi de orada göstereceğiz.