=LAMBDA(price;price*1,2)(B2) tek girdili, price adlı küçük bir fonksiyon tanımlar ve onu hemen B2 üzerinde çağırır: kalemin 2.5'i 3 olur. Tek başına bu yalnızca daha uzun bir =B2*1,2'dir. LAMBDA'nın amacı fonksiyona Ad Yöneticisi'nde bir ad vermektir, böylece uzun bir formül =ADDVAT(B2) olur; bir de onu MAP, BYROW ve aşağıdaki diğer fonksiyonlara vermektir. LAMBDA'nın Türkçe Excel'deki adı da LAMBDA'dır; tablodaki formülleri de bu şekilde, Türkçe adlarla ve noktalı virgülle yazabilirsiniz.
| A | B | C | |
|---|---|---|---|
| 1 | Item | Price | With VAT |
| 2 | Pen | 2.5 | 3 |
| 3 | Bag | 120 | 144 |
| 4 | Lamp | 35 | 42 |
| 5 | Mug | 8 | 9.6 |
| 6 | Desk | 150 | 180 |
=LAMBDA(price;price*1,2)(B2)LAMBDA söz dizimi
=LAMBDA([parameter1, parameter2, ...], calculation)
- Her
parameter, LET içindeki adlar gibi bir girdinin adıdır. En fazla 253 taneye izin verilir. - Son bağımsız değişken, parametreleri kullanan
calculation'dır. - Parametrelerin değerleri kapanış parantezinin hemen ardından parantez içinde gelir:
=LAMBDA(x;y;x*y)(3;4)12 döndürür.
LAMBDA, MAP, BYROW, BYCOL, SCAN, REDUCE ve MAKEARRAY Microsoft 365, Excel 2024 veya Web için Excel gerektirir. Excel 2021'de LET var ama bunlar yok. Google E-Tablolar'da da LAMBDA vardır ve bir LAMBDA'yı Veri > Adlandırılmış işlevler ile bir adla kaydeder.
Bir LAMBDA'yı özel fonksiyon olarak kaydetme
Bir LAMBDA ona bir ad verdiğinizde yeniden kullanılabilir olur. Excel'in bunun için VBA'ya veya bir eklentiye ihtiyacı yoktur:
- Formüller > Ad Yöneticisi'ne gidin ve Yeni'ye tıklayın (ya da Formüller > Ad Tanımla).
- Ad kutusuna fonksiyonun adını yazın, örneğin
ADDVAT. - Başvuru yeri kutusuna LAMBDA'yı girdisiz girin:
=LAMBDA(price;price*1,2). - Tamam'a tıklayın. Artık çalışma kitabının herhangi bir hücresine
=ADDVAT(B2)yazın.
Name: ADDVAT
Refers to: =LAMBDA(price,price*1.2)
In a cell: =ADDVAT(B2) returns 3 when B2 is 2.5
Türkçe Excel'de Ad kutusuna ADDVAT, Başvuru yeri kutusuna =LAMBDA(price;price*1,2) yazılır.
Fonksiyon yalnızca o çalışma kitabında yaşar. Onu kullanan bir sayfayı başka bir çalışma kitabına kopyalayın, ad da onunla gelir. LAMBDA'yı Ad Yöneticisi'nde bir kez değiştirin, onu çağıran her hücre güncellenir. Kaydetmeden önce bir LAMBDA'yı bir hücrede parantez içindeki girdilerle sınayın; bir hata orada daha kolay görülür.
MAP: bir LAMBDA'yı her hücreye uygulama
MAP, LAMBDA'yı bir aralığın her hücresi için bir kez çağırır ve aynı şekilde bir aralık döndürür. Burada 100'ün üzerindeki her fiyata %10 indirim yapılır:
| A | B | C | |
|---|---|---|---|
| 1 | Item | Price | Price to pay |
| 2 | Pen | 2.5 | 2.5 |
| 3 | Bag | 120 | 108 |
| 4 | Lamp | 35 | 35 |
| 5 | Mug | 8 | 8 |
| 6 | Desk | 150 | 135 |
Çanta (120) 108, masa (150) 135 olur; diğer fiyatlar değişmeden geçer. C2'deki tek bir formül bütün sütunu kapsar. MAP aynı boyuttaki iki aralıkta yan yana da ilerleyebilir: D2:D6'da miktarlar varken =MAP(B2:B6;D2:D6;LAMBDA(p;q;p*q)) her fiyatı kendi miktarıyla çarpar.
BYROW: satır başına bir sonuç
BYROW, LAMBDA'ya her seferinde bütün bir satırı verir, böylece LAMBDA onun üzerinde MAK, TOPLA veya ORTALAMA kullanabilir. Her öğrencinin en iyi ve ortalama puanı:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Test 1 | Test 2 | Test 3 | Best | Average |
| 2 | Ann | 72 | 85 | 90 | 90 | 82.3 |
| 3 | Ben | 64 | 70 | 58 | 70 | 64 |
| 4 | Cara | 88 | 92 | 95 | 95 | 91.7 |
| 5 | Dan | 75 | 60 | 81 | 81 | 72 |
=BYROW(B2:D5;LAMBDA(r;MAK(r)))E2 90, 70, 95 ve 81; F2 82.3, 64, 91.7 ve 72 döndürür. Düz bir =MAK(B2:D5) bütün tablo için tek bir sayı verirdi; tek bir formülde satırları ayrı tutan BYROW'dur. BYCOL aynısını sütun başına yapar: =BYCOL(B2:D5;LAMBDA(c;ORTALAMA(c))) her sınavın ortalamasını döndürür.
SCAN ve REDUCE: yürüyen toplamlar
REDUCE bir aralıkta ilerler ve bir değeri taşır, yalnızca son sonucu döndürür. SCAN aynısını yapar ama her adımı döndürür, bu da onu tek formüllük bir yürüyen toplam yapar:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Running total | Total |
| 2 | Pen | 2.5 | 2.5 | 315.5 |
| 3 | Bag | 120 | 122.5 | |
| 4 | Lamp | 35 | 157.5 | |
| 5 | Mug | 8 | 165.5 | |
| 6 | Desk | 150 | 315.5 |
=SCAN(0;B2:B6;LAMBDA(total;x;total+x))İlk bağımsız değişken olan 0 başlangıç değeridir. Her fiyat için LAMBDA o ana kadarki toplamı ve fiyatı alır ve yeni toplamı döndürür. C2 2.5, 122.5, 157.5, 165.5, 315.5 diye ilerler, D2 ise yalnızca son 315.5'i gösterir. Düz bir toplam için TOPLA daha basittir, ama REDUCE her şeyi taşıyabilir; büyüyen bir metin ya da yalnızca bazı satırlarda artan bir sayım gibi.
LET ile tek bir formülün içinde bir LAMBDA'ya ad verme
Onu yalnızca bir formül kullanıyorsa bir LAMBDA'nın Ad Yöneticisi'ne ihtiyacı yoktur. Ona LET ile ad verin ve adı MAP'e veya BYROW'a verin:
| A | B | C | |
|---|---|---|---|
| 1 | Item | Price | Sale price |
| 2 | Pen | 2.5 | 2.25 |
| 3 | Bag | 120 | 108 |
| 4 | Lamp | 35 | 31.5 |
| 5 | Mug | 8 | 7.2 |
| 6 | Desk | 150 | 135 |
Her fiyata %10 indirim yapılır: 2.25, 108, 31.5, 7.2 ve 135. Excel'de adlandırılmış LAMBDA'yı LET'in içinde doğrudan da çağırabilirsiniz: =LET(f;LAMBDA(x;x*2);f(5)) 10 döndürür.
Alıştırma: BYROW ile satır başına toplam
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Student | Test 1 | Test 2 | Test 3 | Total |
| 2 | Ann | 72 | 85 | 90 | |
| 3 | Ben | 64 | 70 | 58 | |
| 4 | Cara | 88 | 92 | 95 | |
| 5 | Dan | 75 | 60 | 81 |
Sıra sende: E2 hücresinde tek bir formülle her öğrencinin üç sınavının toplamını, satır başına bir sayı olarak döndürün.
Sık görülen LAMBDA hataları
=LAMBDA(x,x*2) #CALC! defined but never called
=LAMBDA(x,x*2)(5) 10
=LAMBDA(x,y,x*y)(3) #VALUE! two parameters, one value
=LAMBDA(x,x*2)(3,4) #VALUE! one parameter, two values
Türkçe Excel'de bunlar =LAMBDA(x;x*2)(5) gibi noktalı virgülle yazılır ve hatalar #HESAPLA! (İngilizce #CALC!) ile #DEĞER! (İngilizce #VALUE!) olarak görünür.
- #HESAPLA!, bir LAMBDA'nın bir hücrede çağrılmadan durduğu anlamına gelir. Girdileri parantez içinde ekleyin ya da onu Ad Yöneticisi'ne kaydedip adıyla çağırın.
- #DEĞER!, değer sayısının parametre sayısıyla eşleşmediği anlamına gelir. İki taraftakileri de sayın.
- #AD? (İngilizce #NAME?), Excel sürümünde LAMBDA olmadığı ya da kaydedilmiş bir adın yanlış yazıldığı anlamına gelir. Bir parametre adı LET kurallarına uyar: boşluk yok, hücre adresine benzeyen ad yok.
- Satır başına birkaç değer döndüren bir BYROW LAMBDA'sı #HESAPLA! verir. Her satır tek bir değer üretmelidir; bir sonuç satırı döndürmek için bunun yerine MAKEARRAY ya da düz bir dizi formülü kullanın.
Sıkça Sorulan Sorular
Excel'de LAMBDA formülü nedir?
Bir formülü adlandırılmış girdileri olan bir fonksiyona çevirir. =LAMBDA(price;price*1,2) price adlı tek bir girdi alır ve price çarpı 1,2'yi döndürür. Onu girdiyi parantez içinde ekleyerek çağırın, =LAMBDA(price;price*1,2)(B2), ya da Ad Yöneticisi'nde bir adla kaydedin.
Excel'de VBA olmadan özel fonksiyon nasıl oluşturulur?
Formüller > Ad Yöneticisi > Yeni'yi açın, ADDVAT gibi bir ad yazın ve Başvuru yeri kutusuna =LAMBDA(price;price*1,2) girin. Tamam'a tıklayın; =ADDVAT(B2) o çalışma kitabının her hücresinde çalışır.
LAMBDA'm neden #HESAPLA! döndürüyor?
Bir hücreye girdisiz yazılmış =LAMBDA(x;x*2) gibi bir LAMBDA hiç çağrılmamış bir fonksiyondur, bu yüzden Excel #HESAPLA! gösterir. Ardından girdiyi parantez içinde ekleyin, =LAMBDA(x;x*2)(5), ya da onu Ad Yöneticisi'ne kaydedin.
Hangi Excel sürümlerinde LAMBDA var?
Microsoft 365, Excel 2024 ve Web için Excel; MAP, BYROW, BYCOL, SCAN, REDUCE ve MAKEARRAY ile birlikte. Excel 2021'de LET var ama LAMBDA yok.
Excel'de BYROW ne yapar?
Bir aralığın her satırı için bir LAMBDA'yı bir kez çalıştırır ve satır başına bir sonuç döndürür: =BYROW(B2:D5;LAMBDA(r;MAK(r))) her satırın en büyük değerini aşağı taşırarak döndürür.