Excel'de LAMBDA ile kendi fonksiyonunuzu tanımlamak
Beceri rehberi

Excel'de LAMBDA ile kendi fonksiyonunuzu tanımlamak

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

LAMBDA, sık tekrarladığınız bir hesabı parametreli bir fonksiyona çevirir ve Ad Yöneticisi'nde isim vererek her hücrede kullanmanızı sağlar. Yazımı, test etmeyi, kaydetmeyi ve hataları adım adım görürsünüz.

Bir bakışta

  1. LAMBDA, parametreleri ve bir hesabı olan, sizin adlandırdığınız bir fonksiyondur. Son bağımsız değişken her zaman hesaptır; önceki değişkenler parametre adlarıdır.
  2. Önce hücrede, hemen çağırarak test edin; ancak sonra Ad Yöneticisi'ne taşıyın. Çağrılmadan yazılan LAMBDA hücrede hata verir, çünkü fonksiyon henüz bir değer üretmemiştir.
  3. Ad Yöneticisi'nde kaydedilen fonksiyon, çalışma kitabının her yerinde ad yazılarak çağrılır. Hesap mantığı tek yerde durduğu için düzeltme de tek yerde yapılır.
  4. LAMBDA yalnız hesap mantığını paketler; hücre biçimleme ve dosya işlemleri için makro ya da betik gerekir. Doğru aracı seçmek, gereksiz karmaşıklıktan kaçınmanın ilk adımıdır.

LAMBDA nedir ve neden kullanılır?

Excel'de aynı hesabı birçok yerde kopyalayıp yapıştırmak, hatanın birden çok yerde yaşamasına yol açar. Bir formülü düzelttiğinizde diğer kopyalar eski haliyle kalır. LAMBDA bu sorunu, hesabı bir kez yazıp ad vererek çözer. Microsoft'un dokümantasyonu LAMBDA'yı, özel ve yeniden kullanılabilir fonksiyonlar oluşturmak için kullanılan bir fonksiyon olarak tanımlar ve sözdizimini parametreler ve ardından hesap olarak verir.

Bu yaklaşımın yararı yalnız kopyalamayı bitirmek değildir. Hesaba okunabilir bir ad vermek, formülün ne yaptığını anlaşılır kılar: karmaşık iç içe formül yerine NetTutar ya da HurdaOrani gibi bir ad görürsünüz. Ayrıca fonksiyon bir kez yazıldığı için ekipte formül mantığı tek yerde bakımlanır.

LAMBDA'nın sınırı da bellidir: yalnız hesap mantığını paketler. Hücrelerin biçimini değiştirmek, dosya açmak ya da bir tabloyu yeniden düzenlemek gibi eylemler için makro ya da betik gerekir. Bu konuya Excel makro ve VBA sayfasından devam edebilirsiniz.

Şekil 1

Tekrar eden işi paketlemenin yolu işin türüne bağlıdır

LAMBDA, ad tanımı ya da makro

Tekrarlanan işi nasıl paketlemeli?
  1. Aynı hesap farklı girdilerle tekrar ediyorLAMBDAParametreli, ad verilebilen özel fonksiyon.
  2. Sabit bir değer ya da aralık tekrar ediyorAd tanımıParametre gerekmez; ad doğrudan başvurur.
  3. Hücre biçimleme ya da dosya işlemi tekrar ediyorMakro veya betikHesap dışı eylemler formülle yapılamaz.
Kaynak: Sayfa içeriğiMindset Institute

Yazım: parametreler ve hesap

Temel yazım şudur: =LAMBDA(parametreA, parametreB, hesap). Parametreler isteğe bağlıdır, hesap ise zorunludur ve en sona yazılır. Hesap bir sonuç döndürmelidir. Parametre adlarında nokta kullanılamaz; bu yüzden NetTutar gibi nokta içermeyen, anlaşılır adlar seçilir. Bu sayfadaki formüller İngilizce fonksiyon adlarıyla yazılmıştır; Excel'in arayüz diline göre fonksiyon adları ve liste ayırıcısı (virgül ya da noktalı virgül) değişebilir.

Basit bir örnek: indirimli tutar için birim tutar, adet ve indirim oranını alan bir fonksiyon:

=LAMBDA(birimtutar, adet, indirim, birimtutar*adet - birimtutar*adet*indirim)

Parametreler birimtutar, adet ve indirimdir; hesap ise son bağımsız değişkendir. Bu hali hücreye olduğu gibi yazıldığında henüz bir değer üretmez. Fonksiyonu denemek için formülün hemen ardından, parantez içinde değerler vererek çağırırsınız:

