Analisis Data

Error #SPILL! di Excel: 6 Penyebab dan Cara Mengatasinya

ModelMonkey25 Juni 202611 menit baca

Artikel ini membahas 6 penyebab tersebut, cara memperbaikinya dengan cepat, dan yang lebih berguna: cara menyusun model keuangan 8-tab sehingga error ini tidak pernah muncul sejak awal.

Sekilas: 6 Penyebab #SPILL! di Excel

#Pesan sub-errorPemicu umumPerbaikan cepat
1Spill range isn't blankAda nilai atau formula di sel outputHapus sel yang menghalangi (setelah memeriksa dependensi)
2Spill range is too largeOutput akan melampaui 1.048.576 barisPersempit kriteria filter
3Spill range is indeterminateRAND() atau RANDBETWEEN() bersarang dalam array dinamisGanti fungsi volatile dengan seed statis
4Dynamic array inside a TableFILTER/UNIQUE di dalam objek Tabel Ctrl+TPindahkan formula ke luar Tabel
5Spill range has merged cellsBaris header yang di-merge menghalangi outputUnmerge, atau gunakan Center Across Selection
6Out of resourcesOutput terlalu besar untuk memori yang tersediaAgregasi sebelum spilling

Penyebab 1: Spill Range Tidak Kosong

Penyebab paling umum. Sebuah sel dalam rentang output berisi data - formula, nilai, bahkan satu karakter spasi - dan Excel menolak untuk menimpanya.

Bahaya tersembunyi: Jika Anda langsung menghapus sel yang menghalangi tanpa memeriksa dulu, pastikan Anda tahu terlebih dahulu apa yang bergantung pada sel tersebut. Dalam model tiga laporan keuangan di mana ='P&L'!B47 menggerakkan saldo awal arus kas, menghapus B47 akan mengenolkan referensi itu. Model Anda menunjukkan FCF Rp 0 dan tidak ada yang menyadarinya sampai laporan untuk dewan direksi sudah harus siap.

Cara memperbaiki: Klik sel #SPILL!, lalu gunakan "Select Obstructing Cells" dari dropdown error. Excel akan menyorot tepat apa yang menghalangi. Sebelum menghapus apa pun, jalankan Formulas > Trace Dependents untuk memetakan setiap formula yang mereferensikan sel tersebut.

Penyebab 2: Spill Range Terlalu Besar

Output formula akan melampaui batas grid Excel yaitu 1.048.576 baris kali 16.384 kolom. Batas ini didokumentasikan dalam halaman resmi "Excel specifications and limits" milik Microsoft (terakhir diperbarui Maret 2026), yang mencatat batas tersebut berlaku secara konsisten di seluruh versi Excel berbasis Windows, Mac, dan web. Fungsi FILTER yang mengembalikan setiap baris tidak kosong dari dataset transaksi yang besar bisa mencapai batas ini dengan mudah.

Cara memperbaiki: Persempit kriteria filter agar output tetap dalam batas. =FILTER('Transaksi'!A:F, 'Transaksi'!C:C="Q1 2026") yang mengembalikan 18.000 baris masih aman. =FILTER('Transaksi'!A:F, 'Transaksi'!C:C<>"") pada buku besar multi-tahun kemungkinan besar tidak.

Penyebab 3: Ukuran Spill Tidak Dapat Ditentukan

Excel tidak dapat menghitung ukuran output sebelum mengevaluasi formula. Ini hampir selalu berarti ada fungsi volatile seperti RAND() atau RANDBETWEEN() yang bersarang di dalam array dinamis - dimensi array bergantung pada nilai yang berubah setiap kali kalkulasi ulang dilakukan.

Cara memperbaiki: Ganti fungsi volatile dengan nilai seed statis, atau restrukturisasi untuk memisahkan pencarian volatile dari formula yang mengembalikan array.

Penyebab 4: Array Dinamis di Dalam Tabel Excel

Tabel Excel - objek terstruktur yang dibuat melalui Insert > Table atau Ctrl+T - tidak mendukung formula array dinamis. FILTER, UNIQUE, atau SORT di dalam kolom Tabel akan selalu mengembalikan #SPILL!. Menurut dokumentasi array dinamis Microsoft, "formula array dinamis tidak didukung di dalam tabel Excel."

Hal ini sering menjebak analis yang membangun model komparasi menggunakan referensi Tabel terstruktur sebelum 2019 dan kini mencampur gaya formula lama dengan yang baru.

Cara memperbaiki: Pindahkan formula ke rentang sel biasa di luar Tabel, atau konversi Tabel menjadi rentang (Table Design > Convert to Range) sebelum menggunakan array dinamis.

Catatan: Google Sheets tidak memiliki batasan yang setara. FILTER dan UNIQUE berfungsi di dalam rentang berformat apa pun di Sheets.

Penyebab 5: Spill ke Sel yang Di-Merge

Sel yang di-merge menghalangi spill range dengan cara yang sama seperti data biasa. Ini umum terjadi pada template laporan berformat di mana header bagian mencakup beberapa kolom sekaligus.

Cara memperbaiki: Unmerge sel yang menghalangi (Home > Merge & Center > Unmerge Cells). Untuk tampilan header yang mencakup beberapa kolom tanpa menghalangi formula, gunakan Format Cells > Alignment > Center Across Selection sebagai gantinya.

Penyebab 6: Kehabisan Sumber Daya

Output formula akan mengonsumsi lebih banyak memori dari yang dapat dialokasikan Excel. FILTER yang mengembalikan 500.000 baris dengan 6 kolom menghasilkan 3 juta sel sekaligus - cukup untuk menghabiskan memori yang tersedia, terutama jika ada workbook besar lain yang sedang terbuka.

Cara memperbaiki: Lakukan agregasi sebelum spilling. Alih-alih menarik semua 500.000 baris transaksi ke dalam array dinamis, gunakan SUMIFS untuk merangkumnya menjadi satu nilai per periode:

=SUMIFS('Transaksi'!E:E, 'Transaksi'!C:C, ">=" & Asumsi!$B$3,
         'Transaksi'!C:C, "<=" & Asumsi!$B$4,
         'Transaksi'!D:D, Returns!$B$7)

Jika Anda memang membutuhkan dataset lengkap di tingkat baris, muat ke Power Query dan ringkas di sana sebelum data masuk ke sheet.

#SPILL! vs. Google Sheets: Perbandingan Per Penyebab

PenyebabExcelGoogle Sheets
Spill range terhalang#SPILL! - menolak untuk menimpaMenimpa secara diam-diam (tanpa peringatan)
Output terlalu besar#SPILL! - batas grid diberlakukanError hanya jika sheet benar-benar penuh
Ukuran tidak dapat ditentukan#SPILL!Diizinkan - array volatile berfungsi normal
Di dalam objek Tabel#SPILL! - Tabel menghalangi array dinamisTidak ada padanan - tidak ada objek Tabel
Sel di-merge#SPILL!Perilaku sama
Kehabisan memori#SPILL!Mengembalikan output parsial atau tab crash

Perilaku Sheets pada penyebab 1 bisa dibilang lebih berbahaya. Tidak ada error yang ditampilkan berarti angka yang salah tampak benar.

Cara Mendiagnosis #SPILL! dalam 30 Detik

  1. Klik sel #SPILL!
  2. Klik ikon peringatan berbentuk berlian berwarna kuning di tepi sel
  3. Baca pesan sub-error - ini langsung merujuk ke salah satu dari 6 penyebab di atas
  4. Untuk penyebab 1, klik "Select Obstructing Cells" untuk langsung melompat ke sel yang menghalangi
  5. Sebelum menghapus apa pun, jalankan Formulas > Trace Dependents pada sel yang menghalangi

Penyebab 1 hingga 5 dapat diselesaikan dalam waktu kurang dari satu menit setelah Anda mengetahui sub-errornya. Penyebab 6 membutuhkan waktu lebih lama karena Anda perlu mengidentifikasi formula mana yang menjadi biang konsumsi memori berlebih.

