Daftar Isi
Di artikel ini, Anda akan mempelajari cara menghapus karakter tertentu dari string teks dan menghapus karakter yang tidak diinginkan dari beberapa sel sekaligus.
Ketika mengimpor data ke Excel dari tempat lain, banyak sekali karakter khusus yang mungkin berpindah ke lembar kerja Anda. Yang lebih membuat frustrasi adalah bahwa beberapa karakter tidak terlihat, yang menghasilkan ruang putih ekstra sebelum, sesudah atau di dalam string teks. Tutorial ini memberikan solusi untuk semua masalah ini, sehingga Anda tidak perlu repot-repot memeriksa data sel demi sel dan membersihkan yang tidak diinginkan.karakter dengan tangan.
Hapus karakter khusus dari sel Excel
Untuk menghapus karakter tertentu dari sel, gantilah dengan string kosong dengan menggunakan fungsi SUBSTITUTE dalam bentuk yang paling sederhana:
SUBSTITUTE( sel , char , "")Contohnya, untuk menghilangkan tanda tanya dari A2, rumus dalam B2 adalah:
=SUBSTITUTE(A2, "?", "")
Untuk menghapus karakter yang tidak ada di keyboardmu, kamu bisa menyalin/menempelkannya ke rumus dari cell aslinya.
Contohnya, berikut ini, bagaimana Anda bisa menghilangkan tanda tanya terbalik:
=SUBSTITUTE(A2, "¿", "")
Tetapi jika karakter yang tidak diinginkan tidak terlihat atau tidak menyalin dengan benar, bagaimana Anda memasukkannya ke dalam rumus? Sederhananya, temukan nomor kodenya dengan menggunakan fungsi CODE.
Dalam kasus kami, karakter yang tidak diinginkan ("¿") muncul terakhir di sel A2, jadi kami menggunakan kombinasi fungsi CODE dan RIGHT untuk mengambil nilai kode uniknya, yaitu 191:
=CODE(KANAN(A2))
Setelah Anda mendapatkan kode karakter, sajikan fungsi CHAR yang sesuai dengan rumus umum di atas. Untuk dataset kami, rumusnya adalah sebagai berikut:
=SUBSTITUTE(A2, CHAR(191),"")
Catatan. Fungsi SUBSTITUTE adalah peka huruf besar-kecil , yang berarti memperlakukan huruf kecil dan huruf besar sebagai karakter yang berbeda. Harap diingat bahwa jika karakter yang tidak diinginkan adalah huruf.
Menghapus beberapa karakter dari string
Di salah satu artikel sebelumnya, kami melihat cara menghapus karakter tertentu dari string di Excel dengan menyarangkan beberapa fungsi SUBSTITUTE satu sama lain. Pendekatan yang sama dapat digunakan untuk menghilangkan dua atau lebih karakter yang tidak diinginkan sekaligus:
PENGGANTI(PENGGANTI(PENGGANTI( sel , char1 , ""), char2 , ""), char3 , "")Misalnya, untuk menghapus tanda seru dan tanda tanya normal serta yang terbalik dari string teks di A2, gunakan rumus ini:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Hal yang sama dapat dilakukan dengan bantuan fungsi CHAR, di mana 161 adalah kode karakter untuk "¡" dan 191 adalah kode karakter untuk "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Fungsi SUBSTITUTE bersarang berfungsi dengan baik untuk jumlah karakter yang wajar, tetapi jika Anda memiliki lusinan karakter yang harus dihapus, rumusnya menjadi terlalu panjang dan sulit dikelola. Contoh berikut menunjukkan solusi yang lebih ringkas dan elegan.
Hapus semua karakter yang tidak diinginkan sekaligus
Solusi ini hanya berfungsi di Excel untuk Microsoft 365
Seperti yang mungkin Anda ketahui, Excel 365 memiliki fungsi khusus yang memungkinkan Anda membuat fungsi Anda sendiri, termasuk fungsi yang menghitung secara rekursif. Fungsi baru ini diberi nama LAMBDA, dan Anda dapat menemukan detail lengkap tentangnya di tutorial yang ditautkan di atas. Di bawah ini, saya akan mengilustrasikan konsepnya dengan beberapa contoh praktis.
Fungsi LAMBDA khusus untuk menghapus karakter yang tidak diinginkan adalah sebagai berikut:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Untuk dapat menggunakan fungsi ini di lembar kerja Anda, Anda perlu menamainya terlebih dahulu. Untuk ini, tekan Ctrl + F3 untuk membuka fungsi Nama Manajer , dan kemudian mendefinisikan Nama Baru dengan cara ini:
- Dalam Nama kotak, masukkan nama fungsi: RemoveChars .
- Tetapkan cakupan ke Buku Kerja .
- Dalam Mengacu pada kotak, tempelkan rumus di atas.
- Secara opsional, masukkan deskripsi parameter di dalam Komentar Parameter akan ditampilkan saat Anda mengetikkan formula dalam sel.
- Klik OK untuk menyimpan fungsi baru Anda.
Untuk instruksi rinci, silakan lihat Bagaimana menamai fungsi LAMBDA kustom.
Setelah fungsi mendapatkan nama, Anda bisa merujuknya seperti rumus asli apa pun.
Dari sudut pandang pengguna, sintaksis fungsi kustom kita sesederhana ini:
HapusBintang(string, chars)Di mana:
- String - adalah string asli, atau referensi ke sel/range yang berisi string tersebut.
- Karakter - karakter yang akan dihapus. Dapat diwakili oleh string teks atau referensi sel.
Untuk kenyamanan, kita memasukkan karakter yang tidak diinginkan di beberapa sel, katakanlah D2. Untuk menghapus karakter tersebut dari A2, rumusnya adalah:
=HapusChars(A2, $D$2)
Agar formula berfungsi dengan benar, harap perhatikan hal-hal berikut ini:
- Dalam D2, karakter dicantumkan tanpa spasi, kecuali jika Anda ingin menghilangkan spasi juga.
- Alamat sel yang berisi karakter khusus dikunci dengan tanda $ ($ D $ 2) untuk mencegah referensi berubah saat menyalin rumus ke sel di bawah ini.
Dan kemudian, kita cukup menyeret rumus ke bawah dan semua karakter yang terdaftar di D2 dihapus dari sel A2 hingga A6:
Untuk membersihkan beberapa sel dengan satu rumus, berikan rentang A2: A6 untuk argumen pertama:
=HapusHuruf(A2:A6, D2)
Karena formula dimasukkan hanya di sel paling atas, Anda tidak perlu khawatir tentang mengunci koordinat sel - referensi relatif (D2) berfungsi dengan baik dalam kasus ini. Dan karena dukungan untuk larik dinamis, formula tumpah secara otomatis ke semua sel yang direferensikan:
Menghapus set karakter yang sudah ditentukan sebelumnya
Untuk menghapus sekumpulan karakter yang sudah ditentukan sebelumnya dari beberapa sel, Anda bisa membuat LAMBDA lain yang memanggil RemoveChars dan tentukan karakter yang tidak diinginkan dalam parameter ke-2. Sebagai contoh:
Untuk menghapus karakter khusus , kita telah membuat fungsi kustom bernama RemoveSpecialChars :
=LAMBDA(string, HapusChars(string, "?¿!¡*%#@^"))
Untuk hapus angka dari string teks, kami telah membuat satu fungsi lagi bernama RemoveNumbers :
=LAMBDA(string, HapusChars(string, "0123456789"))
Kedua fungsi di atas sangat mudah digunakan karena hanya membutuhkan satu argumen - string asli.
Untuk menghilangkan karakter khusus dari A2, rumusnya adalah:
=HapusChars Khusus(A2)
Hanya untuk menghapus karakter numerik:
=HapusAngka(A2)
Bagaimana fungsi ini bekerja:
Pada intinya, yang RemoveChars fungsi looping melalui daftar chars dan menghapus satu karakter pada satu waktu. Sebelum setiap pemanggilan rekursif, fungsi IF memeriksa karakter yang tersisa. Jika chars string tidak kosong (karakter ""), fungsi memanggil dirinya sendiri. Segera setelah karakter terakhir diproses, rumus mengembalikan string bentuknya yang sekarang dan keluar.
Untuk rincian rincian formula, silahkan lihat LAMBDA rekursif untuk menghapus karakter yang tidak diinginkan.
Hapus karakter khusus dengan VBA
Fungsi-fungsi ini berfungsi di semua versi Excel
Jika fungsi LAMBDA tidak tersedia di Excel Anda, tidak ada yang menghalangi Anda untuk membuat fungsi serupa dengan VBA. Fungsi yang ditentukan pengguna (UDF) dapat ditulis dalam dua cara.
Fungsi khusus untuk menghapus karakter khusus rekursif :
Kode ini mengemulasi logika fungsi LAMBDA yang dibahas di atas.
Fungsi RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End FunctionFungsi khusus untuk menghapus karakter khusus non-rekursif :
Di sini, kita berputar melalui karakter yang tidak diinginkan dari 1 hingga Len (chars) dan mengganti karakter yang ditemukan dalam string asli dengan tidak ada. Fungsi MID menarik karakter yang tidak diinginkan satu per satu dan meneruskannya ke fungsi Replace.
Fungsi RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End FunctionSisipkan salah satu kode di atas di buku kerja Anda seperti yang dijelaskan di Cara memasukkan kode VBA di Excel, dan fungsi kustom Anda siap digunakan.
Agar tidak membingungkan fungsi baru yang ditentukan pengguna dengan fungsi yang ditentukan Lambda, kami menamainya secara berbeda:
RemoveUnwantedChars(string, chars)Dengan mengasumsikan string asli berada di A2 dan karakter yang tidak disukai di D2, kita bisa menyingkirkannya menggunakan rumus ini:
= RemoveUnwantedChars(A2, $D$2)
Fungsi kustom dengan karakter yang dikodekan dengan keras
Jika Anda tidak ingin repot-repot menyediakan karakter khusus untuk setiap formula, Anda bisa menentukannya secara langsung dalam kode:
Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveSpecialChars = str End FunctionHarap diingat bahwa kode di atas adalah untuk tujuan demonstrasi. Untuk penggunaan praktis, pastikan untuk menyertakan semua karakter yang ingin Anda hapus di baris berikut:
chars = "?¿!¡*%#$(){}[]^&/\~~+-"
Fungsi kustom ini dinamai RemoveSpecialChars dan hanya membutuhkan satu argumen - string asli:
Hapus Karakter Khusus(string)Untuk menghilangkan karakter khusus dari dataset kita, rumusnya adalah:
=HapusChars Khusus(A2)
Hapus karakter yang tidak dapat dicetak di Excel
Microsoft Excel memiliki fungsi khusus untuk menghapus karakter yang tidak tercetak - fungsi CLEAN. Secara teknis, fungsi ini menghapus 32 karakter pertama dalam set ASCII 7-bit (kode 0 hingga 31).
Contohnya, untuk menghapus karakter yang tidak dapat dicetak dari A2, inilah rumus yang digunakan:
=CLEAN(A2)
Ini akan menghilangkan karakter non-cetak, tetapi spasi sebelum/sesudah teks dan di antara kata-kata akan tetap ada.
Untuk menyingkirkan ruang ekstra , bungkus rumus CLEAN dalam fungsi TRIM:
=TRIM(BERSIH(A2))
Sekarang, semua spasi di depan dan di belakang dihilangkan, sementara spasi di antara spasi dikurangi menjadi satu karakter spasi:
Jika Anda ingin menghapus secara mutlak semua ruang di dalam string, kemudian juga mengganti karakter spasi (kode angka 32) dengan string kosong:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Beberapa spasi atau karakter tak terlihat lainnya masih tetap ada di lembar kerja Anda? Itu berarti karakter-karakter tersebut memiliki nilai yang berbeda dalam set karakter Unicode.
Contohnya, kode karakter dari ruang yang tidak putus ( ) adalah 160 dan Anda bisa membersihkannya dengan menggunakan rumus ini:
=SUBSTITUTE(A2, CHAR(160)," ")
Untuk menghapus karakter non-cetak tertentu Petunjuk rinci dan contoh rumusnya ada di sini: Cara menghapus karakter non-cetak tertentu.
Hapus karakter khusus dengan Ultimate Suite
Mendukung Excel untuk Microsoft 365, Excel 2019 - 2010
Dalam contoh terakhir ini, izinkan saya menunjukkan kepada Anda cara termudah untuk menghapus karakter khusus di Excel. Dengan Ultimate Suite terinstal, inilah yang perlu Anda lakukan:
- Pada Data Ablebits tab, di tab Teks kelompok, klik Hapus > Hapus Karakter .
Dalam sekejap, Anda akan mendapatkan hasil yang sempurna:
Jika terjadi kesalahan, jangan khawatir - salinan cadangan lembar kerja Anda akan dibuat secara otomatis sebagai Cadangkan lembar kerja ini dipilih secara default.
Penasaran untuk mencoba alat Hapus kami? Tautan ke versi evaluasi ada di bawah ini. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!
Unduhan yang tersedia
Hapus karakter khusus - contoh (file .xlsm)
Ultimate Suite - versi percobaan (file .exe)