=LAMBDA(birimtutar, adet, indirim, birimtutar*adet - birimtutar*adet*indirim)(B2, C2, D2)

Burada B2, C2 ve D2 hücrelerindeki değerler parametrelere sırayla gider. Doğru sonucu verdiğini gördükten sonra aynı mantığı kalıcı hale getirebilirsiniz. Eğer çağırmadan LAMBDA yazarsanız Excel hücrede #CALC! hatası döndürür; bu hata fonksiyonun tanımlandığını ama çalıştırılmadığını gösterir.

Ad Yöneticisi'nde kaydetmek ve her yerde kullanmak

Hücrede doğrulanan bir fonksiyon, Ad Yöneticisi'ne taşınınca çalışma kitabının her hücresinde kullanılabilir. Ad Yöneticisi'nde yeni bir ad tanımlarken Microsoft'un belgesine göre şu alanlar doldurulur: ad (fonksiyonun adı), kapsam (varsayılan olarak çalışma kitabı; tek bir sayfa da seçilebilir, web için Excel'de bu seçenek bulunmaz), isteğe bağlı açıklama ve başvurulan formül. Açıklama alanı, işlev ekleme penceresinde ve bir araç ipucunda görünür; bu yüzden kısa ama net bir açıklama yazmak ekip arkadaşlarına yardım eder.

Başvurulan formül alanına yalnız LAMBDA tanımı yazılır, çağrı kısmı eklenmez. Kaydedildikten sonra fonksiyon, adıyla çağrılır: =NetTutar(B2, C2, D2). Aynı mantığı çok sayıda satıra uygulamak için formülü satır boyunca doldurmak yeterlidir.

Bu aşamada birkaç alışkanlık işe yarar: ad vermeden önce çalışma kitabında aynı adın başka bir amaçla kullanılıp kullanılmadığını kontrol etmek ve fonksiyonun ne yaptığını açıklamada kısa bir cümleyle yazmak. Ad tanımlamanın kendisi hakkında ayrıntılar için Excel ad tanımlama sayfasına bakabilirsiniz.

Şekil 2

LAMBDA önce hücrede denenir, sonra ad verilerek kalıcı hale gelir

Test et, adlandır, çağır

  1. Hücrede deneFonksiyonu yazıp hemen çağırarak sonucu doğrula.
  2. Ad Yöneticisi'ni açYeni bir ad tanımlamaya başla.
  3. Adı ve kapsamı belirleAd, kapsam ve isteğe bağlı açıklama gir.
  4. Formülü yapıştırBaşvurulan alana LAMBDA formülünü, çağrı kısmı olmadan yaz.
  5. Ad ile çağırHücrede ad ve parantez içinde değerlerle kullan.
Kaynak: Adımlar Microsoft'un LAMBDA dokümantasyonundaki akışa dayanır.Mindset Institute

İç içe formülleri LAMBDA ile sadeleştirmek

LAMBDA'nın en görünür kazancı, uzun ve iç içe formüllerin okunabilir hale gelmesidir. Kurgusal bir senaryo: bir satış tablosunda net tutar, iade oranına göre düşülmüş tutarla kıyaslanıyor ve aynı hesap farklı raporlarda tekrar ediyor. Hesap bir LAMBDA olarak tanımlandığında raporlardaki hücreler yalnızca fonksiyon adını ve girdileri taşır.

Bir başka kullanım, aynı hesabı bir hücre aralığı üzerinde tekrarlamaktır. Bu durumda LAMBDA genellikle dizi ve süzme fonksiyonlarıyla birlikte kullanılır; ayrıntılı kullanım için dinamik diziler sayfasına, hesap içinde ara değişken tanımlayan LET fonksiyonuyla birlikte kullanımı için LET sayfasına bakabilirsiniz. LET, hesabın içinde tekrar eden ifadeye ad verir; LAMBDA ise bütün hesaba ad verir. Bunlar birbirinin alternatifi değil, tamamlayıcısıdır.

LAMBDA kendi kendini de çağırabilir. Bu özyineleme, bazı hiyerarşik ya da döngüsel hesaplarda kullanışlıdır. Ancak çağrılar sonsuza giderse Excel çok fazla özyineleme çağrısı nedeniyle hata döndürür. İlk denemelerinizde özyinelemeye girmeden, basit parametreli fonksiyonlarla alışmak daha güvenlidir.

Sık hatalar ve ekip içinde kullanım

Yeni başlayanların karşılaştığı hataların çoğu tanım ile çağrının karışmasından kaynaklanır. Hücrede çağırmadan bırakılan LAMBDA #CALC! döndürür. Parametre sayısından fazla ya da az değer verilirse #VALUE! hatası oluşur. Parametre adında nokta kullanılması da kabul edilmez. Ad Yöneticisi'nde tanımla birlikte çağrıyı da yapıştırmak, fonksiyonun yanlış değerlendirilmesine yol açar.

