Manajemen Data

Google Sheets Data Cleaning: 5 Masalah & Solusinya

Marc Sean18 April 202610 menit baca

Masalah kebersihan data di Google Sheets hampir selalu bisa dikelompokkan ke dalam lima kategori: spasi tersembunyi, angka yang tersimpan sebagai teks, baris duplikat, kapitalisasi tidak konsisten, dan karakter khusus yang ikut terbawa. Fungsi bawaan Google Sheets hanya mampu menangani sekitar 20% dari masalah-masalah ini secara langsung - sisanya membutuhkan kombinasi formula, kolom bantu, atau scripting. Dan kalau Anda bekerja dengan model multi-tab, satu sel berformat teks di tab pertama bisa membuat angka valuasi di tab kelima menjadi tidak valid - tanpa satu pun pesan error yang memberi peringatan.

Kajian IBM tentang dampak kualitas data (2022) memperkirakan data yang tidak bersih menyebabkan kerugian triliunan dolar setiap tahunnya di tingkat global. Di tingkat spreadsheet, kerugian itu hampir selalu bisa ditelusuri ke lima kategori yang sama. Riset Gartner tentang biaya kualitas data buruk (2021) menyebut rata-rata biaya yang ditanggung sebuah organisasi mencapai $12,9 juta per tahun. Sementara itu, laporan Harvard Business Review tentang produktivitas analis data (2020) melaporkan bahwa analis keuangan dan operasional menghabiskan 60-80% waktunya untuk mempersiapkan data, bukan menganalisisnya. Sebagian besar pekerjaan itu bersifat manual, berulang, dan sebenarnya bisa diselesaikan dengan kombinasi formula yang tepat.

Apa yang Bisa - dan Tidak Bisa - Dibersihkan Secara Otomatis

Google menambahkan menu Data Cleanup pada tahun 2022, yang bisa diakses melalui Data → Data cleanup. Menu ini menangani pemangkasan spasi dan penghapusan duplikat dengan satu klik - berguna untuk perbaikan cepat. Namun menu ini tidak bisa memperbaiki angka yang tersimpan sebagai teks, menyeragamkan kapitalisasi, menghapus karakter tak tercetak, atau menangani tipe data campuran. Untuk itu, Anda butuh formula.

MasalahBisa Lewat MenuButuh Formula
Spasi di awal/akhirYa (Trim whitespace)TRIM()
Baris duplikatYa (Remove duplicates)UNIQUE()
Angka sebagai teksTidakVALUE(), --, paste-as-values
Kapitalisasi tidak konsistenTidakPROPER(), UPPER(), LOWER()
Karakter tak tercetakTidakCLEAN()
Format tanggal campur adukTidakDATEVALUE() + parsing manual

Per April 2026, dokumentasi resmi Google Sheets mengonfirmasi bahwa menu Data Cleanup diperkenalkan pada 2022 bersamaan dengan fungsi MAP - namun keduanya tidak secara otomatis menangani masalah konversi tipe data atau enkoding karakter.

Cara Membersihkan Spasi Tersembunyi di Google Sheets

Ini masalah pembersihan data yang paling sering terjadi, sekaligus paling mudah luput dari perhatian. Sel yang berisi " Pendapatan " tidak akan cocok dengan "Pendapatan" dalam VLOOKUP, SUMIF, atau filter pivot table. Riset Gartner tentang kualitas data secara konsisten menempatkan spasi dan kesalahan enkoding sebagai penyebab utama gagalnya fungsi lookup pada model spreadsheet.

TRIM() menghapus spasi di awal, akhir, dan spasi ganda di tengah kata:

=TRIM(A2)

Untuk menerapkannya ke seluruh kolom sekaligus, bungkus dengan ARRAYFORMULA:

=ARRAYFORMULA(TRIM(A2:A500))

Perlu diperhatikan: TRIM hanya menangani spasi standar (karakter 32). Fungsi ini tidak menangkap non-breaking space (karakter 160) yang kerap terbawa saat data disalin dari halaman web. Untuk kasus tersebut, kombinasikan SUBSTITUTE dengan TRIM:

