TL;DR
ARRAYFORMULA adalah fungsi Google Sheets yang bikin satu rumus jalan ke banyak baris sekaligus tanpa perlu di-copy ke bawah. Tulis di baris pertama, misal =ARRAYFORMULA(B2:B*C2:C), dan hasilnya otomatis ngisi seluruh kolom termasuk baris baru yang masuk belakangan. Fungsi ini bikin file lebih enteng dan rumus lebih gampang dibenerin karena cuma ada satu sumber.
ARRAYFORMULA adalah fungsi Google Sheets yang bikin satu rumus jalan ke banyak baris sekaligus, tanpa perlu di-copy ke bawah.
Jadi kalau selama ini kamu nulis rumus di sel D2 terus tarik ke bawah sampai baris 5.000, dan ngulang tiap ada data baru masuk, kerjaan itu bisa hilang.
Di bawah ini cara pakainya, kombinasi yang paling kepakai di kerjaan sehari-hari, dan error yang bikin orang nyerah di percobaan pertama.
ARRAYFORMULA adalah fungsi yang bikin rumus kamu ngeluarin banyak hasil sekaligus dari satu sel. Kamu tulis sekali di baris pertama, hasilnya nyebar ke bawah otomatis, termasuk ke baris yang baru diisi besok.
Sintaksnya sederhana:
=ARRAYFORMULA(rumus_dengan_range)
Kuncinya ada di kata range. Rumus biasa kerja per sel, ARRAYFORMULA kerja per kolom.
Bandingin dua ini:
Rumus biasa (di D2, harus di-drag ke bawah):
=B2*C2
ARRAYFORMULA (cukup di D2, selesai):
=ARRAYFORMULA(B2:B*C2:C)
Yang kedua ngisi kolom D sampai ke baris terakhir yang ada isinya. Nambah data di baris 5.001? Langsung kehitung.
Anggap kamu punya data penjualan kayak gini:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Produk | Qty | Harga | Total |
| 2 | Beras 5kg | 3 | 68.000 | ? |
| 3 | Minyak 2L | 2 | 38.500 | ? |
| 4 | Gula 1kg | 5 | 17.000 | ? |
Langkahnya:
=ARRAYFORMULA(B2:B*C2:C)Kolom D langsung keisi: 204.000, 77.000, 85.000. Dan tiap kamu nambah baris baru, totalnya muncul sendiri.
Kalau kamu males ngetik ARRAYFORMULA(, tulis rumusnya dulu terus tekan Ctrl+Shift+Enter. Google Sheets bakal bungkus otomatis.
Ini masalah pertama yang bikin orang kesel. Range terbuka B2:B nyakup semua baris kosong di bawah data, jadi hasilnya 0 di mana-mana.
Solusinya bungkus pakai IF:
=ARRAYFORMULA(IF(B2:B="", "", B2:B*C2:C))
Artinya: kalau kolom B kosong, biarin hasilnya kosong. Kalau ada isinya, baru dikali.
Pola IF(range="", "", ...) ini bakal kamu pakai di hampir semua ARRAYFORMULA. Hafalin.
Sekalian kalau mau ikutin header-nya juga:
=ARRAYFORMULA(IF(ROW(B:B)=1, "Total", IF(B:B="", "", B:B*C:C)))
Rumus ini ditaruh di D1. Baris 1 dapat teks "Total", baris sisanya dapat hasil hitungan. Satu rumus buat satu kolom penuh, header sekalian.
Mau kasih label "Besar" kalau total di atas 100 ribu:
=ARRAYFORMULA(IF(D2:D="", "", IF(D2:D>100000, "Besar", "Kecil")))
Ini yang bikin banyak orang jatuh cinta. Satu VLOOKUP buat seluruh kolom:
=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A, produk!A:C, 3, FALSE), ""))
IFERROR di luar penting. Kalau ada produk yang nggak ketemu, selnya dibiarin kosong bukan penuh #N/A. Kalau VLOOKUP masih bikin bingung, cek dulu panduan fungsi VLOOKUP.
=ARRAYFORMULA(IF(A2:A="", "", TEXT(A2:A, "mmmm yyyy")))
Ngubah kolom tanggal jadi nama bulan, buat bahan pivot table.
=ARRAYFORMULA(IF(A2:A="", "", REGEXEXTRACT(A2:A, "^(\w+)")))
Ngambil kata pertama dari tiap sel. Berguna buat misahin "Beras 5kg" jadi "Beras".
Nggak semua fungsi mau diajak kerja sama. Yang sering bikin gagal:
| Fungsi | Jalan di ARRAYFORMULA? | Gantinya |
|---|---|---|
| SUMIF / COUNTIF | Jalan, tapi kriterianya harus range | Pakai SUMIF(range, kriteria_range, sum_range) |
| SUMIFS | Nggak | Pakai SUMPRODUCT atau QUERY |
| CONCATENATE | Nggak | Pakai operator & |
| JOIN | Nggak | Pakai TEXTJOIN per baris |
| VLOOKUP | Jalan | - |
| IF / IFS | Jalan | - |
Kalau fungsi kamu masuk kolom "Nggak", pertimbangin pindah ke fungsi QUERY yang emang didesain buat ngolah tabel sekaligus.
Aku pakai dataset toko_berkah, file penjualan UMKM dengan 6.240 baris transaksi selama 2025, dicatat manual di Google Sheets.
Kondisi awalnya: 4 kolom hitungan (total, margin, kategori nilai, nama bulan), masing-masing pakai rumus yang di-drag sampai baris 6.240. Totalnya 24.960 rumus hidup di satu file.
File-nya butuh 4-6 detik tiap kali dibuka, dan tiap nambah transaksi harus drag ulang 4 kolom.
Habis diganti 4 ARRAYFORMULA:
D2: =ARRAYFORMULA(IF(B2:B="", "", B2:B*C2:C))
E2: =ARRAYFORMULA(IF(D2:D="", "", D2:D - (B2:B * VLOOKUP(A2:A, hpp!A:B, 2, FALSE))))
F2: =ARRAYFORMULA(IF(D2:D="", "", IF(D2:D>100000, "Besar", "Kecil")))
G2: =ARRAYFORMULA(IF(A2:A="", "", TEXT(tanggal2:tanggal, "mmmm yyyy")))
Hasilnya:
Yang paling kerasa bukan kecepatannya sih, tapi rumusnya jadi gampang dibenerin. Salah margin? Ganti satu sel, beres. Sebelumnya harus drag ulang 6.240 baris dan berdoa nggak ada yang keloncat.
Pakai referensi sel tunggal. =ARRAYFORMULA(B2*C2) tetap ngasih satu baris doang. Harus range: B2:B*C2:C.
Nulis di sel yang bawahnya udah ada isinya. Google Sheets bakal ngeluh "Array result was not expanded because it would overwrite data". Kosongin dulu kolom di bawahnya.
Lupa IFERROR di VLOOKUP. Satu nilai nggak ketemu, kolom kamu penuh #N/A dan chart-nya rusak.
Pakai range terbuka di 20 kolom sekaligus. Ini yang bikin file lemot, bukan ARRAYFORMULA-nya. Kalau datamu lewat 50 ribu baris, batasi rangenya jadi B2:B60000.
Numpuk ARRAYFORMULA di dalam ARRAYFORMULA. Nggak perlu. Satu pembungkus di paling luar udah cukup buat semua fungsi di dalamnya.
Drag rumus bikin satu rumus terpisah di tiap baris. Kalau ada 5.000 baris, ada 5.000 rumus yang harus dihitung, dan file jadi berat. ARRAYFORMULA cuma satu rumus yang hasilnya nyebar ke bawah. Baris baru yang masuk otomatis kehitung tanpa kamu drag ulang.
Biasanya karena kamu masih pakai referensi sel tunggal, bukan range. =ARRAYFORMULA(B2*C2) tetap satu baris. Yang bener =ARRAYFORMULA(B2:B*C2:C). Penyebab lain: fungsi di dalamnya nggak mendukung array, kayak SUMIFS.
Nggak ada fungsi bernama ARRAYFORMULA di Excel. Tapi Excel 365 punya dynamic array yang jalannya mirip: rumus ditulis sekali, hasilnya spill otomatis ke bawah. Detailnya bisa kamu baca di dokumentasi resmi Google Sheets buat perbandingan.
Bungkus pakai IF yang ngecek kolom kuncinya: =ARRAYFORMULA(IF(B2:B="", "", B2:B*C2:C)). Tanpa ini, kolom kamu penuh angka 0 sampai baris 1.000, dan itu bikin chart sama pivot table kacau.
Justru sebaliknya kalau dipakai bener. Satu ARRAYFORMULA jauh lebih ringan dari 5.000 rumus terpisah. Yang bikin lemot itu kalau kamu numpuk VLOOKUP ke sheet gede di dalam range terbuka. Batasi rangenya kalau data udah lewat 50 ribu baris.
IF(range="", "", ...) biar baris kosong nggak keisi 0.Coba sekarang: buka satu file kerjaan kamu yang rumusnya di-drag ke bawah, ganti satu kolom jadi ARRAYFORMULA. Lima menit, dan kamu bakal ngerasain bedanya.
Mau latihan rumus Sheets lain? Mampir ke panduan fungsi QUERY Google Sheets, pasangan paling pas buat ARRAYFORMULA.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Cara pakai rumus FV dan PV Excel buat hitung nilai uang di masa depan dan sekarang. Lengkap dengan contoh tabungan dan target modal UMKM.
Investasi kelihatan untung di atas kertas, tapi nilai uang berubah tiap tahun. NPV dan IRR Excel bantu kamu nilai apakah proyek beneran layak, bukan cuma kelihatan untung.
Sebelum ambil pinjaman, kamu bisa hitung sendiri cicilan bulanannya pakai satu rumus. Ini cara PMT Excel bekerja, lengkap dengan contoh modal usaha dan jebakan bunga tahunan.