Menu

Rumus LAMBDA Excel: Fungsi Kustom, MAP dan BYROW

=LAMBDA(price,price*1.2)(B2) membuat fungsi kecil dengan satu input, price, lalu memanggilnya pada B2. Simpan LAMBDA di Name Manager agar bisa dipakai seperti fungsi bawaan, atau berikan ke MAP, BYROW, SCAN dan REDUCE.

Setiap lembar kerja di halaman ini interaktif: ubah angka atau rumus, dan hasilnya langsung dihitung ulang.

=LAMBDA(price,price*1.2)(B2) membuat fungsi kecil dengan satu input, price, lalu langsung memanggilnya pada B2: harga pulpen 2.5 menjadi 3. Kalau hanya begitu, rumus ini cuma versi panjang dari =B2*1.2. Gunanya LAMBDA adalah memberi nama pada fungsi itu di Name Manager, sehingga rumus panjang menjadi =ADDVAT(B2), dan memberikannya ke MAP, BYROW dan fungsi lain di bawah.

Fungsi yang dipanggil untuk setiap harga
C2
ABC
1ItemPriceWith VAT
2Pen2.53
3Bag120144
4Lamp3542
5Mug89.6
6Desk150180
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Sintaks LAMBDA

=LAMBDA([parameter1, parameter2, ...], calculation)
  • Setiap parameter adalah nama untuk sebuah input, seperti nama di LET. Maksimal 253 parameter.
  • Argumen terakhir adalah calculation, yaitu perhitungan yang memakai parameter tersebut.
  • Nilai untuk parameter ditulis di dalam kurung tepat setelah kurung tutup: =LAMBDA(x,y,x*y)(3,4) mengembalikan 12.

LAMBDA, MAP, BYROW, BYCOL, SCAN, REDUCE dan MAKEARRAY membutuhkan Microsoft 365, Excel 2024 atau Excel untuk web. Excel 2021 punya LET, tapi tidak punya fungsi-fungsi ini. Google Sheets juga punya LAMBDA, dan menyimpannya dengan sebuah nama lewat Data > Named functions.

Simpan LAMBDA sebagai fungsi kustom

LAMBDA bisa dipakai berulang kali setelah kamu memberinya nama. Excel tidak butuh VBA atau add-in untuk ini:

  1. Buka Formulas > Name Manager lalu klik New (atau Formulas > Define Name).
  2. Di Name, ketik nama fungsinya, misalnya ADDVAT.
  3. Di Refers to, masukkan LAMBDA tanpa input: =LAMBDA(price,price*1.2).
  4. Klik OK. Sekarang ketik =ADDVAT(B2) di sel mana pun dalam workbook.
Name:        ADDVAT
Refers to:   =LAMBDA(price,price*1.2)
In a cell:   =ADDVAT(B2)        returns 3 when B2 is 2.5

Fungsi itu hanya ada di workbook tersebut. Salin sheet yang memakainya ke workbook lain, dan namanya ikut terbawa. Ubah LAMBDA sekali di Name Manager, dan setiap sel yang memanggilnya ikut diperbarui. Uji LAMBDA di sebuah sel dengan input di dalam kurung sebelum kamu menyimpannya; kesalahan lebih mudah terlihat di sana.

MAP: terapkan LAMBDA ke setiap sel

MAP memanggil LAMBDA satu kali untuk setiap sel dalam rentang dan mengembalikan rentang dengan bentuk yang sama. Di sini setiap harga di atas 100 mendapat diskon 10%:

Diskon 10% untuk harga di atas 100
C2
ABC
1ItemPricePrice to pay
2Pen2.52.5
3Bag120108
4Lamp3535
5Mug88
6Desk150135
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Tas (120) menjadi 108 dan meja (150) menjadi 135; harga lainnya tetap. Satu rumus di C2 mencakup seluruh kolom. MAP juga bisa menelusuri dua rentang berukuran sama secara berdampingan: dengan jumlah barang di D2:D6, =MAP(B2:B6,D2:D6,LAMBDA(p,q,p*q)) mengalikan setiap harga dengan jumlahnya.

BYROW: satu hasil per baris

BYROW memberikan satu baris utuh sekaligus ke LAMBDA, sehingga LAMBDA bisa memakai MAX, SUM atau AVERAGE pada baris itu. Nilai terbaik dan rata-rata setiap siswa:

Nilai terbaik dan rata-rata per siswa
E2
ABCDEF
1StudentTest 1Test 2Test 3BestAverage
2Ann7285909082.3
3Ben6470587064
4Cara8892959591.7
5Dan7560818172
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

E2 mengembalikan 90, 70, 95 dan 81; F2 mengembalikan 82.3, 64, 91.7 dan 72. =MAX(B2:D5) biasa hanya memberi satu angka untuk seluruh tabel; BYROW-lah yang memisahkan tiap baris dalam satu rumus. BYCOL melakukan hal yang sama per kolom: =BYCOL(B2:D5,LAMBDA(c,AVERAGE(c))) mengembalikan rata-rata setiap tes.

SCAN dan REDUCE: total kumulatif

REDUCE menelusuri sebuah rentang sambil membawa satu nilai, lalu hanya mengembalikan hasil akhirnya. SCAN melakukan hal yang sama tapi mengembalikan setiap langkahnya, jadi kamu mendapat total kumulatif dengan satu rumus:

Total kumulatif dan total akhir
C2
ABCD
1ItemPriceRunning totalTotal
2Pen2.52.5315.5
3Bag120122.5
4Lamp35157.5
5Mug8165.5
6Desk150315.5
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Argumen pertama, 0, adalah nilai awal. Untuk setiap harga, LAMBDA menerima total sejauh ini dan harga tersebut, lalu mengembalikan total yang baru. C2 berisi 2.5, 122.5, 157.5, 165.5, 315.5, dan D2 hanya menampilkan hasil akhirnya, 315.5. Untuk total biasa, SUM lebih sederhana, tapi REDUCE bisa membawa apa saja, misalnya teks yang terus bertambah atau hitungan yang hanya naik di baris tertentu.

Beri nama LAMBDA di dalam satu rumus dengan LET

LAMBDA tidak perlu Name Manager kalau hanya dipakai oleh satu rumus. Beri nama dengan LET, lalu berikan nama itu ke MAP atau BYROW:

LAMBDA bernama yang diberikan ke MAP
C2
ABC
1ItemPriceSale price
2Pen2.52.25
3Bag120108
4Lamp3531.5
5Mug87.2
6Desk150135
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Setiap harga mendapat diskon 10%: 2.25, 108, 31.5, 7.2 dan 135. Di Excel, kamu juga bisa memanggil LAMBDA bernama itu langsung di dalam LET, =LET(f,LAMBDA(x,x*2),f(5)), yang mengembalikan 10.

Latihan: total per baris dengan BYROW

Giliranmu
E2
ABCDE
1StudentTest 1Test 2Test 3Total
2Ann728590
3Ben647058
4Cara889295
5Dan756081
Klik sel untuk melihat rumusnya. Ubah angka atau rumus, dan lembar kerja langsung menghitung ulang.

Giliranmu: Di E2, kembalikan total tiga tes untuk setiap siswa, satu angka per baris, dengan satu rumus saja.

Error LAMBDA yang umum

=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
  • #CALC! berarti ada LAMBDA di sebuah sel yang tidak dipanggil. Tambahkan input di dalam kurung, atau simpan di Name Manager lalu panggil dengan namanya.
  • #VALUE! berarti jumlah nilai tidak sama dengan jumlah parameter. Hitung keduanya.
  • #NAME? berarti versi Excel-mu tidak punya LAMBDA, atau nama yang disimpan salah ketik. Nama parameter mengikuti aturan LET: tanpa spasi, dan tidak boleh mirip alamat sel.
  • LAMBDA di BYROW yang mengembalikan beberapa nilai per baris menghasilkan #CALC!. Setiap baris harus menghasilkan satu nilai; untuk mengembalikan satu baris hasil, pakai MAKEARRAY atau rumus array biasa.

Pertanyaan yang sering diajukan

Apa itu fungsi LAMBDA di Excel?

LAMBDA mengubah rumus menjadi fungsi dengan input yang diberi nama. =LAMBDA(price,price*1.2) menerima satu input bernama price dan mengembalikan price dikali 1.2. Panggil dengan menambahkan input di dalam kurung, =LAMBDA(price,price*1.2)(B2), atau simpan dengan sebuah nama di Name Manager.

Bagaimana cara membuat fungsi sendiri di Excel tanpa VBA?

Buka Formulas > Name Manager > New, ketik nama seperti ADDVAT, lalu di Refers to masukkan =LAMBDA(price,price*1.2). Klik OK, dan =ADDVAT(B2) bisa dipakai di sel mana pun dalam workbook itu.

Kenapa LAMBDA saya menghasilkan #CALC!?

LAMBDA yang diketik di sel tanpa input, seperti =LAMBDA(x,x*2), adalah fungsi yang tidak pernah dipanggil, jadi Excel menampilkan #CALC!. Tambahkan input di dalam kurung setelahnya, =LAMBDA(x,x*2)(5), atau simpan di Name Manager.

Versi Excel mana yang punya LAMBDA?

Microsoft 365, Excel 2024 dan Excel untuk web, bersama MAP, BYROW, BYCOL, SCAN, REDUCE dan MAKEARRAY. Excel 2021 punya LET, tapi tidak punya LAMBDA.

Apa fungsi BYROW di Excel?

BYROW menjalankan LAMBDA satu kali untuk setiap baris rentang dan mengembalikan satu hasil per baris: =BYROW(B2:D5,LAMBDA(r,MAX(r))) mengembalikan nilai terbesar setiap baris, yang spill ke bawah.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai