Isi kandungan
Dalam artikel ini, anda akan belajar cara memadam aksara tertentu daripada rentetan teks dan mengalih keluar aksara yang tidak diingini daripada berbilang sel serentak.
Apabila mengimport data ke Excel dari tempat lain, banyak watak istimewa boleh pergi ke lembaran kerja anda. Apa yang lebih mengecewakan ialah sesetengah aksara tidak kelihatan, yang menghasilkan ruang putih tambahan sebelum, selepas atau dalam rentetan teks. Tutorial ini menyediakan penyelesaian untuk semua masalah ini, menyelamatkan anda daripada masalah perlu melalui sel demi sel data dan membersihkan aksara yang tidak diingini dengan tangan.
Alih keluar aksara khas daripada sel Excel
Untuk memadam aksara tertentu daripada sel, gantikannya dengan rentetan kosong dengan menggunakan fungsi SUBSTITUTE dalam bentuk termudahnya:
SUBSTITUTE( cell, char, "")Sebagai contoh, untuk menghapuskan tanda soal daripada A2, formula dalam B2 ialah:
=SUBSTITUTE(A2, "?", "")
Untuk mengalih keluar aksara yang tidak terdapat pada papan kekunci anda, anda boleh menyalin/menampalnya ke formula daripada sel asal.
Sebagai contoh, berikut ialah cara anda boleh menghilangkan tanda soal terbalik:
=SUBSTITUTE(A2, "¿", "")
Tetapi jika aksara yang tidak diingini tidak kelihatan atau tidak menyalin dengan betul, bagaimana anda meletakkannya dalam formula? Cuma, cari nombor kodnya dengan menggunakan fungsi KOD.
Dalam kes kami, aksara yang tidak diingini ("¿") datang terakhir dalam sel A2, jadi kami menggunakan gabunganKOD dan RIGHT berfungsi untuk mendapatkan semula nilai kod uniknya, iaitu 191:
=CODE(RIGHT(A2))
Setelah anda mendapat kod aksara, layan CHAR yang sepadan fungsi kepada formula generik di atas. Untuk set data kami, formulanya adalah seperti berikut:
=SUBSTITUTE(A2, CHAR(191),"")
Nota. Fungsi SUBSTITUTE ialah sensitif huruf kecil , bermakna ia menganggap huruf kecil dan huruf besar sebagai aksara yang berbeza. Sila ingat perkara itu jika watak anda yang tidak diingini ialah surat.
Padamkan berbilang aksara daripada rentetan
Dalam salah satu artikel sebelumnya, kami melihat cara mengalih keluar aksara tertentu daripada rentetan dalam Excel dengan menyarangkan beberapa fungsi SUBSTITUTE satu sama lain. Pendekatan yang sama boleh digunakan untuk menghapuskan dua atau lebih aksara yang tidak diingini sekali gus:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Sebagai contoh, untuk menghapuskan tanda seru dan tanda soal biasa serta yang terbalik daripada rentetan teks dalam A2, gunakan formula ini:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Perkara yang sama boleh dilakukan dengan bantuan fungsi CHAR, di mana 161 ialah kod aksara untuk "¡" dan 191 ialah kod aksara untuk "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Fungsi SUBSTITUTE Bersarang berfungsi dengan baik untuk bilangan aksara yang munasabah, tetapi jika anda mempunyai berpuluh-puluh aksara untuk dialih keluar, formula menjadi terlalu panjang dan sukar untuk diurus. Contoh seterusnya menunjukkan apenyelesaian yang lebih padat dan elegan.
Alih keluar semua aksara yang tidak diingini sekaligus
Penyelesaian hanya berfungsi dalam Excel untuk Microsoft 365
Seperti yang anda mungkin tahu, Excel 365 mempunyai fungsi khas yang membolehkan anda mencipta fungsi anda sendiri, termasuk fungsi yang mengira secara rekursif. Fungsi baharu ini dinamakan LAMBDA, dan anda boleh mendapatkan butiran penuh tentangnya dalam tutorial yang dipautkan di atas. Di bawah, saya akan menggambarkan konsep dengan beberapa contoh praktikal.
Fungsi LAMBDA tersuai untuk mengalih keluar aksara yang tidak diingini adalah seperti berikut:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Untuk dapat menggunakan fungsi ini dalam lembaran kerja anda, anda perlu menamakannya dahulu. Untuk ini, tekan Ctrl + F3 untuk membuka Pengurus Nama , dan kemudian tentukan Nama Baharu dengan cara ini:
- Dalam Nama kotak, masukkan nama fungsi: RemoveChars .
- Tetapkan skop kepada Buku Kerja .
- Dalam Merujuk kepada kotak, tampal formula di atas.
- Sebagai pilihan, masukkan perihalan parameter dalam kotak Ulasan . Parameter akan dipaparkan apabila anda menaip formula dalam sel.
- Klik OK untuk menyimpan fungsi baharu anda.
Untuk mendapatkan arahan terperinci, sila lihat Cara menamakan fungsi LAMBDA tersuai.
Setelah fungsi mendapat nama, anda boleh merujuknya seperti mana-mana formula asli.
Dari sudut pandangan pengguna , sintaks fungsi tersuai kami adalah semudahini:
RemoveChars(string, chars)Di mana:
- String - ialah rentetan asal, atau rujukan kepada sel/julat yang mengandungi rentetan( s).
- Aksara - aksara untuk dipadamkan. Boleh diwakili oleh rentetan teks atau rujukan sel.
Untuk kemudahan, kami memasukkan aksara yang tidak diingini dalam beberapa sel, katakan D2. Untuk mengalih keluar aksara tersebut daripada A2, formulanya ialah:
=RemoveChars(A2, $D$2)
Agar formula berfungsi dengan betul, sila ambil perhatian perkara berikut:
- Dalam D2 , aksara disenaraikan tanpa ruang, melainkan anda ingin menghapuskan ruang juga.
- Alamat sel yang mengandungi aksara khas dikunci dengan tanda $ ($D$2) untuk mengelakkan rujukan daripada berubah apabila mengatasi formula ke sel di bawah.
Dan kemudian, kami hanya seret formula ke bawah dan minta semua aksara yang disenaraikan dalam D2 dipadamkan daripada sel A2 hingga A6:
Untuk membersihkan berbilang sel dengan formula tunggal, bekalkan julat A2:A6 untuk hujah pertama:
=RemoveChars(A2:A6, D2)
Memandangkan formula dimasukkan hanya dalam sel paling atas, anda tidak perlu risau tentang mengunci koordinat sel - rujukan relatif (D2) berfungsi dengan baik dalam kes ini. Dan disebabkan sokongan untuk tatasusunan dinamik, formula tumpah secara automatik ke dalam semua sel yang dirujuk:
Mengalih keluar set aksara yang dipratentukan
Untuk memadamkan set yang dipratentukan aksara daripada berbilang sel, anda boleh buatLAMBDA lain yang memanggil fungsi RemoveChars utama dan menentukan aksara yang tidak diingini dalam parameter ke-2. Contohnya:
Untuk memadamkan aksara khas , kami telah mencipta fungsi tersuai bernama RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To alih keluar nombor daripada rentetan teks, kami telah mencipta satu lagi fungsi bernama RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Kedua-dua fungsi di atas adalah sangat mudah untuk digunakan kerana ia memerlukan hanya satu hujah - rentetan asal.
Untuk menghapuskan aksara khas daripada A2, formulanya ialah:
=RemoveSpecialChars(A2)
Untuk memadam hanya aksara angka:
=RemoveNumbers(A2)
Cara fungsi ini berfungsi:
Pada dasarnya, fungsi RemoveChars menggelung melalui senarai aksara dan mengalih keluar satu aksara pada satu masa. Sebelum setiap panggilan rekursif, fungsi IF menyemak aksara yang tinggal. Jika rentetan chars tidak kosong (chars""), fungsi akan memanggil dirinya sendiri. Sebaik sahaja aksara terakhir telah diproses, formula mengembalikan rentetan bentuk sedia ada dan keluar.
Untuk pemecahan formula terperinci, sila lihat LAMBDA Rekursif untuk mengalih keluar aksara yang tidak diingini.
Alih keluar aksara khas dengan VBA
Fungsi berfungsi dalam semua versi Excel
Jika fungsi LAMBDA tidak tersedia dalam Excel anda, tiada apa yang menghalang anda daripada mencipta fungsi yang serupa dengan VBA. Ditakrifkan penggunafungsi (UDF) boleh ditulis dalam dua cara.
Fungsi tersuai untuk memadam aksara khas rekursif :
Kod ini meniru logik fungsi LAMBDA yang dibincangkan di atas.
Fungsi RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Kemudian str = Replace(str, Left(chars, 1), "") chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End FunctionFungsi tersuai untuk mengalih keluar aksara khas bukan rekursif :
Di sini, kita mengitar aksara yang tidak diingini dari 1 hingga Len(chars) dan gantikan yang terdapat dalam rentetan asal dengan apa-apa. Fungsi MID menarik aksara yang tidak diingini satu demi satu dan menghantarnya ke fungsi Ganti.
Fungsi RemoveUnwantedChars(str As String , chars As String ) Untuk index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Seterusnya RemoveUnwantedChars = str End FunctionMasukkan salah satu kod di atas dalam buku kerja anda seperti yang dijelaskan dalam Cara memasukkan kod VBA dalam Excel dan fungsi tersuai anda sedia untuk digunakan.
Untuk tidak mengelirukan fungsi yang ditakrifkan pengguna baharu kami dengan fungsi yang ditakrifkan Lambda, kami telah menamakannya secara berbeza:
RemoveUnwantedChars(string, chars)Dengan mengandaikan rentetan asal adalah dalam A2 dan aksara yang tidak diingini dalam D2, kita boleh menyingkirkannya menggunakan formula ini:
= RemoveUnwantedChars(A2, $D$2)
Fungsi tersuai dengan kod kerasaksara
Jika anda tidak mahu bersusah payah membekalkan aksara khas untuk setiap formula, anda boleh menentukannya secara langsung dalam kod:
Fungsi RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Aksara panjang = "?¿!¡*%#$(){}[]^&/\~+-" Untuk indeks = 1 Kepada Len(aksara) str = Ganti(str, Pertengahan(aksara, indeks, 1) , "" ) Seterusnya RemoveSpecialChars = str End FunctionSila ingat bahawa kod di atas adalah untuk tujuan demonstrasi. Untuk kegunaan praktikal, pastikan anda memasukkan semua aksara yang ingin anda padamkan dalam baris berikut:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Fungsi tersuai ini dinamakan RemoveSpecialChars dan ia memerlukan hanya satu argumen - rentetan asal:
RemoveSpecialChars(string)Untuk menanggalkan aksara khas daripada set data kami, formulanya ialah:
=RemoveSpecialChars(A2)
Alih keluar aksara yang tidak boleh dicetak dalam Excel
Microsoft Excel mempunyai fungsi khas untuk memadam aksara bukan pencetakan - fungsi CLEAN. Secara teknikal, ia menanggalkan 32 aksara pertama dalam set ASCII 7-bit (kod 0 hingga 31).
Sebagai contoh, untuk memadam aksara tidak boleh cetak daripada A2, berikut ialah formula untuk digunakan :
=CLEAN(A2)
Ini akan menghapuskan aksara bukan cetakan, tetapi ruang sebelum/selepas teks dan antara perkataan akan kekal.
Kepada buang ruang tambahan , bungkus formula CLEAN dalam fungsi TRIM:
=TRIM(CLEAN(A2))
Sekarang, semua terkemuka danruang belakang dialih keluar, manakala ruang di antara dikurangkan kepada satu aksara ruang:
Jika anda mahu memadamkan sepenuhnya semua ruang di dalam rentetan, kemudian gantikan aksara ruang (kod nombor 32) dengan rentetan kosong:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Sesetengah ruang atau aksara halimunan lain masih kekal dalam lembaran kerja anda? Ini bermakna aksara tersebut mempunyai nilai yang berbeza dalam set aksara Unicode.
Sebagai contoh, kod aksara ruang tidak putus ( ) ialah 160 dan anda boleh membersihkannya menggunakan formula ini:
=SUBSTITUTE(A2, CHAR(160)," ")
Untuk memadamkan aksara bukan pencetakan khusus , anda perlu mencari nilai kodnya terlebih dahulu. Arahan terperinci dan contoh formula ada di sini: Cara mengalih keluar aksara bukan pencetakan tertentu.
Padamkan aksara khas dengan Ultimate Suite
Menyokong Excel untuk Microsoft 365, Excel 2019 - 2010
Dalam contoh terakhir ini, izinkan saya menunjukkan kepada anda cara paling mudah untuk mengalih keluar aksara khas dalam Excel. Dengan Ultimate Suite dipasang, ini yang anda perlu lakukan:
- Pada tab Ablebits Data , dalam kumpulan Teks , klik Alih keluar > Alih Keluar Aksara .
Seketika, anda akan mendapat hasil yang sempurna:
Jika berlaku masalah, jangan risau - salinan sandaran lembaran kerja anda akan dibuat secara automatik kerana kotak Sandarkan lembaran kerja ini dipilih secara lalai.
Ingin mencuba alat Alih Keluar kami? Pautan ke versi penilaian ada di bawah. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!
Muat turun yang tersedia
Padam aksara khas - contoh (fail .xlsm)
Suite Ultimate - percubaan versi (fail .exe)