=TRIM(SUBSTITUTE(A2, CHAR(160), " "))

Cara Memperbaiki Angka yang Tersimpan sebagai Teks di Google Sheets

Masalah ini merusak model keuangan secara diam-diam. Kolom angka pendapatan yang diimpor dari CRM atau diekspor dari database - termasuk SAP dan sistem ERP sejenis - sering kali tiba dalam format teks: sel rata kiri, SUM menghasilkan 0, dan tidak ada pesan error yang memberi peringatan. Dalam model P&L multi-tab di mana tab "Pendapatan" mengisi tab "Proyeksi FCFF" dan "Analisis Imbal Hasil", satu kolom angka berformat teks bisa menggelembungkan seluruh valuasi secara keliru - dan kesalahannya baru terdeteksi saat angka di slide deck tidak cocok dengan spreadsheet.

Cara tercepat adalah memaksa konversi dengan tanda negatif ganda:

=--A2

Atau gunakan VALUE() secara eksplisit:

=VALUE(A2)

Untuk memeriksa apakah sebuah sel diam-diam tersimpan sebagai teks, gunakan:

=ISNUMBER(A2)

Jika hasilnya FALSE padahal sel terlihat seperti angka, berarti ada masalah tipe data. Untuk string mata uang seperti "Rp 1.250.000", hapus dahulu simbol dan pemisah ribuan sebelum mengonversi:

=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"Rp",""),".","")," ",""))

Menghapus Baris Duplikat

UNIQUE() mengembalikan array yang sudah dideduplikasi - bersih dan tidak merusak data sumber karena hasilnya ditulis ke rentang baru:

=UNIQUE(A2:D500)

Menu Data → Data cleanup → Remove duplicates melakukan perubahan langsung pada data dan meminta Anda memilih kolom mana yang mendefinisikan keunikan baris. Untuk model di mana identitas baris ditentukan oleh kunci komposit - misalnya ID klien + tanggal transaksi - opsi menu ini lebih mudah dikonfigurasi dibandingkan logika formula.

Untuk deduplikasi bersyarat - misalnya menyimpan catatan terbaru per klien - gunakan kombinasi SORT dan UNIQUE:

=UNIQUE(SORT(A2:D500, 3, FALSE))

Formula ini mengurutkan berdasarkan kolom ke-3 secara menurun (terbaru di atas), lalu mendeduplikasi - secara efektif menyimpan catatan paling mutakhir untuk setiap baris unik.

Menyeragamkan Kapitalisasi yang Tidak Konsisten

"jakarta", "Jakarta", "JAKARTA" - tiga nilai yang maknanya sama tetapi tidak akan terkelompok dengan benar di pivot table. Seragamkan dengan PROPER(), UPPER(), atau LOWER() sesuai format yang diinginkan:

=PROPER(A2)   → "Jakarta"
=UPPER(A2)    → "JAKARTA"
=LOWER(A2)    → "jakarta"

PROPER() mengkapitalkan huruf pertama setiap kata. Yang perlu diwaspadai: fungsi ini juga mengaplikasikan aturan yang sama setelah tanda hubung dan apostrof. Untuk nama merek atau nama orang dengan aturan kapitalisasi khusus, lebih aman membangun tabel referensi pengecualian tersendiri.

Menghapus Karakter Khusus dan Karakter Tak Tercetak

CLEAN() menghapus karakter tak tercetak (kode ASCII 0-31). Ini paling penting untuk data yang diekspor dari sistem lama, konversi PDF ke spreadsheet, atau data yang melewati API di mana enkodingnya ikut rusak dalam prosesnya.

=CLEAN(A2)

Kombinasikan dengan TRIM untuk pembersihan satu langkah:

=TRIM(CLEAN(A2))

Dokumentasi Google Sheets API mencatat bahwa data yang diimpor sering kali masih mengandung karakter line feed (CHAR(10)) yang dihapus oleh CLEAN - ini adalah setara formula dari apa yang seharusnya ditangani di hulu oleh alat konversi PDF, namun sering tidak.

Teknik Lanjutan Google Sheets Data Cleaning: Merangkai Formula

