REDUCE

REDUCE

REDUCE: Mengolah Array dengan Akumulasi Nilai di Excel

Kategori: Formula Guide
Level: Advanced
Brand: Excel Mudah
Tagline: SKILLS TODAY FOR A BRIGHTER TOMORROW

1. Pendahuluan

Fungsi REDUCE di Microsoft Excel digunakan untuk mengolah sekumpulan nilai (array) secara bertahap hingga menghasilkan satu nilai akhir. Pada setiap langkah, fungsi ini mengambil nilai akumulasi sebelumnya dan menggabungkannya dengan elemen berikutnya menggunakan formula yang ditentukan.

Berbeda dengan SUM yang khusus menjumlahkan angka, REDUCE dapat digunakan untuk berbagai operasi, seperti menghitung total, mengalikan nilai, membangun teks, menghitung jumlah data yang memenuhi kondisi, atau melakukan perhitungan khusus pada sekumpulan data.

Fungsi ini berguna ketika Anda ingin memproses banyak nilai dengan satu formula tanpa harus membuat kolom bantu untuk setiap tahapan perhitungan.

Contoh penerapannya dalam pekerjaan sehari-hari meliputi:

  • Menghitung total penjualan dari beberapa transaksi.
  • Menghitung total nilai setelah penyesuaian tertentu.
  • Menggabungkan beberapa teks menjadi satu hasil.
  • Menghitung jumlah data yang memenuhi kriteria tertentu.
  • Membuat perhitungan bertahap berdasarkan aturan bisnis.

Konsep utama REDUCE adalah akumulasi. Fungsi ini memulai proses dengan nilai awal, memproses setiap elemen array secara berurutan, lalu mengembalikan hasil akumulasi terakhir.

2. Sintaks

Sintaks fungsi REDUCE adalah sebagai berikut:

=REDUCE([initial_value], array, LAMBDA(accumulator, value, body))

Penjelasan struktur formula:

  • REDUCE adalah nama fungsi yang memproses array secara bertahap.
  • [initial_value] adalah nilai awal akumulasi. Argumen ini bersifat opsional.
  • array adalah kumpulan nilai yang akan diproses.
  • LAMBDA(accumulator, value, body) menentukan cara memperbarui hasil akumulasi pada setiap langkah.
  • accumulator menyimpan hasil perhitungan sebelumnya.
  • value mewakili elemen array yang sedang diproses.
  • body berisi ekspresi yang menghasilkan nilai akumulasi berikutnya.

Tanda kurung siku pada [initial_value] menunjukkan bahwa argumen tersebut opsional, bukan karakter yang harus diketik dalam formula. Tanda kurung biasa digunakan untuk mengapit argumen dan parameter fungsi.

Pemisah argumen pada contoh menggunakan koma (,). Jika Excel Anda menggunakan titik koma (;) sebagai pemisah regional, sesuaikan penulisannya.

Catatan: REDUCE bukan sekadar menjumlahkan array. Operasi yang dilakukan ditentukan oleh ekspresi di dalam LAMBDA.

3. Argument

Fungsi REDUCE memiliki tiga argumen utama. Argumen pertama opsional, sedangkan dua argumen berikutnya wajib diisi.

Argument Status Keterangan
initial_value Opsional Nilai awal untuk akumulator.
array Wajib Array atau kumpulan nilai yang akan diproses.
lambda Wajib Fungsi LAMBDA yang menentukan perhitungan pada setiap elemen.
3.1. initial_value

Argumen ini menentukan nilai awal akumulator sebelum proses pengolahan array dimulai. Nilai awal bergantung pada operasi yang ingin dilakukan.

Tujuan Nilai awal yang umum
Penjumlahan0
Perkalian1
Menghitung jumlah data0
Menggabungkan teks""

Contoh:

=REDUCE(0,A2:A5,LAMBDA(a,v,a+v))

Akumulator dimulai dari 0, kemudian setiap nilai dalam rentang A2:A5 ditambahkan ke hasil sebelumnya.

Jika initial_value tidak diberikan, elemen pertama array digunakan sebagai nilai awal. Karena itu, nilai awal perlu dipilih dengan cermat, terutama untuk operasi perkalian atau penggabungan teks.

3.2. array

Argumen array menentukan kumpulan nilai yang akan diproses. Sumbernya dapat berupa:

  • Rentang sel, misalnya A2:A10.
  • Konstanta array, misalnya {10,20,30}.
  • Hasil fungsi lain yang menghasilkan array.
  • Referensi kolom pada Excel Table.

Contoh:

=REDUCE(0,{10,20,30},LAMBDA(a,v,a+v))

Hasil: 60. Fungsi memproses nilai 10, 20, dan 30, lalu menghasilkan total 60.

3.3. lambda

Argumen lambda berisi fungsi LAMBDA dengan dua parameter input dan satu ekspresi hasil.

LAMBDA(a,v,a+v)
Parameter Arti
aHasil akumulasi sebelumnya.
vNilai yang sedang diproses.
a+vHasil akumulasi baru.

Nama a dan v hanyalah nama parameter. Anda dapat menggunakan nama lain yang valid, misalnya total dan nilai.

LAMBDA di dalam REDUCE harus memiliki dua parameter input dan satu ekspresi hasil. Jika jumlah parameter tidak sesuai atau fungsi LAMBDA tidak valid, Excel dapat menghasilkan error #VALUE! dengan keterangan Incorrect Parameters.

4. Excel Version

REDUCE merupakan fungsi Excel modern yang menggunakan LAMBDA untuk memproses array.

Versi atau platform Keterangan
Excel for Microsoft 365 — WindowsDidukung
Excel for Microsoft 365 — MacDidukung
Excel 2024Tercantum sebagai versi pengenalan fungsi
Excel for the webTersedia pada lingkungan Excel yang mendukung fungsi ini
Excel 2021Tidak tercantum sebagai versi yang mendukung fungsi ini
Excel 2019Tidak tercantum sebagai versi yang mendukung fungsi ini
Excel 2016Tidak tercantum sebagai versi yang mendukung fungsi ini

