Menu

LAMBDA Formülü: Excel'de Özel Fonksiyon, MAP ve BYROW

=LAMBDA(price;price*1,2)(B2) tek girdili, price adlı küçük bir fonksiyon tanımlar ve onu B2 üzerinde çağırır. Bir LAMBDA'yı yerleşik bir fonksiyon gibi kullanmak için Ad Yöneticisi'ne kaydedin ya da MAP, BYROW, SCAN ve REDUCE'a verin.

Bu sayfadaki her tablo canlı: bir sayıyı ya da formülü değiştir, yeniden hesaplansın.

=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.

Her fiyat üzerinde çağrılan bir fonksiyon
C2
ABC
1ItemPriceWith VAT
2Pen2.53
3Bag120144
4Lamp3542
5Mug89.6
6Desk150180
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.Türkçe Excel’de: =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:

  1. Formüller > Ad Yöneticisi'ne gidin ve Yeni'ye tıklayın (ya da Formüller > Ad Tanımla).
  2. Ad kutusuna fonksiyonun adını yazın, örneğin ADDVAT.
  3. Başvuru yeri kutusuna LAMBDA'yı girdisiz girin: =LAMBDA(price;price*1,2).
  4. 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:

100'ün üzerindeki fiyatlara %10 indirim
C2
ABC
1ItemPricePrice to pay
2Pen2.52.5
3Bag120108
4Lamp3535
5Mug88
6Desk150135
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.

Ç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ı:

Öğrenci başına en iyi ve ortalama puan
E2
ABCDEF
1StudentTest 1Test 2Test 3BestAverage
2Ann7285909082.3
3Ben6470587064
4Cara8892959591.7
5Dan7560818172
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.Türkçe Excel’de: =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:

Yürüyen toplam ve toplam
C2
ABCD
1ItemPriceRunning totalTotal
2Pen2.52.5315.5
3Bag120122.5
4Lamp35157.5
5Mug8165.5
6Desk150315.5
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.Türkçe Excel’de: =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:

MAP'e verilen adlandırılmış bir LAMBDA
C2
ABC
1ItemPriceSale price
2Pen2.52.25
3Bag120108
4Lamp3531.5
5Mug87.2
6Desk150135
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.

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

Sıra sizde
E2
ABCDE
1StudentTest 1Test 2Test 3Total
2Ann728590
3Ben647058
4Cara889295
5Dan756081
Formülünü görmek için bir hücreye tıkla. Bir sayıyı ya da formülü değiştir, tablo yeniden hesaplanır.

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.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA