Isi kandungan
Terdapat tiga cara untuk mencari dan memadam pendua dalam sel dalam Excel. Hanya pilih yang paling sesuai untuk anda.
Apabila ia berkaitan dengan mengalih keluar nilai atau baris pendua, Microsoft Excel menawarkan pelbagai pilihan yang berbeza. Tetapi apabila ia datang untuk mengalih keluar teks yang sama dalam sel tertentu, Excel menyediakan... tiada apa-apa. Tiada alat, tiada ciri, tiada formula, tiada apa-apa. Adakah ia akan menghalang kita daripada mencapai matlamat kita? Walau apa pun. Jika Excel tidak mempunyai fungsi yang kita perlukan, mari kita tulis fungsi kita sendiri :)
Cara untuk mengalih keluar perkataan berulang dalam sel Excel
Masalah : Anda mempunyai perkataan atau rentetan teks yang sama dalam sel dan ingin mengalih keluar ulangan kedua dan semua ulangan berikutnya.
Penyelesaian : fungsi tersuai yang ditentukan pengguna atau makro VBA.
Fungsi takrif pengguna untuk mengalih keluar pendua dalam sel
Untuk menghapuskan teks pendua dalam sel, anda boleh menggunakan fungsi takrif pengguna (UDF) berikut , bernama RemoveDupeWords :
Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) kamus .CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Tambah bahagian, Nothing End If Next If dictionary.Count > 0 Kemudian RemoveDupeWords = Sertai(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionCara memasukkan kod fungsi dalam buku kerja anda
Untuk menambah kod di atas pada Excel anda, ini yang anda perlu lakukan:
- Tekan Alt + F11 untuk membuka Editor Visual Basic.
- Pada anak tetingkap kiri, klik kanan Buku Kerja Ini dan pilih Sisipkan > Modul .
- Tampal kod di atas dalam tetingkap Kod .
Untuk mendapatkan maklumat lanjut, sila lihat Cara memasukkan VBA kod dalam Excel.
Sintaks fungsi RemoveDupeWords
Fungsi kami yang baru dibuat untuk mengalih keluar teks pendua dalam sel mempunyai sintaks berikut:
RemoveDupeWords(teks, [pembatas])Di mana :
- Teks (diperlukan) - rentetan atau sel yang anda mahu padamkan teks berulang daripadanya.
- Pembatas (pilihan) - pembatas yang dipisahkan oleh teks yang berulang. Jika diabaikan, ruang digunakan untuk pembatas.
Fungsi ini tidak sensitif huruf besar dan kecil , bermakna huruf kecil dan huruf besar dianggap sebagai aksara yang sama.
Cara menggunakan fungsi RemoveDupeWords
Setelah kod fungsi ditambahkan pada buku kerja anda, anda boleh menggunakannya dalam formula anda dengan cara yang sama seperti anda menggunakan fungsi terbina dalam Excel.
Hanya mula menaip nama fungsi selepas tanda sama, dan ia akan muncul dalam formula intellisense. Klik dua kali pada fungsi, dan anda akan memilikinyadimasukkan ke dalam sel. Tentukan hujah, taip kurungan penutup, tekan Enter , dan formula anda selesai.
Contohnya, untuk memadamkan perkataan pendua yang dipisahkan dengan koma dan ruang daripada A2, masukkan formula di bawah dalam B2, dan kemudian seret ke bawah melalui seberapa banyak sel yang diperlukan:
=RemoveDupeWords(A2, ", ")
Hasilnya, anda akan mempunyai senarai perkataan atau subrentetan unik yang dipisahkan oleh koma dan ruang :
Jika anda lebih suka mendapatkan senarai yang dipisahkan koma, maka gunakan hanya koma untuk pembatas :
=RemoveDupeWords(A2, ",")
Jika data sumber anda dipisahkan dengan ruang , hujah kedua hendaklah " " atau ditinggalkan:
=RemoveDupeWords(A2)
Seperti mana-mana fungsi Excel lain, UDF kami mengira semula secara automatik apabila data sumber berubah, jadi keputusan anda akan sentiasa dikemas kini.
Makro VBA untuk memadam teks pendua daripada berbilang sel sekali gus
Jika anda ingin mengalih keluar teks berulang daripada berbilang sel sekali gus, maka anda boleh memanggil fungsi RemoveDupeWords kembali m dalam makro. Dalam kes ini, pembatas dikodkan keras dan anda perlu mengemas kini kod makro setiap kali pembatas berubah. Sebagai alternatif, anda boleh menulis beberapa variasi kod untuk pembatas yang paling biasa, katakan, ruang, koma atau koma dan ruang dan berikan makro anda nama yang bermakna, mis. RemoveDupesDelimSpace .
Kod makro adalah seperti berikut:
Sub Awam RemoveDupeWords2() Malapkan sel Sebagai Julat Untuk Setiap sel Dalam Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubDalam kod di atas, pembatas ialah koma dan ruang . Untuk menggunakan pembatas yang berbeza, gantikan "," dengan aksara lain dalam baris kod ini:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Nota. Untuk makro berfungsi, kodnya dan kod fungsi RemoveDupeWords mesti diletakkan pada modul yang sama.
Cara menggunakan makro
Masukkan kod makro dalam buku kerja anda sendiri atau buka buku kerja sampel kami dengan kod dan kemudian lakukan langkah berikut untuk menjalankan makro.
- Pilih julat sel yang anda mahu alih keluar teks berulang.
- Tekan Alt + F8 untuk membuka kotak dialog Makro .
- Dalam senarai makro, pilih RemoveDupeWords2 .
- Klik Jalankan .
Untuk butiran lanjut, sila lihat Cara untuk jalankan makro dalam Excel.
Nota. Oleh kerana tindakan makro tidak boleh dibuat asal , kami amat mengesyorkan agar anda menyimpan buku kerja anda sebelum menggunakan makro. Dengan cara ini, jika berlaku masalah, anda boleh menutup dan membuka semula buku kerja dan anda akan kembali ke tempat anda berada. Atau anda boleh membuat salinan lembaran kerja yang mungkin dipengaruhi oleh makro.
Cara mengalih keluar aksara pendua dalam sel
Masalah : Anda mempunyai berbilang kejadian aksara yang sama dalam sel, manakala setiapsel hendaklah hanya mengandungi satu kejadian bagi aksara tertentu.
Penyelesaian : fungsi tersuai yang ditentukan pengguna atau makro VBA.
Fungsi takrif pengguna untuk memadam aksara berulang
Untuk mengalih keluar aksara pendua dalam sel yang hanya menyimpan kejadian pertama, anda boleh menggunakan fungsi takrif pengguna berikut, bernama RemoveDupeChars :
Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary") Untuk i = 1 Hingga Len(teks) char = Mid(teks, i, 1 ) Jika Tidak kamus.Wujud(char) Kemudian kamus.Tambahkan char, Tiada hasil = hasil & char End If Next RemoveDupeChars = result Set dictionary = Nothing End FunctionUntuk memasukkan kod fungsi ke dalam buku kerja anda, langkahnya adalah sama seperti dalam contoh sebelumnya.
RemoveDupeChars function syntax
Sintaks fungsi tersuai ini semudah yang mungkin - hanya satu argumen diperlukan:
RemoveDupeChars(text)Di mana text ialah rentetan atau sel yang anda inginkan untuk mengalih keluar aksara pendua.
Fungsi ini sensitif huruf besar dan kecil dan menganggap huruf kecil dan huruf besar sebagai aksara yang berbeza.
Cara menggunakan fungsi RemoveDupeChars
Semua yang kami katakan tentang penggunaan RemoveDupeWords adalah benar untuk RemoveDupeChars . Jadi, tanpa pergiterlalu banyak teori, mari terus kepada contoh.
Untuk memadamkan aksara pendua daripada lajur A bermula dalam A2, masukkan formula ini dalam B2 dan salin ke bawah:
=RemoveDupeChars(A2)
Seperti yang anda lihat dalam imej di bawah, fungsi ini berjaya mengendalikan jenis aksara yang berbeza termasuk huruf, digit dan simbol khas:
Petua. Jika aksara anda dipisahkan antara satu sama lain oleh beberapa pembatas seperti ruang, koma atau sempang, kemudian gunakan fungsi RemoveDupeWords seperti yang ditunjukkan dalam contoh sebelumnya.
Makro VBA untuk mengalih keluar aksara yang sama daripada sel
Seperti RemoveDupeWords , fungsi RemoveDupeChars juga boleh dipanggil dari dalam makro:
Awam Sub RemoveDupeChars2() Malapkan sel Sebagai Julat Untuk Setiap sel Dalam Application.Selection cell.Value = RemoveDupeChars(cell.Value) Sub End End SeterusnyaOleh kerana UDF ini tidak menggunakan sebarang pembatas, anda tidak perlu membuat sebarang pelarasan dalam kod.
Nota. Untuk makro berfungsi, kodnya dan kod RemoveDupeChars UDF mesti diletakkan pada modul yang sama dalam editor VBA.
Cara menggunakan makro
Dengan mengandaikan anda telah memasukkan kod makro dalam buku kerja anda atau membuka buku kerja sampel kami yang mengandungi kod, lancarkan makro dengan cara ini.
- Pilih julat sel yang anda ingin alih keluar aksara berulang.
- Tekan Alt + F8 untuk membuka dialog Makro kotak.
- Dalam senarai makro, pilih RemoveDupeChars2 .
- Klik Jalankan .
Alih keluar subrentetan pendua dengan Ultimate Suite
Pada permulaan tutorial ini, dinyatakan bahawa Microsoft Excel tidak mempunyai ciri terbina untuk mengalih keluar pendua dalam sel. Tetapi Suite Ultimate kami dapat melakukannya!
Anda boleh menemuinya dalam menu lungsur turun Pembuang Pendua pada tab Data Ablebits , dalam Dedupe kumpulan. Jika pilihan Alih Keluar Duplikat Subrentetan tidak muncul dalam Excel anda, pastikan anda memasang versi terkini Ultimate Suite (percubaan percuma boleh dimuat turun di sini).
Untuk mengalih keluar perkataan atau teks yang berulang daripada berbilang sel dalam masa 5 saat (satu saat setiap langkah :), ini yang anda perlu lakukan:
- Pilih data sumber anda dan lancarkan Alih keluar Alat Subrentetan Pendua .
- Nyatakan pembatas .
- Tentukan sama ada untuk menganggap pembatas berturut-turut sebagai satu (lalai).
- Pilih sama ada untuk melakukan carian sensitif huruf besar/kecil atau tidak sensitif huruf besar/kecil .
- Klik Alih keluar .
Selesai! Tidak bermain-main dengan VBA atau formula, hanya hasil yang cepat dan tepat.
Untuk mengetahui lebih lanjut tentang alat tambah hebat ini, sila lawati halaman utamanya. Atau lebih baik lagi, muat turun versi penilaian di bawah dan cuba!
Begitulah cara untuk mengalih keluar teks pendua dalam sel.Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!
Muat turun yang tersedia
Contoh untuk mengalih keluar pendua dalam sel (fail .xlsm)
Ultimate Suite 14 -hari versi berfungsi sepenuhnya (fail .exe)