#SPILL! berarti sebuah rumus mengembalikan beberapa nilai (sebuah daftar atau tabel) dan Excel tidak punya tempat untuk menuliskannya: setidaknya satu sel di rentang yang dibutuhkan hasil itu tidak kosong. =UNIQUE(A2:A6) di bawah butuh tiga sel, C2 sampai C4, dan C4 berisi x. Hapus isi C4, maka daftarnya muncul.
| A | B | C | |
|---|---|---|---|
| 1 | Product | Unique list | |
| 2 | Apple | #SPILL! | |
| 3 | Pear | ||
| 4 | Apple | x | |
| 5 | Plum | ||
| 6 | Pear |
#SPILL! Hasilnya butuh lebih banyak sel daripada yang kosong. Kosongkan sel yang menghalanginya.Klik C2: catatan di bawah kisi menjelaskan masalahnya. Lalu klik C4 dan tekan Delete. Ketiga produk spill ke C2:C4, dan sebuah garis tepi menandai rentang spill-nya. Ketik sesuatu di C3, maka errornya muncul lagi. Excel bekerja dengan cara yang sama: fungsi yang mengembalikan array, seperti FILTER, UNIQUE, SORT, SEQUENCE dan TEXTSPLIT, hanya berfungsi kalau seluruh rentang spill-nya kosong. Fungsi-fungsi ini butuh Excel 2021 atau versi lebih baru (TEXTSPLIT: Microsoft 365 atau Excel 2024); versi lama menampilkan #NAME? untuk fungsi-fungsi itu, jadi #SPILL! tidak pernah muncul di sana (lihat UNIQUE untuk fungsinya sendiri).
Cara mengatasi error #SPILL!
- Klik sel yang berisi
#SPILL!. Di Excel, garis tepi putus-putus menunjukkan rentang yang ingin diisi hasilnya. - Klik ikon peringatan di sebelah sel lalu pilih Select Obstructing Cells. Excel memilih setiap sel yang menghalangi.
- Tekan Delete, atau pindahkan sel-sel itu ke tempat lain (cut lalu paste).
Kalau sel yang menghalangi berisi data yang kamu butuhkan, pindahkan rumusnya: taruh di kolom atau baris yang semua sel di bawah dan di sebelahnya kosong.
#SPILL! padahal selnya terlihat kosong
Kasus yang paling membingungkan: rentang spill-nya terlihat kosong, tapi Excel tetap menampilkan #SPILL!. Sel yang berisi satu spasi, atau rumus yang mengembalikan string kosong "", tidak kosong, dan menghalangi spill sama seperti sebuah nilai.
| A | B | C | |
|---|---|---|---|
| 1 | Numbers | Numbers | |
| 2 | #SPILL! | #SPILL! | |
| 3 | |||
| 4 |
#SPILL! Hasilnya butuh lebih banyak sel daripada yang kosong. Kosongkan sel yang menghalanginya.A2 butuh A2:A4, dan A4 berisi spasi. C2 butuh C2:C3, dan C3 berisi ="". Klik A4 atau C3 untuk melihat isinya, hapus, maka angkanya spill. Di Excel, Select Obstructing Cells menemukan sel-sel ini bahkan ketika tidak ada yang terlihat di dalamnya. Teks putih di atas latar putih juga tersembunyi dengan cara yang sama.
#SPILL! ketika satu rumus spill ke rumus lain
Dua rumus yang spill bisa saling menghalangi, atau rumus yang diketik seseorang di bawahnya bisa berada di dalam rentang spill rumus di atasnya.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Dept | IT | Sales | |
| 2 | Ana | IT | #SPILL! | Ben | |
| 3 | Ben | Sales | Dee | ||
| 4 | Cy | IT | 5 | ||
| 5 | Dee | Sales | |||
| 6 | Eve | IT |
#SPILL! Hasilnya butuh lebih banyak sel daripada yang kosong. Kosongkan sel yang menghalanginya.Daftar IT butuh tiga sel, D2:D4, dan D4 berisi rumus COUNTA. Daftar Sales di E2 punya dua sel yang dibutuhkannya, jadi berfungsi. Pindahkan rumus COUNTA ke D6 (atau sel mana pun di bawah daftar), maka nama-nama IT spill. Sisakan ruang agar daftar bisa bertambah: kalau nanti ada karyawan IT keempat, hasilnya butuh satu sel lagi.
#SPILL! dengan VLOOKUP dan satu kolom penuh
Penyebab umum di rumus yang ditulis untuk Excel versi lama adalah nilai yang dicari berupa satu kolom penuh:
=VLOOKUP(A:A,Prices!A:B,2,FALSE) #SPILL! (one result for every row of the sheet)
=VLOOKUP(A2,Prices!A:B,2,FALSE) one result, fill it down
=VLOOKUP(A2:A100,Prices!A:B,2,FALSE) 100 results that spill
=VLOOKUP(@A:A,Prices!A:B,2,FALSE) one result, the value on the formula's own row
A:A berisi 1.048.576 sel, jadi rumus pertama meminta 1.048.576 hasil, dan mulai dari baris 2 ke bawah barisnya tidak cukup: menu peringatannya mengatakan rentang spill melewati tepi worksheet. Pola ini berasal dari Excel versi lama, yang diam-diam hanya memakai nilai di baris rumus itu sendiri. Excel 365 mempertahankan perilaku itu di workbook lama dengan menampilkan rumusnya sebagai =VLOOKUP(@A:A,...), tapi rumus yang sama yang diketik baru akan spill satu kolom penuh. Hal yang sama terjadi pada =A:A*2 dan rumus lain yang menghitung satu kolom penuh. Pakai satu sel lalu salin ke bawah, rentang dengan ukuran sebenarnya, atau @. Penjelasan tentang lookup-nya sendiri ada di halaman VLOOKUP.
Satu hasil per baris, bukan spill
Rumus yang menghitung sebuah rentang juga akan spill. Sering kali itulah yang kamu inginkan, tapi kadang kamu ingin satu rumus per baris.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Month | Sales | Spilled +10% | Filled +10% |
| 2 | Jan | 100 | 110 | 110 |
| 3 | Feb | 120 | 132 | 132 |
| 4 | Mar | 90 | 99 | 99 |
| 5 | Apr | 140 | 154 | 154 |
Kedua kolom menampilkan 110, 132, 99 dan 154. C2 berisi satu rumus, dan C3:C5 adalah hasil spill-nya: klik C3, maka catatan di bawah kisi mengatakan sel itu hasil spill dari C2. Ketik sesuatu di C4, maka C2 berubah menjadi #SPILL!. D2:D5 adalah empat rumus terpisah, jadi setiap sel bisa diubah sendiri-sendiri dan tidak ada yang bisa menghalanginya. Pakai bentuk kedua kalau orang akan mengetik di atas hasil satu per satu.
#SPILL! di tabel, dengan sel gabungan, atau dengan ukuran yang tidak diketahui
Penyebab-penyebab ini tergantung pada workbook-nya, bukan pada rumusnya:
- Di dalam tabel Excel (Insert > Table): tabel tidak mendukung hasil spill, jadi FILTER atau UNIQUE di kolom tabel menampilkan
#SPILL!. Taruh rumusnya di luar tabel, atau pilih tabelnya lalu pilih Table Design > Convert to Range. - Sel gabungan di rentang spill: pilih sel-sel itu lalu pilih Home > Merge & Center > Unmerge Cells, atau pindahkan rumusnya.
- Spill range is unknown: ukuran hasilnya berubah setiap kali dihitung ulang, seperti
=SEQUENCE(RANDBETWEEN(1,10)). Excel menolak menampilkan hasil spill yang ukurannya volatile. Berikan ukuran yang tetap. - Spill range is too big atau extends beyond the worksheet's edge: hasilnya akan melewati baris atau kolom terakhir. Out of memory: array-nya terlalu besar untuk dihitung. Untuk ketiganya, perkecil rentangnya, biasanya dari kolom penuh menjadi data yang sebenarnya.
Kembalikan satu nilai supaya tidak ada yang bisa menghalangi
Kalau kamu hanya butuh satu angka dari sebuah daftar, misalnya berapa banyak produk yang berbeda, bungkus fungsi yang spill dengan fungsi yang mengembalikan satu nilai. Satu nilai tidak pernah spill, jadi tidak ada sel yang bisa menghalanginya.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | Different products | |||
| 2 | Apple | ||||
| 3 | Pear | ||||
| 4 | Apple | x | |||
| 5 | Plum | ||||
| 6 | Pear | ||||
| 7 | Apple |
Giliranmu: E2 seharusnya menyebutkan berapa banyak produk berbeda di A2:A7. =UNIQUE(A2:A7) biasa akan spill ke x di E4. Tulis satu rumus di E2 yang mengembalikan jumlahnya.
COUNTA menghitung nilai yang dikembalikan UNIQUE dan memberi satu angka. Ide yang sama berlaku untuk =INDEX(SORT(A2:A7),1) untuk nilai pertama dari daftar terurut, =INDEX(FILTER(...),1) untuk hasil pertama yang cocok, atau =SUM(FILTER(...)) untuk sebuah total.
Pertanyaan yang sering diajukan
Apa arti #SPILL! di Excel?
Sebuah rumus mengembalikan lebih dari satu nilai (dynamic array) dan Excel tidak bisa menuliskannya ke sel di bawah atau di sebelahnya, karena setidaknya satu sel itu tidak kosong, digabung (merge), atau berada di dalam tabel. Kosongkan atau pindahkan yang menghalangi, maka hasilnya muncul.
Kenapa muncul #SPILL! padahal selnya terlihat kosong?
Sel yang terlihat kosong bisa saja berisi spasi, rumus yang mengembalikan "", atau teks berwarna putih. Semuanya menghalangi spill. Klik ikon peringatan di sebelah error itu lalu pilih Select Obstructing Cells, kemudian tekan Delete.
Bagaimana cara mengatasi #SPILL! pada VLOOKUP?
Nilai yang dicari berupa satu kolom penuh atau sebuah rentang, seperti =VLOOKUP(A:A,D:E,2,FALSE), jadi Excel mencoba mengembalikan satu hasil untuk setiap baris sheet. Pakai satu sel lalu salin ke bawah, =VLOOKUP(A2,D:E,2,FALSE), atau rentang dengan ukuran sebenarnya, =VLOOKUP(A2:A100,D:E,2,FALSE).
Bagaimana cara mencegah rumus spill di Excel?
Buat rumusnya mengembalikan satu nilai. Taruh @ di depan rentang untuk mengambil nilai di baris rumus itu saja (=@A2:A10*2), atau bungkus hasilnya dengan fungsi yang mengembalikan satu nilai, seperti =COUNTA(UNIQUE(A2:A10)) atau =INDEX(SORT(A2:A10),1).
Apakah rumus yang spill bisa ditaruh di dalam tabel Excel?
Tidak. Rumus yang spill menampilkan #SPILL! di dalam tabel. Taruh di sel di luar tabel, atau ubah tabelnya menjadi rentang biasa dengan Table Design > Convert to Range.