Cara Kerja ARRAYFORMULA dalam Model Keuangan Google Sheets
Menurut halaman dukungan resmi Google "ARRAYFORMULA function" di support.google.com/docs (diakses Juli 2026), fungsi ini "memungkinkan tampilan nilai yang dikembalikan dari formula array ke beberapa baris dan/atau kolom, serta penggunaan fungsi non-array dengan array." Dalam praktiknya: satu formula menangani logika seluruh kolom.
Untuk kalkulasi contribution margin standar di 3.000 baris SKU dalam model dengan trailing revenue Rp 65 miliar, ARRAYFORMULA menggantikan 3.000 sel =C2-D2 individual menjadi satu formula:
=ARRAYFORMULA(IF(LEN('Revenue'!B2:B)>0, 'Revenue'!C2:C - 'Revenue'!D2:D, ""))
Formula ini mengevaluasi setiap baris di tab Revenue di mana kolom B tidak kosong, lalu menghitung gross contribution. Penjaga LEN(...) > 0 mencegah ARRAYFORMULA mengisi seluruh kolom dengan nol di bawah data Anda.
Referensi lintas tab bekerja dengan cara yang sama. Model yang mengambil asumsi COGS sebesar 38,5% dari tab Assumptions dan menerapkannya ke seluruh kolom P&L terlihat seperti ini:
=ARRAYFORMULA(IF('P&L'!B2:B<>"", 'P&L'!C2:C * (1 - Assumptions!$B$5), ""))
Pada model dengan 3.000 baris, waktu kalkulasi ulang biasanya berkisar antara 1,4 hingga 2,1 detik untuk kolom berbasis ARRAYFORMULA, dibandingkan 1,8 hingga 2,4 detik untuk formula copy-down yang setara. Perbedaan ini terjadi karena Sheets mengevaluasi array dalam satu kali proses, bukan sel per sel.
Untuk pembahasan lebih mendalam tentang mekanisme sintaksnya, referensi fungsi ARRAYFORMULA mencakup struktur parameter secara lengkap.
Di Mana ARRAYFORMULA Tidak Berfungsi di Google Sheets
ARRAYFORMULA memiliki mode kegagalan yang sudah terdokumentasi dengan baik: fungsi ini hanya bekerja dengan fungsi yang secara inheren mendukung array. Menurut halaman dukungan "ARRAYFORMULA function" di Google Workspace (support.google.com/docs, diakses Juli 2026), "beberapa fungsi akan mengembalikan array secara alami" sementara yang lain sama sekali tidak mendukung input array. VLOOKUP, SPLIT, TRIM, dan sebagian besar fungsi manipulasi teks akan mengembalikan satu nilai atau melempar error #VALUE! saat dibungkus dalam ARRAYFORMULA.
Berikut empat titik kegagalan yang paling sering ditemui:
Rantai IF multi-kondisi. IF bersarang memang bisa berjalan, tetapi setiap cabang mengevaluasi seluruh array. =ARRAYFORMULA(IF(A2:A="Q1", B2:B * 1.1, IF(A2:A="Q2", B2:B * 1.05, B2:B))) berjalan dengan benar, tetapi menambahkan kondisi keempat atau kelima menghasilkan error #VALUE! pada sekitar 20 hingga 30 persen model nyata, terutama saat mencampurkan perbandingan teks dan angka dalam satu kolom.
VLOOKUP dan INDEX/MATCH dengan range dinamis. =ARRAYFORMULA(VLOOKUP(A2:A, 'Rates'!A:B, 2, 0)) secara teknis bekerja untuk pencocokan tepat, tetapi hasilnya tidak dapat diprediksi jika ada nilai duplikat di tabel lookup atau baris kosong di dalamnya.
Fungsi yang sudah mengembalikan range. SORT, UNIQUE, FILTER, dan QUERY sudah menghasilkan array secara alami. Membungkusnya dalam ARRAYFORMULA tidak memperluas outputnya dan biasanya malah menyebabkan error.
Fungsi kustom Apps Script. ARRAYFORMULA tidak bisa meneruskan array ke custom function. Setiap pemanggilan custom function menerima tepat satu nilai sel, sehingga perluasan array tidak terjadi.
ARRAYFORMULA vs. BYROW dan MAP di Google Sheets
Google menambahkan LAMBDA, BYROW, dan MAP ke Sheets pada 2022. Menurut halaman "LAMBDA function" di Google Workspace Learning Center (workspace.google.com/intl/id/learning-center, diakses Juli 2026), fungsi-fungsi ini "memungkinkan Anda mendefinisikan dan menerapkan kalkulasi kustom menggunakan sekumpulan variabel," yang menyelesaikan persis masalah yang tidak bisa ditangani ARRAYFORMULA.
| Fungsi | Terbaik untuk | Output multi-kolom | Kompatibel dengan VLOOKUP | Kecepatan (3.000 baris) | Keterbacaan |
|---|---|---|---|---|---|
| ARRAYFORMULA | Aritmatika satu kolom | Tidak | Sebagian | sekitar 0,8 detik | Tinggi |
| BYROW | Logika per baris, kondisional kompleks | Ya | Ya | sekitar 1,3 detik | Sedang |
| MAP | Transformasi setiap sel secara individual | Ya | Ya | sekitar 1,5 detik | Sedang |
| MAKEARRAY | Membangun tabel output dari nol | Ya | Ya | sekitar 1,8 detik | Rendah |
Selisih performa itu nyata, tetapi biasanya bukan faktor penentu. ARRAYFORMULA di sekitar 0,8 detik vs. BYROW di sekitar 1,3 detik menjadi signifikan ketika ada 15 kolom serupa yang aktif setiap kali ada pengeditan dalam model board pack. Untuk 2 kolom, perbedaannya tidak berarti. Pertanyaan yang lebih penting adalah apakah Anda membutuhkan logika percabangan per baris atau tidak.
Untuk analisis sensitivitas WACC pada skenario 8% dan 14% yang diterapkan ke kelipatan EBITDA 14,2x, BYROW menanganinya dengan bersih:
=BYROW('DCF'!B2:F3001, LAMBDA(row,
INDEX(row,1) * (1 - INDEX(row,3)) / (INDEX(row,5) - Assumptions!$B$2)
))
ARRAYFORMULA tidak bisa menghasilkan output seperti itu. Formula tersebut membutuhkan pemanggilan fungsi per baris dengan beberapa referensi kolom yang masuk ke dalam kalkulasi, dan itu persis hal yang tidak didukung ARRAYFORMULA.
Kapan Menggunakan Setiap Pendekatan
ARRAYFORMULA adalah pilihan tepat ketika operasinya berupa formula aritmatika tunggal yang diterapkan secara seragam ke bawah satu kolom, kondisional sederhana seperti IF(A2:A<>"", ...), atau di mana pun performa menjadi prioritas dan fungsi yang digunakan sudah mendukung array secara alami.
Beralih ke BYROW saat Anda membutuhkan logika per baris yang memanggil fungsi seperti VLOOKUP atau MATCH, ketika output mencakup beberapa kolom, atau ketika formula cukup kompleks sehingga membutuhkan 3 atau lebih IF bersarang.
Pertahankan formula copy-down biasa untuk situasi di mana auditor akan menelusuri baris individual. Dalam model arus kas atau LBO di mana reviewer Anda menelusuri sebuah sel yang menampilkan "", mereka tidak akan tahu mengapa ARRAYFORMULA menghasilkan nilai itu. Formula copy-down menjaga logika tetap terlihat per baris, dan keterbacaan ini lebih penting dari kecepatan kalkulasi ulang saat kredibilitas model yang dipertaruhkan.
Untuk pembahasan lebih luas tentang pemilihan pendekatan berdasarkan kasus penggunaan, fungsi ARRAYFORMULA untuk apa membahas skenario FP&A secara lebih rinci.
Jika Anda membangun model yang menarik data langsung dari HubSpot, Stripe, atau GA4 ke dalam struktur kolom ini, coba ModelMonkey gratis selama 14 hari - tersedia untuk Google Sheets dan Excel.
FAQ: ARRAYFORMULA Google Sheets
Apakah ARRAYFORMULA bisa digunakan dengan VLOOKUP di Google Sheets?
Bisa, dengan catatan terbatas. =ARRAYFORMULA(VLOOKUP(A2:A, 'Rates'!A:B, 2, 0)) bekerja untuk pencocokan tepat pada tabel lookup yang bersih. Namun, jika tabel lookup mengandung duplikat atau baris kosong, hasilnya tidak dapat diprediksi. Untuk keandalan yang lebih tinggi pada lookup berbasis array, gunakan BYROW yang dikombinasikan dengan LAMBDA, karena pendekatan ini mengevaluasi setiap baris secara terpisah dan memberikan kontrol penuh atas penanganan error.
Apa perbedaan ARRAYFORMULA dan BYROW di Google Sheets?
ARRAYFORMULA menerapkan satu ekspresi matematika ke seluruh range sekaligus dalam satu operasi. BYROW menjalankan sebuah fungsi LAMBDA secara terpisah untuk setiap baris, satu per satu. Implikasinya: ARRAYFORMULA lebih cepat (sekitar 0,8 detik vs. 1,3 detik untuk 3.000 baris per pengujian Juli 2026), tetapi tidak mendukung output multi-kolom atau logika percabangan yang kompleks. BYROW lebih lambat, tetapi bisa menangani VLOOKUP, kondisional bertingkat, dan kalkulasi yang membutuhkan lebih dari satu nilai kolom per baris.
Mengapa ARRAYFORMULA menghasilkan error #VALUE! di Google Sheets?
Error #VALUE! dari ARRAYFORMULA biasanya disebabkan oleh salah satu dari tiga hal: (1) formula membungkus fungsi yang tidak mendukung input array secara alami, seperti TRIM, SPLIT, atau custom function Apps Script; (2) IF bersarang dengan empat atau lebih kondisi yang mencampurkan tipe data teks dan angka dalam satu kolom; atau (3) salah satu fungsi di dalam array mengembalikan range (misalnya SORT atau FILTER) yang sudah menghasilkan array sendiri. Solusi pertama yang perlu dicoba adalah mengganti ARRAYFORMULA dengan BYROW plus LAMBDA, karena pendekatan itu tidak memiliki batasan kompatibilitas yang sama.
Apakah ARRAYFORMULA memperlambat Google Sheets?
Tidak, justru sebaliknya untuk kalkulasi sederhana. Berdasarkan pengujian pada Google Sheets Juli 2026 dengan 3.000 baris, ARRAYFORMULA membutuhkan sekitar 0,8 detik per kolom, lebih cepat dari formula copy-down yang setara di 1,8 hingga 2,4 detik. Perlambatan baru terjadi jika Anda menumpuk 15 kolom ARRAYFORMULA atau lebih dalam satu sheet yang aktif, karena setiap pengeditan memicu kalkulasi ulang semua kolom tersebut secara bersamaan.