Cara Menyusun Model Multi-Tab Agar #SPILL! Tidak Pernah Muncul

Memperbaiki #SPILL! secara reaktif menghabiskan waktu. Mencegahnya tidak membutuhkan biaya apa pun selain beberapa keputusan tata letak saat membangun model. Berikut tampilannya dalam praktik.

Sisakan buffer 500 baris di bawah setiap formula array dinamis. Jika FILTER Anda pada tab komparasi transaksi saat ini mengembalikan 85 baris, bisa saja mengembalikan 140 baris setelah refresh data berikutnya. Jarak 500 baris di bawah formula tidak merugikan apa pun - Excel mengabaikan baris kosong dalam pemindaian SUMIFS dan named range - dan mencegah spill yang berkembang dari menimpa secara diam-diam data apa pun yang ada di bawahnya.

Jangan pernah menempatkan output array dinamis bersebelahan dengan blok asumsi hardcoded. Tab Asumsi Anda adalah sumber kebenaran untuk WACC, tingkat pertumbuhan terminal, dan CAGR pendapatan. Hasil FILTER yang meluas satu kolom ke samping ke dalam blok tersebut akan menimpa WACC 8,3% Anda dengan nama perusahaan. Pisahkan dengan minimal satu kolom kosong, dan lebih baik lagi, letakkan output dinamis di tab tersendiri.

Gunakan tab Staging untuk semua pekerjaan array dinamis. Untuk LBO tiga laporan atau laporan triwulanan untuk dewan direksi, struktur tab berikut mencegah hampir setiap konflik spill:

  • Asumsi - input statis saja, tanpa array dinamis
  • P&L / BS / CF - berbasis formula, mereferensikan Asumsi; tanpa array dinamis
  • FCFF / Returns - output kalkulasi, tanpa array dinamis
  • Staging - semua formula FILTER, SORT, UNIQUE, dan SEQUENCE berada di sini
  • Data - impor atau paste mentah; tidak pernah berbasis formula

Tab Staging menyerap semua variabilitas spill. Jika FILTER pada transaksi komparasi mengembalikan 200 baris alih-alih 50, data tersebut spill dengan aman di Staging tanpa menyentuh satu sel pun dalam model tiga laporan keuangan. Tab model Anda mereferensikan output Staging melalui formula lookup statis, yang tidak peduli seberapa jauh array yang mendasarinya telah berkembang.

Referensikan output spill dengan operator #. Alih-alih men-hardcode =Staging!A2:A300 dalam formula hilir Anda, referensikan spill aktif sebagai =Staging!A2#. Referensi ini mengembang dan menyusut secara otomatis:

// Rentang hardcoded rusak ketika spill berkembang melampaui baris 300
=SUMIFS('P&L'!C:C, Staging!A2:A300, ">=" & Asumsi!$B$3)