Data impor di dunia nyata jarang hanya memiliki satu masalah. Daftar kontak dari CRM bisa sekaligus mengandung spasi tersembunyi, kapitalisasi campur aduk, dan karakter tak tercetak. Rangkai fungsi-fungsinya:

=PROPER(TRIM(CLEAN(A2)))

Untuk angka yang mengandung simbol mata uang dan spasi:

=VALUE(TRIM(SUBSTITUTE(SUBSTITUTE(CLEAN(A2),"Rp",""),".","")," ",""))

Formula ini menangani keseluruhan permasalahan: hapus karakter tak tercetak, hilangkan simbol, hilangkan pemisah ribuan, pangkas spasi, lalu konversi ke angka. Terlihat rumit, tapi hasilnya akurat.

Untuk membersihkan seluruh kolom berisi 500 baris atau lebih, fungsi MAP dari Google (dirilis tahun 2022 bersamaan dengan LAMBDA) memungkinkan Anda menerapkan formula apa pun ke seluruh rentang tanpa keterbatasan ARRAYFORMULA:

=MAP(A2:A500, LAMBDA(cell, PROPER(TRIM(CLEAN(cell)))))

Pendekatan ini lebih rapi dibandingkan ARRAYFORMULA untuk lambda yang kompleks, karena setiap sel diproses secara independen tanpa batasan pencocokan baris yang kerap membuat ARRAYFORMULA gagal ketika berurusan dengan fungsi multi-argumen.

Audit Tipe Data Lintas Tab Sebelum Model Dikirim

Ini yang tidak dibahas di sebagian besar panduan Google Sheets data cleaning - dan justru inilah yang paling kritis sebelum Anda mengirim model ke atasan atau investor.

Masalahnya: kalau tab "Pendapatan" mengandung satu kolom angka berformat teks, error-nya tidak akan muncul di sana. Error baru terlihat di tab "Proyeksi FCFF" sebagai #VALUE!, atau lebih buruk lagi, sebagai angka yang tampak masuk akal tapi salah secara diam-diam. Saat itu, Anda sudah kehilangan jejak penyebabnya.

Formula audit tipe data per tab

Logika dasarnya sederhana: COUNT() hanya menghitung sel numerik, sementara COUNTA() menghitung semua sel tidak kosong. Selisihnya adalah jumlah sel yang seharusnya angka tapi tersimpan sebagai teks:

=COUNTA('Tab Pendapatan'!B2:B100) - COUNT('Tab Pendapatan'!B2:B100)

Jika hasilnya lebih dari 0, ada masalah tipe data di kolom tersebut. Buat tab "Audit" khusus dan susun tabelnya seperti ini:

TabKolom yang DiauditJumlah BarisSel Teks (Seharusnya Angka)Status
Tab PendapatanB (Revenue)=COUNTA(...)=COUNTA(...)-COUNT(...)=IF(D2>0,"⚠ Cek","✓")
Tab FCFFC (EBIT)=COUNTA(...)=COUNTA(...)-COUNT(...)=IF(D3>0,"⚠ Cek","✓")
Tab Imbal HasilD (Valuasi)=COUNTA(...)=COUNTA(...)-COUNT(...)=IF(D4>0,"⚠ Cek","✓")

Dengan tab audit ini, Anda bisa menjalankan spot-check dalam 30 detik sebelum model dikirim - tanpa perlu membuka satu per satu tab dan memeriksa sel secara manual.

Menemukan sel bermasalah secara spesifik

Kalau audit menemukan ada masalah, langkah berikutnya adalah menemukan sel mana tepatnya. Gunakan formula ini di tab yang bermasalah, di kolom bantu sementara:

=ARRAYFORMULA(IF(ISTEXT(B2:B100), "TEKS: "&B2:B100, ""))

Formula ini akan menandai setiap sel yang isinya teks di kolom B, sehingga Anda bisa langsung menuju baris yang bermasalah tanpa harus scroll ratusan baris.

