İleri Ders 10: LET ve LAMBDA ile Kendi Fonksiyonunuz
Yayın: · Son güncelleme:
Bu derste
Bu derste LET ile formülün içinde ara değerlere ad verip tekrar eden hesapları bir kez yapar, LAMBDA ile parametre alan kendi fonksiyonunuzu yazar ve Ad Yöneticisi'ne kaydederek çalışma kitabının her yerinde kullanırsınız.
Ders sonunda şunları yapabileceksiniz
- LET ile ad-değer çiftleri tanımlayıp son argümanda hesaplama yapmak
- Tekrar eden bir alt hesabı tek sefere indirmek
- LAMBDA'nın parametre ve hesaplama argümanlarını okumak
- LAMBDA'yı önce hücrede sınamak, sonra Ad Yöneticisi ile adlandırmak
- LET ve LAMBDA'nın hangi sürümlerde çalıştığını bilmek
İçindekiler
LET neyi kolaylaştırır?
LET, formülün içinde ara sonuçlara ad vermenizi sağlar. Uzun bir formülde aynı alt hesap birkaç kez geçiyorsa LET onu bir kez hesaplar ve adıyla tekrar kullanır. Formül hem kısalır hem okunur hâle gelir. LET, Microsoft 365, Excel 2021 ve Excel 2024'te bulunur.
Söz dizimi ad-değer çiftlerinden oluşur ve son argüman sonucu verir: =LET(ad1; ad_değeri1; hesaplama_veya_ad2; ...). Adlar harfle başlamalı ve hücre adresine benzememelidir; "ara" geçerli bir addır, "A1" değildir.
İndirimli tutarı LET ile yazmak
Bir toptancı 5.000 TL ve üzeri siparişlere %10 indirim uyguluyor olsun; oran örnek amaçlıdır. LET olmadan net tutar =EĞER(B2*C2>=5000;B2*C2-B2*C2*0,1;B2*C2) biçiminde yazılır ve B2*C2 çarpımı dört kez tekrar eder.
Aynı hesap LET ile =LET(ara;B2*C2;indirim;EĞER(ara>=5000;ara*0,1;0);ara-indirim) olur. 12 adet x 450 TL için ara toplam 5.400 TL, indirim 540 TL ve net tutar 4.860 TL'dir. Birim fiyat sütunu değişirse yalnızca "ara" tanımını güncellemeniz yeter.
LET'in ikinci faydası hızdır. ORTALAMA gibi bir fonksiyon büyük bir aralıkta iki kez çalışacaksa LET onu bir kez hesaplar. =LET(ort;ORTALAMA(B2:B6);EĞER(B4>ort;"Ortalama üstü";"Ortalama altı")) beş temsilcinin ortalamasını (42,2) bir kez bulur ve Selin'in 51 adedini bununla karşılaştırır.
LAMBDA ile kendi fonksiyonunuz
LAMBDA, parametre alan ve bir hesaplama döndüren kullanıcı tanımlı fonksiyon yazmanızı sağlar: =LAMBDA([parametre1; parametre2; …;] hesaplama). Microsoft 365 ve Excel 2024'te bulunur; Excel 2021'de LET vardır ama LAMBDA yoktur.
LAMBDA'yı önce hücrede sınarsınız. Tanımın hemen arkasına parantez içinde argümanları yazmak fonksiyonu çağırır: =LAMBDA(tutar;oran;YUVARLA(tutar*(1-oran);2))(B2;C2). 1.250 TL ve %15 indirim için sonuç 1.062,5 TL'dir. Arkadaki parantez olmadan yazarsanız Excel sonuç yerine hata gösterir, çünkü fonksiyon tanımlanmış ama çağrılmamıştır.
Ad Yöneticisi ile kalıcı hâle getirmek
Hücrede doğru çalıştığını gördüğünüz LAMBDA'yı adlandırarak çalışma kitabının her yerinde kullanabilirsiniz. Formüller sekmesinden Ad Yöneticisi'ni açın ve Yeni'ye tıklayın. Ad kutusuna INDIRIMLI yazın, Başvuru yeri kutusuna arkadaki çağrı parantezi olmadan =LAMBDA(tutar;oran;YUVARLA(tutar*(1-oran);2)) yapıştırın ve Tamam'a basın.
Artık herhangi bir hücreye =INDIRIMLI(B2;C2) yazabilirsiniz. Kuralı değiştirmek gerektiğinde, örneğin yuvarlamayı tam sayıya çekmek için, yalnızca Ad Yöneticisi'ndeki tanımı güncellersiniz ve bütün hücreler yeni kuralla hesaplanır. Açıklama kutusuna parametrelerin ne anlama geldiğini yazmak, dosyayı devralan kişinin işini kolaylaştırır.
Okunur adlar seçmek
LET ve LAMBDA'nın faydası, seçtiğiniz adların açıklayıcılığına bağlıdır. "x" ve "y" yerine "ara", "indirim", "ort" gibi adlar formülü okuyan kişiye her parçanın ne olduğunu söyler. Altı ay sonra dosyayı açtığınızda da formülü çözmeniz kolaylaşır.
Adlarda boşluk kullanılmaz, gerekiyorsa alt çizgi kullanılır: "net_tutar". Ad bir hücre adresine benzememeli ve var olan bir fonksiyon adıyla çakışmamalıdır. "TOPLA" ya da "B2" ad olarak kullanılamaz.
Formül uzadığında Alt+Enter ile satır atlayarak her ad-değer çiftini ayrı satıra yazabilirsiniz. Formül çubuğunu genişlettiğinizde LET formülü küçük bir program gibi okunur. Hesap mantığını değiştirirken hangi satıra dokunduğunuzu görmek bu sayede kolaylaşır.
LAMBDA ve LET birlikte
Uzun bir LAMBDA'nın hesaplama kısmında LET kullanmak, iki fonksiyonun faydasını birleştirir. Sipariş indirimi kuralı adlandırılmış bir fonksiyon olarak şöyle yazılabilir: =LAMBDA(adet;fiyat;LET(ara;adet*fiyat;ara-EĞER(ara>=5000;ara*0,1;0))).
Bu tanımı Ad Yöneticisi'ne NETTUTAR adıyla kaydettiğinizde =NETTUTAR(B2;C2) yazmanız yeterli olur. LAMBDA dışarıdan iki değer alır, LET içeride ara toplamı bir kez hesaplar. İndirim eşiği değiştiğinde tek bir tanımı güncellersiniz ve bütün sipariş satırları yeni kurala göre hesaplanır.
Sınırlar ve uyumluluk
Adlandırılmış LAMBDA yalnızca tanımlandığı çalışma kitabında çalışır. Başka bir dosyada kullanmak için tanımı oraya da kopyalamanız gerekir. Dosyayı LAMBDA desteklemeyen bir sürümde açan kişi bu hücrelerde #AD? hatası görür.
Bu dersin LAMBDA örneği, Parazade'nin otomatik doğrulamasında kullanılan LibreOffice'te hesaplanamadığı için ayrıca elle kontrol edilmiştir. LET örnekleri ise otomatik olarak doğrulanır.
Sıradaki adım
Alıştırmada dört siparişin indirimli net tutarını LET ile hesaplayacaksınız. Çözdükten sonra aynı kuralı NETTUTAR gibi bir LAMBDA'ya çevirip Ad Yöneticisi'ne kaydetmeyi deneyin. Kaydettiğiniz fonksiyonu boş bir hücrede =NETTUTAR(12;450) yazarak sınayın; sonuç 4.860 olmalı. Excel sürümünüz LAMBDA'yı desteklemiyorsa LET ile yazdığınız formül aynı işi görmeye devam eder.
Örnekler
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Sipariş | Adet | Birim fiyat | ||
| 2 | S-301 | 12 | 450 | 4.860 |
=LET(ara;B2*C2;indirim;EĞER(ara>=5000;ara*0,1;0);ara-indirim)=LET(ara,B2*C2,indirim,IF(ara>=5000,ara*0.1,0),ara-indirim)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
E2 hücresinin sonucu: 4.860
ara = 12 x 450 = 5.400 TL. 5.000 TL'yi geçtiği için indirim = 540 TL. Sonuç: 5.400 - 540 = 4.860 TL.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Temsilci | Satış adedi | ||
| 2 | Ece | 42 | Ortalama üstü | |
| 3 | Mert | 38 | ||
| 4 | Selin | 51 | ||
| 5 | Kaan | 47 | ||
| 6 | Deniz | 33 |
=LET(ort;ORTALAMA(B2:B6);EĞER(B4>ort;"Ortalama üstü";"Ortalama altı"))=LET(ort,AVERAGE(B2:B6),IF(B4>ort,"Ortalama üstü","Ortalama altı"))Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
D2 hücresinin sonucu: Ortalama üstü
Beş temsilcinin ortalaması (42 + 38 + 51 + 47 + 33) / 5 = 42,2. Selin'in 51 adedi bundan büyük olduğu için "Ortalama üstü" döner.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tutar | İndirim oranı | ||
| 2 | 1.250 | 0,15 | 1.062,5 |
=LAMBDA(tutar;oran;YUVARLA(tutar*(1-oran);2))(A2;B2)=LAMBDA(tutar,oran,ROUND(tutar*(1-oran),2))(A2,B2)Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.
D2 hücresinin sonucu: 1.062,5
LAMBDA iki parametre alır; arkadaki (A2;B2) fonksiyonu 1.250 ve 0,15 ile çağırır: 1.250 x 0,85 = 1.062,5 TL. Bu örnek LibreOffice'te hesaplanamadığı için elle doğrulanır.
Sıkça Sorulan Sorular
LET ve LAMBDA Excel 2019'da çalışır mı?
Hayır. LET Microsoft 365, Excel 2021 ve 2024'te; LAMBDA Microsoft 365 ve Excel 2024'te bulunur. Eski sürümlerde iki fonksiyon da #AD? hatası verir.
LET'te tanımladığım ad başka hücrelerde kullanılabilir mi?
Hayır, LET adları yalnızca o formülün içinde geçerlidir. Çalışma kitabının her yerinde kullanılacak bir ad için Ad Yöneticisi'nde tanımlı ad ya da adlandırılmış LAMBDA oluşturun.
Adlandırılmış LAMBDA'yı nasıl değiştiririm?
Formüller sekmesinden Ad Yöneticisi'ni açın, adı seçip düzenleyin ve Başvuru yeri kutusundaki formülü güncelleyin. Bu adı kullanan bütün hücreler yeni tanımla yeniden hesaplanır.