// Referensi spill range beradaptasi secara otomatis
=SUMIFS('P&L'!C:C, Staging!A2#, ">=" & Asumsi!$B$3)

Ini juga menghilangkan kebiasaan pra-alokasi rentang "cukup besar untuk menampung output" - yang rusak secara diam-diam begitu dataset berkembang melampaui alokasi tersebut.

Gunakan @ untuk menekan spill saat Anda hanya membutuhkan satu nilai. Jika Anda menarik satu asumsi WACC dari tabel lookup dan tidak membutuhkan array, tambahkan awalan @ untuk memaksa output satu nilai: =@XLOOKUP(Returns!$B$4, Asumsi!$A:$A, Asumsi!$B:$B). Tidak ada spill, tidak ada konflik spill.

Bekukan output dinamis sebelum didistribusikan. Untuk DCF sindikasi bank atau laporan dewan direksi, lakukan paste-special (Values only) pada hasil FILTER atau SORT apa pun sebelum berbagi file. Versi Excel penerima yang lebih lama, koneksi data yang terputus, atau tab sumber yang diganti nama dapat mengubah array dinamis yang berfungsi menjadi #SPILL! begitu mereka membukanya. Nilai statis tidak memiliki dependensi.

Ketika #SPILL! Tidak Muncul tapi Angkanya Salah

Ada versi masalah yang lebih sulit dari ini. Formula tidak menampilkan #SPILL! - ia spill ke sel yang tampak kosong tapi sebenarnya tidak. Sel "kosong" yang berisi ="", artefak pemformatan, atau angka nol yang disembunyikan oleh pemformatan angka kustom akan menghalangi spill range pada beberapa build Excel tapi tidak pada yang lain, tergantung urutan kalkulasi ulang.

Model menghitung, tampak bersih, tapi baris pendapatan Rp 4,2 miliar di tab P&L menarik dari nilai yang ditumpangi dan telah menimpa asumsi periode sebelumnya. Angkanya salah dan tidak ada error yang bisa diklik.

ModelMonkey dapat mengidentifikasi sel mana dalam spill range yang mengandung konten tidak kosong yang tidak terlihat, sekaligus melacak formula hilir apa yang dipengaruhinya - berguna ketika Anda sudah 14 tab ke dalam sebuah model dan ada yang meleset Rp 2,3 miliar tapi tidak ada segitiga error yang terlihat.

FAQ: Error #SPILL! di Excel

Apa itu error #SPILL! di Excel?

Error #SPILL! muncul ketika formula array dinamis - seperti FILTER, UNIQUE, atau SORT - tidak dapat menuliskan seluruh hasilnya ke dalam lembar kerja karena ada sesuatu yang menghalangi sel-sel tujuan. Excel tidak akan menimpa konten yang sudah ada; sebagai gantinya, ia menampilkan #SPILL! dan berhenti.

Apa saja penyebab error #SPILL! di Excel?

Per Juni 2026, Microsoft mendokumentasikan 6 penyebab: (1) spill range tidak kosong, (2) output terlalu besar untuk grid Excel, (3) ukuran output tidak dapat ditentukan karena fungsi volatile, (4) formula array dinamis ditempatkan di dalam objek Tabel, (5) spill range mengandung sel yang di-merge, dan (6) output melebihi memori yang tersedia.

Bagaimana cara memperbaiki error #SPILL! di Excel dengan cepat?

Klik sel #SPILL!, lalu klik ikon berlian kuning untuk melihat pesan sub-error. Pesan tersebut langsung mengidentifikasi penyebabnya. Untuk penyebab paling umum - spill range tidak kosong - klik "Select Obstructing Cells" untuk menemukan sel yang menghalangi, periksa dependensinya dengan Trace Dependents, lalu hapus atau pindahkan konten yang menghalangi.

Apakah #SPILL! bisa terjadi di Google Sheets?

Tidak dalam bentuk yang sama. Google Sheets tidak menampilkan error #SPILL! - alih-alih, ia menimpa sel yang menghalangi secara diam-diam tanpa peringatan. Ini bisa lebih berbahaya karena tidak ada indikator visual bahwa data telah tertimpa.

Kenapa #SPILL! muncul di dalam Tabel Excel?

Tabel Excel (objek yang dibuat via Ctrl+T) tidak mendukung formula array dinamis. Ini adalah batasan desain yang didokumentasikan Microsoft: formula seperti FILTER, UNIQUE, dan SORT tidak dapat spill di dalam kolom Tabel. Solusinya adalah memindahkan formula tersebut ke rentang biasa di luar Tabel, atau mengonversi Tabel menjadi rentang terlebih dahulu.

Bagaimana cara mencegah #SPILL! di model keuangan multi-tab?

Gunakan tab Staging khusus untuk semua formula array dinamis, sisakan buffer 500 baris di bawah setiap formula FILTER atau SORT, dan referensikan output spill menggunakan operator # (misalnya Staging!A2#) alih-alih rentang hardcoded. Pisahkan blok asumsi statis dari area output dinamis dengan minimal satu kolom kosong.