Ekip içinde kullanırken şu kurallar sürdürülebilirlik sağlar: • Fonksiyon adlarını anlamlı ve tutarlı seçmek • Her fonksiyonun açıklama alanını doldurmak • Fonksiyonları başka çalışma kitaplarına taşırken tanımlarını da birlikte taşımak, çünkü adlar çalışma kitabına bağlıdır • Karmaşık fonksiyonların parametre sırasını ve beklenen veri türünü ayrı bir sayfada belgelemek

Önemli bir uyarı: Dosyayı paylaştığınız kişiler Excel'in LAMBDA'yı desteklemeyen bir sürümünü kullanıyorsa fonksiyon çalışmayabilir. Paylaşmadan önce alıcıların sürümünü kontrol etmek gerekir.

Şekil 3

Çoğu LAMBDA hatası tanım ve çağrıyı karıştırmaktan çıkar

Yaygın hata ve doğrusu

Yaygın hata
Doğrusu
LAMBDA'yı hücrede çağırmadan yazmak
Hücrede test için hemen çağırmak
Parametre adında nokta kullanmak
Noktasız, anlaşılır adlar seçmek
Eksik ya da fazla değer vermek
Parametre sayısıyla değer sayısını eşlemek
Ad Yöneticisi'ne çağrı kısmını da yapıştırmak
Başvurulan alana yalnız tanımı yazmak
Kaynak: Hata türleri Microsoft'un LAMBDA dokümantasyonuna dayanır.Mindset Institute

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Microsoft Excel ile Veri Analizi Eğitimi - İleri Excel (Uygulamalı) programı, veri analizi ve ileri formüller, PivotTablolar, makro programlama ve otomasyon ile 'İleri Seviye İşlevler ve İleri Tablo Yönetimi' başlıklarını içerir. LAMBDA gibi özel fonksiyon yazımı, bu akışın ileri işlev tarafıyla ilişkilidir.

Finans, planlama ve raporlama ekiplerinde sık tekrarlanan hesapları standartlaştırmak isteyen analistler ve ekip için ortak formül kitaplığı kurmak isteyen yöneticiler için uygundur.

İlgili Mindset programı

Microsoft Excel ile Veri Analizi Eğitimi - İleri Excel (Uygulamalı)

Sık sorulanlar

Sık sorulan sorular

LAMBDA için VBA bilmek gerekir mi?

Hayır. LAMBDA doğrudan formül çubuğunda yazılır ve programlama ortamı gerektirmez. VBA ise hücre biçimleme ve dosya işlemi gibi eylemleri otomatikleştirir. Hesap mantığını paketlemek istiyorsanız LAMBDA, işlem otomasyonu istiyorsanız makro uygundur.

LAMBDA fonksiyonu başka çalışma kitabında çalışır mı?

Ad Yöneticisi'nde tanımlanan fonksiyonlar tanımlandıkları çalışma kitabına bağlıdır. Başka bir dosyada kullanmak için tanımı oraya da eklemeniz gerekir. Sık kullanılan fonksiyonlar için ekipçe bir şablon dosya tutmak taşıma işini kolaylaştırır.

LAMBDA ile LET arasındaki fark nedir?

LET, bir hesabın içinde tekrar eden ifadelere ad verir ve o hesapla sınırlı kalır. LAMBDA ise bütün hesabı parametreli bir fonksiyon haline getirip çalışma kitabında yeniden kullanılabilir kılar. Birlikte de kullanılabilirler: LAMBDA'nın hesabı içinde LET ile ara değerler tanımlanabilir.

#CALC! hatasını nasıl düzeltirim?

Bu hata genellikle LAMBDA'nın hücrede yalnız tanımlanıp çağrılmadığını gösterir. Formülün sonuna parantez içinde değerleri yazarak aynı hücrede çağırın ya da fonksiyonu Ad Yöneticisi'nde adlandırıp adıyla kullanın.

LAMBDA her Excel sürümünde var mı?

Sürüm desteği Microsoft'un güncel belgelerinde ayrıca kontrol edilmelidir. Fonksiyon sürümünüzde yoksa formül çalışmaz; bu durumda aynı mantığı ad tanımı, yardımcı sütun ya da makroyla kurmak gerekir. Dosya paylaşırken alıcıların sürümünü önceden netleştirin.

Excel LAMBDA Fonksiyonu: Kendi Fonksiyonunu Yaz