Untuk memastikan dukungan pada perangkat Anda, ketik =REDUCE( di sel kosong. Jika fungsi dikenali oleh Excel, nama fungsi dan petunjuk argumennya biasanya muncul ketika Anda mengetik formula.

Fungsi ini tidak dapat digunakan secara langsung pada versi Excel lama yang tidak mendukungnya. Workbook yang menggunakan REDUCE perlu diuji terlebih dahulu sebelum dibagikan kepada pengguna dengan versi Excel berbeda.

5. Contoh Kasus

5.1. Contoh Dasar: Menjumlahkan Angka

Misalnya, Anda memiliki data berikut pada sel A2:A5.

SelNilai
A210
A320
A430
A540

Gunakan formula berikut:

=REDUCE(0,A2:A5,LAMBDA(a,v,a+v))

Hasil: 100

Cara kerja formula:

  1. Akumulator dimulai dari 0.
  2. Nilai pertama, 10, diproses sehingga akumulator menjadi 0+10=10.
  3. Nilai berikutnya, 20, menghasilkan 10+20=30.
  4. Nilai 30 menghasilkan 30+30=60.
  5. Nilai 40 menghasilkan 60+40=100.
LangkahNilaiAkumulator
Awal—0
11010
22030
33060
440100

Contoh ini memperlihatkan bahwa REDUCE menyimpan hasil setiap tahap sebagai input untuk tahap berikutnya. Untuk penjumlahan biasa, fungsi SUM lebih sederhana. REDUCE lebih bermanfaat ketika aturan akumulasinya membutuhkan logika khusus.

5.2. Contoh Praktis: Menghitung Total Penjualan

Sebuah perusahaan ingin menghitung total penjualan harian dari beberapa transaksi.

BarisProdukNilai Penjualan
2Produk A500.000
3Produk B750.000
4Produk C300.000
5Produk D450.000

Anggap nilai penjualan tersimpan sebagai angka pada rentang B2:B5, tanpa teks Rp di dalam sel.

=REDUCE(0,B2:B5,LAMBDA(total,nilai,total+nilai))

Hasil: Rp2.000.000

  • 0 menjadi nilai awal total penjualan.
  • B2:B5 menyediakan nilai transaksi yang akan diproses.
  • total menyimpan total sementara.
  • nilai mengambil nilai transaksi yang sedang diproses.
  • total+nilai menambahkan transaksi ke akumulator.

Pada setiap transaksi, total diperbarui sampai semua nilai selesai diproses. Formatkan sel hasil sebagai mata uang Rupiah agar hasil ditampilkan sebagai Rp2.000.000.

Pendekatan ini lebih relevan ketika penjumlahan membutuhkan aturan tambahan yang tidak cukup ditangani oleh SUM, misalnya penyesuaian nilai berdasarkan kondisi tertentu.

5.3. Contoh Lanjutan: Menghitung Jumlah Angka Genap

Misalnya, rentang A2:A7 berisi angka berikut:

SelNilai
A212
A315
A420
A523
A628
A731

Untuk menghitung jumlah angka genap, gunakan:

=REDUCE(0,A2:A7,LAMBDA(a,v,a+IF(ISEVEN(v),1,0)))

Hasil: 3

ISEVEN(v) memeriksa apakah nilai saat ini genap. Jika genap, IF menghasilkan 1 untuk ditambahkan ke akumulator. Jika ganjil, IF menghasilkan 0, sehingga akumulator tidak bertambah.

Angka genap yang ditemukan adalah 12, 20, dan 28. Contoh ini menunjukkan bahwa REDUCE dapat melakukan penghitungan bersyarat dengan menggabungkan LAMBDA, IF, dan ISEVEN.

5.4. Contoh Lanjutan: Menggabungkan Teks

Misalnya, sel A2:A4 berisi nama berikut:

SelNama
A2Andi
A3Budi
A4Citra

Gunakan formula:

=REDUCE("",A2:A4,LAMBDA(a,v,a&IF(a="","",", ")&v))

Hasil: Andi, Budi, Citra

  • "" menetapkan teks kosong sebagai nilai awal.
  • a menyimpan teks yang telah digabungkan.
  • v adalah nama yang sedang diproses.
  • IF(a="","",", ") memastikan koma dan spasi hanya ditambahkan jika sudah ada teks sebelumnya.
  • Operator & menggabungkan teks.

Teknik ini berguna untuk membangun daftar teks secara bertahap. Namun, untuk penggabungan sederhana, TEXTJOIN biasanya lebih mudah dibaca.

5.5. Contoh Lanjutan: Mengalikan Hanya Nilai di Atas 50

Misalnya, daftar nilai berada pada rentang A2:A5.

SelNilai
A220
A360
A480
A540

Untuk mengalikan hanya angka yang lebih besar dari 50, gunakan:

=REDUCE(1,A2:A5,LAMBDA(a,v,IF(v>50,a*v,a)))

Hasil: 4.800

Perhitungannya adalah 60 × 80 = 4.800.

  1. Akumulator dimulai dari 1, karena 1 merupakan elemen identitas perkalian.
  2. Nilai 20 tidak memenuhi kondisi, sehingga akumulator tetap 1.
  3. Nilai 60 memenuhi kondisi, sehingga akumulator menjadi 1×60=60.
  4. Nilai 80 memenuhi kondisi, sehingga akumulator menjadi 60×80=4.800.
  5. Nilai 40 tidak memenuhi kondisi, sehingga hasil tetap 4.800.

Nilai awal 1 sangat penting. Jika menggunakan 0, seluruh hasil perkalian akan tetap 0.

6. Tips

6.1. Pilih Nilai Awal yang Tepat

Nilai awal menentukan hasil akhir akumulasi. Gunakan 0 untuk penjumlahan dan penghitungan jumlah data, 1 untuk perkalian, serta teks kosong ("") untuk penggabungan teks. Nilai awal yang tidak tepat dapat menghasilkan jawaban yang salah meskipun sintaks formulanya valid.

6.2. Gunakan Nama Parameter yang Mudah Dipahami

Contoh berikut valid:

=REDUCE(0,A2:A10,LAMBDA(total,nilai,total+nilai))

Nama total dan nilai lebih deskriptif daripada a dan v. Hal ini membantu pengguna lain memahami formula saat melakukan pemeriksaan atau pemeliharaan workbook.

6.3. Kombinasikan dengan Fungsi Lain

REDUCE dapat digabungkan dengan fungsi seperti IF, ISEVEN, ISNUMBER, dan fungsi lainnya untuk membangun aturan akumulasi.

Contoh menghitung jumlah angka positif:

=REDUCE(0,A2:A10,LAMBDA(a,v,a+IF(v>0,1,0)))

Formula ini menghitung elemen yang lebih besar dari nol, dengan asumsi data dalam rentang tersebut merupakan angka yang valid.

6.4. Gunakan Fungsi yang Lebih Sederhana Jika Memadai
KebutuhanAlternatif yang lebih sederhana
Menjumlahkan angkaSUM
Mengalikan semua angkaPRODUCT
Menghitung jumlah data sesuai kriteriaCOUNTIF
Menggabungkan teks dengan pemisahTEXTJOIN
Menghasilkan setiap hasil perantaraSCAN

Gunakan REDUCE ketika Anda memerlukan akumulasi yang fleksibel atau aturan khusus yang sulit ditangani dengan fungsi standar.

6.5. Perhatikan Ukuran Array

Untuk data yang besar, gunakan rentang yang relevan daripada seluruh kolom jika tidak diperlukan. Hindari pengulangan perhitungan kompleks di dalam LAMBDA apabila hasilnya dapat disederhanakan. Cara ini membantu menjaga keterbacaan dan dapat mengurangi beban kalkulasi workbook.

7. Kesalahan Umum

7.1. Kesalahan Jumlah Parameter LAMBDA

Penyebab: Jumlah parameter pada LAMBDA tidak sesuai dengan yang dibutuhkan oleh REDUCE.

Formula yang salah:

=REDUCE(0,A2:A5,LAMBDA(a,a+1))

Formula yang benar:

=REDUCE(0,A2:A5,LAMBDA(a,v,a+v))

Pada formula yang benar, a merupakan akumulator dan v merupakan nilai yang sedang diproses. Kesalahan parameter dapat menghasilkan #VALUE! dengan pesan Incorrect Parameters.

7.2. Menggunakan Nilai Awal yang Tidak Tepat

Penyebab: Nilai awal tidak sesuai dengan operasi yang dilakukan.

Contoh formula yang salah untuk perkalian:

=REDUCE(0,A2:A5,LAMBDA(a,v,a*v))

Formula tersebut menghasilkan 0 karena setiap perkalian melibatkan akumulator awal yang bernilai nol.

Formula yang benar:

=REDUCE(1,A2:A5,LAMBDA(a,v,a*v))

Untuk operasi perkalian, gunakan 1 sebagai nilai awal.

7.3. Menggunakan Nama Fungsi yang Tidak Dikenali

Penyebab: Versi Excel tidak mendukung REDUCE, atau nama fungsi salah ketik. Gejala yang mungkin muncul adalah #NAME?.

=REDUCE(0,A2:A5,LAMBDA(a,v,a+v))

Periksa apakah Excel yang digunakan mendukung REDUCE dan apakah penulisan nama fungsi sudah benar. Jika versi Excel tidak mendukungnya, gunakan fungsi alternatif seperti SUM untuk penjumlahan sederhana.

7.4. Data Array Mengandung Error

Penyebab: Salah satu sel pada array berisi error, misalnya #N/A, #REF!, atau #VALUE!. Jika formula LAMBDA menggunakan nilai tersebut tanpa penanganan khusus, error dapat diteruskan ke hasil akhir.

Contoh penanganan jika tujuan Anda adalah mengabaikan elemen yang menghasilkan error:

=REDUCE(0,A2:A5,LAMBDA(a,v,a+IFERROR(v,0)))

Formula ini memperlakukan nilai yang menghasilkan error sebagai nol. Gunakan pendekatan ini hanya jika mengabaikan error memang sesuai dengan kebutuhan analisis. Jangan menghilangkan error otomatis jika error tersebut menandakan masalah data yang perlu diperbaiki.

7.5. Menggunakan REDUCE Padahal Membutuhkan Hasil Perantara

REDUCE hanya mengembalikan hasil akumulasi akhir, bukan seluruh hasil pada setiap langkah. Jika Anda ingin melihat perkembangan total setelah setiap transaksi, pertimbangkan SCAN.

=SCAN(0,A2:A5,LAMBDA(a,v,a+v))

Jika A2:A5 berisi 10, 20, 30, dan 40, hasilnya berupa array 10, 30, 60, dan 100. Berbeda dengan REDUCE, SCAN menampilkan hasil antara sehingga lebih cocok untuk membuat laporan perkembangan saldo atau akumulasi transaksi.

8. Kompatibilitas

8.1. Kompatibilitas dengan Versi Excel Lama

REDUCE tidak tersedia pada semua versi Excel. Workbook yang mengandung fungsi ini dapat menampilkan #NAME? ketika dibuka menggunakan Excel lama yang tidak mengenal fungsi tersebut.

Jika workbook akan dibagikan kepada pengguna dengan versi Excel berbeda, pastikan semua penerima menggunakan versi yang mendukung fungsi ini atau sediakan alternatif formula.

8.2. Kompatibilitas dengan Dynamic Arrays

REDUCE menerima array sebagai input, tetapi hasilnya berupa satu nilai akhir, bukan array hasil per elemen. Hal ini membedakannya dari fungsi seperti MAP dan SCAN.

FungsiHasil utama
REDUCESatu nilai akumulasi akhir
SCANArray berisi hasil akumulasi pada setiap tahap
MAPArray hasil transformasi setiap elemen
8.3. Kompatibilitas dengan Excel Table

REDUCE dapat digunakan bersama referensi terstruktur (structured references) pada Excel Table. Misalnya, tabel bernama Penjualan memiliki kolom Nilai.

=REDUCE(0,Penjualan[Nilai],LAMBDA(a,v,a+v))

Formula tersebut memproses nilai pada kolom Nilai dan menghasilkan total akumulasi. Referensi terstruktur memudahkan pemeliharaan formula ketika data tabel bertambah.

8.4. Kompatibilitas dengan Workbook yang Dibagikan

Sebelum membagikan workbook yang menggunakan REDUCE, perhatikan beberapa hal berikut:

  • Pastikan versi Excel penerima mendukung fungsi REDUCE dan LAMBDA.
  • Periksa pemisah argumen yang digunakan pada lingkungan Excel penerima.
  • Uji formula ketika workbook dibuka di lingkungan target, termasuk Excel untuk Mac atau Excel for the web jika digunakan.
  • Jika workbook harus mendukung versi lama, pertimbangkan fungsi standar seperti SUM, PRODUCT, atau COUNTIF apabila kebutuhan perhitungannya sederhana.

Informasi ketersediaan fungsi sebaiknya diperiksa melalui dokumentasi Microsoft untuk versi Excel yang digunakan.

Referensi Resmi Microsoft

Kesimpulan: REDUCE merupakan fungsi Excel tingkat lanjut yang memungkinkan pengguna mengolah array melalui proses akumulasi menggunakan LAMBDA. Fungsi ini bermanfaat untuk perhitungan khusus, penghitungan bersyarat, perkalian selektif, dan penggabungan teks secara bertahap. Dengan memahami nilai awal, array, dan logika akumulasi, Anda dapat membangun formula yang fleksibel tanpa harus membuat banyak kolom bantu.