Sebelum mengirim model: checklist tiga menit

  1. Buka tab "Audit" - semua kolom numerik kritis harus menunjukkan status ✓
  2. Periksa apakah semua sel referensi lintas tab (='Tab Pendapatan'!B5) menghasilkan ISNUMBER() = TRUE
  3. Jalankan =COUNTA(range) - COUNT(range) pada kolom input utama di setiap tab

Kalau ketiga langkah ini bersih, model siap dikirim.

Ketika Formula Tidak Lagi Cukup

Ada masalah pembersihan data yang tidak bisa diselesaikan dengan formula: nomor telepon dalam 12 format berbeda, alamat yang perlu distandarisasi sebelum bisa dianalisis, atau log transaksi berisi 50.000 baris di mana Anda perlu mengklasifikasikan deskripsi ke dalam kategori pengeluaran.

Untuk skenario seperti ini, ModelMonkey dapat menangani pekerjaan klasifikasi dan transformasi secara percakapan - cukup deskripsikan logika pembersihan dalam bahasa sehari-hari ("seragamkan semua nomor telepon ke format E.164" atau "tandai baris yang tanggalnya di luar Q1 2026"), dan ModelMonkey akan menulis formulanya atau menjalankan transformasi langsung di spreadsheet Anda.

FAQ: Google Sheets Data Cleaning

Kenapa SUM saya menghasilkan 0 padahal sel berisi angka?

Ini hampir pasti karena angka tersimpan sebagai teks. Tanda visualnya: sel rata kiri, bukan rata kanan. Verifikasi dengan =ISNUMBER(A2) - jika hasilnya FALSE, gunakan =VALUE(A2) atau =--A2 untuk mengonversi. Untuk kolom penuh, gunakan =ARRAYFORMULA(VALUE(A2:A100)) di kolom bantu.

Apakah TRIM() menangani non-breaking space yang terbawa dari halaman web?

Tidak. TRIM() hanya menghapus karakter spasi standar (ASCII 32). Non-breaking space adalah karakter 160, dan harus dihapus secara eksplisit: =TRIM(SUBSTITUTE(A2, CHAR(160), " ")).

Apa bedanya CLEAN() dan TRIM()?

CLEAN() menghapus karakter tak tercetak (ASCII 0-31), termasuk line feed dan karakter kontrol yang sering terbawa dari ekspor sistem lama atau konversi PDF. TRIM() hanya menangani spasi. Untuk data impor yang kotor, kombinasikan keduanya: =TRIM(CLEAN(A2)).

Bagaimana cara mendeteksi apakah ada masalah tipe data di seluruh workbook tanpa membuka satu per satu tab?

Buat tab "Audit" dan gunakan formula =COUNTA('NamaTab'!A2:A100) - COUNT('NamaTab'!A2:A100) untuk setiap kolom numerik kritis di setiap tab. Hasil lebih dari 0 berarti ada sel teks di kolom yang seharusnya berisi angka. Lihat bagian "Audit Tipe Data Lintas Tab" di atas untuk template tabel lengkapnya.

Kapan sebaiknya menggunakan MAP+LAMBDA dibanding ARRAYFORMULA?

Gunakan ARRAYFORMULA untuk formula sederhana satu fungsi seperti =ARRAYFORMULA(TRIM(A2:A500)). Beralih ke MAP + LAMBDA ketika formula melibatkan beberapa fungsi bersarang atau kondisi per sel - ARRAYFORMULA sering gagal dalam situasi tersebut, sementara MAP memproses setiap sel secara independen.

Rangkuman

Google Sheets menyediakan alat bawaan untuk memangkas spasi dan menghapus duplikat. Selebihnya - konversi tipe data, penyeragaman kapitalisasi, penghapusan karakter khusus - membutuhkan kombinasi formula. Rangkai CLEAN, TRIM, PROPER, dan VALUE untuk data yang memiliki banyak masalah sekaligus. Gunakan MAP bersama LAMBDA untuk pemrosesan array yang bersih pada rentang besar. Dan sebelum model dikirim ke investor atau atasan, jalankan audit COUNTA - COUNT pada setiap kolom numerik kritis lintas tab - tiga menit yang bisa menghindarkan Anda dari pertanyaan memalukan saat presentasi.