Mundarija
Excelda hujayra ichidagi dublikatlarni topish va o'chirishning uchta usuli mavjud. Shunchaki siz uchun eng mosini tanlang.
Ikki nusxadagi qiymatlar yoki qatorlarni olib tashlash haqida gap ketganda, Microsoft Excel turli xil variantlar qatorini taklif qiladi. Ammo ma'lum bir hujayradagi bir xil matnni o'chirish haqida gap ketganda, Excel hech narsa bermaydi. Asboblar, xususiyatlar, formulalar, hech narsa yo'q. Bu maqsadimizga erishishimizga xalaqit beradimi? Hech qanday holatda. Agar Excelda bizga kerak bo'lgan funksiya bo'lmasa, keling, o'zimiznikini yozamiz :)
Excel yacheykasida takrorlangan so'zlarni qanday olib tashlash mumkin
Muammo : Hujayrada bir xil so‘zlar yoki matn qatorlari mavjud va ikkinchi va keyingi barcha takrorlarni olib tashlamoqchisiz.
Yechim : foydalanuvchi tomonidan belgilangan maxsus funksiya yoki VBA makros.
Hujayra ichidagi dublikatlarni o'chirish uchun foydalanuvchi tomonidan belgilangan funksiya
Yacheykadagi takroriy matnni yo'q qilish uchun siz quyidagi foydalanuvchi tomonidan belgilangan funksiyadan (UDF) foydalanishingiz mumkin. , deb nomlangan RemoveDupeWords :
Funktsiya RemoveDupeWords(matn sifatida String , ixtiyoriy ajratuvchi sifatida String = " " ) String Dim lug'ati sifatida Object Dim x sifatida, qism lug'atni o'rnatish = CreateObject ( "Scripting.Dictionary" ) lug'at .CompareMode = vbTextCompare Har bir x Uchun Split(matn, ajratuvchi) qism = Trim(x) Agar qism "" Va lug'at bo'lmasa.Mavjud bo'lsa(qism) Keyin lug'at.Qism qo'shing,Keyingi bo'lsa,Hech narsa tugamaydi If dictionary.Count > 0 Keyin RemoveDupeWords = Qo'shilish (dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set Dictionary = Nothing End FunctionFunktsiya kodini ishchi kitobingizga qanday kiritish kerak
Yuqoridagi kodni Excelga qo'shish uchun quyidagilarni qilishingiz kerak:
- Visual Basic muharririni ochish uchun Alt + F11 tugmalarini bosing.
- Chap panelda ThisWorkbook -ni o'ng tugmasini bosing va Qo'shish -ni tanlang. > Modul .
- Yuqoridagi kodni Kod oynasiga joylashtiring.
Qo'shimcha ma'lumot olish uchun VBA-ni qanday kiritish kerak bo'limiga qarang. Excelda kod.
RemoveDupeWords funksiyasi sintaksisi
Yacheykadagi takroriy matnni oʻchirish uchun yangi yaratilgan funksiyamiz quyidagi sintaksisga ega:
RemoveDupeWords(matn, [delimiter])Bu yerda :
- Matn (majburiy) - takrorlangan matnni oʻchirmoqchi boʻlgan satr yoki katak.
- Ajratish (ixtiyoriy) - takrorlangan matnni ajratuvchi belgi. Agar o'tkazib yuborilsa, ajratuvchi uchun bo'sh joy qo'llaniladi.
Funksiya katta-kichik harflarga sezgir emas , ya'ni kichik va katta harflar bir xil belgilar sifatida qabul qilinadi.
RemoveDupeWords funksiyasidan qanday foydalanish kerak
Funktsiya kodi ishchi kitobingizga qo'shilgach, uni formulalaringizda Excelning o'rnatilgan funksiyalaridan foydalanganingiz kabi ishlatishingiz mumkin.
Teng belgisidan keyin funksiya nomini yozishni boshlang va u intellisense formulasida paydo bo'ladi. Funktsiyani ikki marta bosing va siz unga ega bo'lasizhujayra ichiga kiritilgan. Argumentlarni aniqlang, yopish qavsni kiriting, Enter tugmasini bosing va formulangiz tugallanadi.
Masalan, A2 dan vergul va boʻsh joy bilan ajratilgan takroriy soʻzlarni oʻchirish uchun, B2 ga quyidagi formulani kiriting va uni keraklicha katakchalar bo'ylab pastga torting:
=RemoveDupeWords(A2, ", ")
Natijada siz
Agar siz vergul bilan ajratilgan ro'yxatni olishni istasangiz, ajratuvchi uchun faqat vergul qo'ying. :
=RemoveDupeWords(A2, ",")
Agar manba ma'lumotlaringiz bo'shliq bilan ajratilgan bo'lsa, ikkinchi argument " " bo'lishi yoki o'tkazib yuborilishi kerak:
=RemoveDupeWords(A2)
Har qanday Excel funksiyasi singari, bizning UDF ham manba ma'lumotlari o'zgarganda avtomatik ravishda qayta hisoblab chiqadi, shuning uchun natijalar har doim yangilanadi.
Bir vaqtning o'zida bir nechta katakchalardagi takroriy matnni o'chirish uchun VBA makros
Agar siz bir vaqtning o'zida bir nechta hujayradan takrorlangan matnni o'chirmoqchi bo'lsangiz, RemoveDupeWords funksiyasini quyidagi manzildan chaqirishingiz mumkin. m makro ichida. Bunday holda, ajratuvchi qattiq kodlangan va cheklovchi har safar o'zgarganda makro kodini yangilashingiz kerak bo'ladi. Shu bilan bir qatorda, siz eng keng tarqalgan ajratuvchilar uchun bir nechta kod o'zgarishlarini yozishingiz mumkin, masalan, bo'sh joy, vergul yoki vergul va bo'sh joy va makrolaringizga mazmunli nomlar berishingiz mumkin, masalan. RemoveDupesDelimSpace .
Makroning kodi quyidagicha:
Umumiy Sub RemoveDupeWords2() xira katak Application.Selection cell.Value = RemoveDupeWords(hujayra.Value, ", " ) Keyingi End SubYuqoridagi kodda chegaralovchi vergul va bo'sh joy . Boshqa ajratuvchidan foydalanish uchun ushbu kod qatoridagi "," ni boshqa belgi(lar) bilan almashtiring:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Eslatma. Makrosning ishlashi uchun uning kodi va RemoveDupeWords funksiyasining kodi bir xil modulga joylashtirilishi kerak.
Makrodan qanday foydalanish kerak
Makro kodini o'z ish daftaringizga kiriting yoki kodli namunaviy ish kitobimizni oching, so'ngra so'lni ishga tushirish uchun quyidagi amallarni bajaring.
- Takrorlangan matnni olib tashlamoqchi boʻlgan katakchalar qatorini tanlang.
- Makro muloqot oynasini ochish uchun Alt + F8 tugmalarini bosing.
- Makrolar roʻyxatida, RemoveDupeWords2 -ni tanlang.
- Ishga tushirish -ni bosing.
Qo'shimcha ma'lumot olish uchun "Qanday qilish" bo'limiga qarang. Excelda makrosni ishga tushiring.
Eslatma. Makrosning amalini qaytarib bo'lmaydi , makrosdan foydalanishdan oldin ish kitobingizni saqlashni qat'iy tavsiya qilamiz. Shunday qilib, agar biror narsa noto'g'ri bo'lsa, siz oddiygina ish daftarini yopishingiz va qayta ochishingiz mumkin va siz avvalgi holatingizga qaytasiz. Yoki makro ta'sir qilishi mumkin bo'lgan ishchi varaq(lar)ning nusxasini yaratishingiz mumkin.
Hujayradagi takroriy belgilarni qanday olib tashlash mumkin
Muammo : Hujayrada bir xil belgilarning bir nechta takrorlanishi mavjudyacheykada faqat bitta belgi boʻlishi kerak.
Yechim : foydalanuvchi tomonidan aniqlangan maxsus funksiya yoki VBA makros.
Takrorlanuvchi belgilarni oʻchirish uchun foydalanuvchi tomonidan belgilangan funksiya
Faqat birinchi holatlarni saqlagan holda hujayra ichidagi takrorlangan belgilarni oʻchirish uchun siz RemoveDupeChars deb nomlangan quyidagi foydalanuvchi tomonidan belgilangan funksiyadan foydalanishingiz mumkin:
Funktsiya RemoveDupeChars(matn String sifatida) String Dim lug'ati sifatida Ob'ekt sifatida Dim char sifatida String Dim natija sifatida String Set lug'ati = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(matn) char = Mid(matn, i, 1) ) Agar lug'at bo'lmasa.Mavjud(char) Keyin lug'at.Char qo'shing, Hech narsa natija yo'q = natija & char End If Next RemoveDupeChars = natija Lug'atni o'rnating = Hech narsa tugamaydi FunktsiyaFunktsiya kodini ish daftaringizga kiritish uchun amallar avvalgi misoldagi kabi bajariladi.
RemoveDupeChars funktsiyasi sintaksisi
Ushbu maxsus funksiyaning sintaksisi iloji boricha sodda - faqat bitta argument talab qilinadi:
RemoveDupeChars(matn)Bu yerda matn siz xohlagan satr yoki katakdir. takroriy belgilarni olib tashlash uchun.
Funksiya katta-kichik-katta-sezgir va kichik va katta harflarni turli belgilar sifatida ko'radi.
RemoveDupeChars funksiyasidan qanday foydalanish
RemoveDupeWords-dan foydalanish haqida biz aytgan hamma narsa RemoveDupeChars uchun to'g'ri. Shunday qilib, bormasdanNazariyaga juda ko‘p bo‘lsa, to‘g‘ridan-to‘g‘ri misolga o‘tamiz.
A2 boshidagi A ustunidagi takroriy belgilarni o‘chirish uchun B2 ga ushbu formulani kiriting va uni pastga ko‘chiring:
=RemoveDupeChars(A2)
Quyidagi rasmda koʻrib turganingizdek, funksiya turli belgilar turlarini, jumladan, harflar, raqamlar va maxsus belgilarni muvaffaqiyatli boshqaradi:
Maslahat. Agar belgilaringiz bir-biridan bo'sh joy, vergul yoki tire kabi ba'zi chegaruvchi bilan ajratilgan bo'lsa, oldingi misolda ko'rsatilganidek, RemoveDupeWords funksiyasidan foydalaning.
Yacheykadan bir xil belgilarni olib tashlash uchun VBA makrosi
RemoveDupeWords kabi, RemoveDupeChars funksiyasi ham makro ichidan chaqirilishi mumkin:
Ochiq Sub RemoveDupeChars2() xira katakchalar Application.Selection cell.Value = RemoveDupeChars(cell.Value) dagi har bir katak uchun diapazon sifatida Keyingi End SubUshbu UDF hech qanday cheklovchidan foydalanmagani uchun sizda hech qanday tuzatish kiritishingiz shart emas. kod.
Eslatma. Makrosning ishlashi uchun uning kodi va RemoveDupeChars UDF kodi VBA muharririda bir xil modulga joylashtirilishi kerak.
Makrodan qanday foydalanish kerak
Makro kodini ish daftaringizga allaqachon kiritgan bo'lsangiz yoki kodni o'z ichiga olgan namunaviy ish kitobimizni ochgan bo'lsangiz, makroni shu tarzda ishga tushiring.
- Qayta takrorlanadigan belgilarni olib tashlamoqchi boʻlgan hujayralar qatorini tanlang.
- Makro dialog oynasini ochish uchun Alt + F8 tugmalarini bosing.quti.
- Makrolar ro'yxatida RemoveDupeChars2 -ni tanlang.
- Ishga tushirish tugmasini bosing.
Ultimate Suite yordamida ikki nusxadagi pastki satrlarni o'chirish
Ushbu qo'llanmaning boshida Microsoft Excel-da hujayra ichidagi dublikatlarni o'chirish uchun o'rnatilgan funksiya yo'qligi aytib o'tilgan edi. Lekin bizning Ultimate Suite shunday qiladi!
Siz uni Duplicate Remover ochiladigan menyusida Ablebits Data yorlig'ida, Dedupe<2-da topishingiz mumkin> guruh. Agar Excelda Dublicate Substrings ni o'chirish opsiyasi ko'rinmasa, sizda Ultimate Suite-ning so'nggi versiyasi o'rnatilganligiga ishonch hosil qiling (bepul sinov versiyasini bu yerdan yuklab olishingiz mumkin).
5 soniyada bir nechta katakchalardan takrorlangan so'zlarni yoki matnni olib tashlash uchun (har bir qadamda bir soniya :), buni qilish kerak:
- Manba ma'lumotlaringizni tanlang va <-ni ishga tushiring. 1>Dublicate Substrings asbobini olib tashlang.
- cheklovchini belgilang.
- ketma-ket ajratuvchilarni bitta (standart) sifatida ko'rib chiqishni belgilang.
- katta-kichik harflarni sezgir yoki katta-kichik harflarni sezgirsiz qidirishni bajarishni tanlang.
- O'chirish tugmasini bosing.
Bajarildi! VBA yoki formulalar bilan o'ynashning hojati yo'q, shunchaki tez va aniq natijalar.
Ushbu ajoyib plagin haqida ko'proq bilish uchun uning bosh sahifasiga tashrif buyuring. Yoki undan ham yaxshiroq, quyida baholash versiyasini yuklab oling va sinab ko'ring!
Yacheykadagi takroriy matnni shunday olib tashlash mumkin.O'qiganingiz uchun tashakkur va keyingi haftada blogimizda ko'rishga umid qilaman!
Mavjud yuklab olishlar
Hujayradagi dublikatlarni o'chirishga misollar (.xlsm fayli)
Ultimate Suite 14 -kunning to'liq ishlaydigan versiyasi (.exe fayli)