Sadržaj
Postoje tri načina za pronalaženje i brisanje duplikata unutar ćelije u programu Excel. Samo odaberite onu koja vam najviše odgovara.
Kada se radi o uklanjanju duplih vrijednosti ili redaka, Microsoft Excel nudi niz različitih opcija. Ali kada se radi o uklanjanju identičnog teksta unutar dane ćelije, Excel ne pruža... ništa. Bez alata, bez značajki, bez formula, bez ičega. Hoće li nas to spriječiti u postizanju našeg cilja? Ni u kom slučaju. Ako Excel nema funkciju koja nam je potrebna, idemo napisati vlastitu :)
Kako ukloniti riječi koje se ponavljaju u Excel ćeliji
Problem : Imate iste riječi ili tekstualne nizove u ćeliji i želite ukloniti drugo i sva sljedeća ponavljanja.
Rješenje : prilagođena korisnički definirana funkcija ili VBA makro.
Korisnički definirana funkcija za uklanjanje duplikata unutar ćelije
Da biste uklonili duplikat teksta u ćeliji, možete koristiti sljedeću korisnički definiranu funkciju (UDF) , pod nazivom RemoveDupeWords :
Function RemoveDupeWords(text As String, Optional delimiter As String = " " ) As String Dim rječnik As Object Dim x, dio Postavi rječnik = CreateObject ( "Scripting.Dictionary" ) rječnik .CompareMode = vbTextCompare For Every x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(dio) Then dictionary.Add part, Nothing End If Next If dictionary.Count > 0 Zatim RemoveDupeWords = Join(dictionary.keys,graničnik) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionKako umetnuti kod funkcije u svoju radnu knjigu
Da biste dodali gornji kod u svoj Excel, trebate učiniti ovo:
- Pritisnite Alt + F11 da biste otvorili Visual Basic Editor.
- U lijevom oknu desnom tipkom miša kliknite Ova radna knjiga i odaberite Umetni > Modul .
- Zalijepite gornji kôd u prozor Kod .
Za više informacija pogledajte Kako umetnuti VBA kod u Excelu.
Sintaksa funkcije RemoveDupeWords
Naša novostvorena funkcija za uklanjanje duplikata teksta u ćeliji ima sljedeću sintaksu:
RemoveDupeWords(tekst, [razdjelnik])Gdje :
- Tekst (obavezno) - niz ili ćelija iz koje želite izbrisati ponovljeni tekst.
- Razdjelnik (opcionalno) - graničnik kojim je odvojen tekst koji se ponavlja. Ako je izostavljeno, za razdjelnik se koristi razmak.
Funkcija ne razlikuje velika i mala slova , što znači da se mala i velika slova tretiraju kao isti znakovi.
Kako koristiti funkciju RemoveDupeWords
Nakon što se kôd funkcije doda u vašu radnu knjigu, možete ga koristiti u svojim formulama na isti način kao što koristite ugrađene funkcije programa Excel.
Samo počnite upisivati naziv funkcije nakon znaka jednakosti i ono će se pojaviti u formuli intellisense. Dvaput kliknite na funkciju i imat ćete jeumetnut u ćeliju. Definirajte argumente, upišite završnu zagradu, pritisnite Enter i vaša je formula dovršena.
Na primjer, za brisanje dvostrukih riječi odvojenih zarezom i razmakom iz A2, unesite donju formulu u B2, a zatim je povucite prema dolje kroz onoliko ćelija koliko je potrebno:
=RemoveDupeWords(A2, ", ")
Kao rezultat, imat ćete popis jedinstvenih riječi ili podnizova odvojenih znakom zarez i razmak :
Ako biste radije dobili popis odvojen zarezom, koristite samo zarez za razdjelnik :
=RemoveDupeWords(A2, ",")
Ako su vaši izvorni podaci odvojeni razmakom , drugi argument treba biti " " ili izostavljen:
=RemoveDupeWords(A2)
Kao i svaka druga Excel funkcija, naš UDF automatski ponovno izračunava kada se promijene izvorni podaci, tako da će vaši rezultati uvijek biti ažurni.
VBA makronaredba za brisanje duplikata teksta iz više ćelija odjednom
Ako želite ukloniti ponovljeni tekst iz više ćelija u jednom potezu, tada možete pozvati funkciju RemoveDupeWords . m unutar makronaredbe. U ovom slučaju, graničnik je tvrdo kodiran i morat ćete ažurirati kod makronaredbe svaki put kada se graničnik promijeni. Alternativno, možete napisati nekoliko varijanti koda za najčešće graničnike, recimo, razmak, zarez ili zarez i razmak, i svojim makronaredbama dati smislena imena, npr. RemoveDupesDelimSpace .
Kôd makronaredbe je sljedeći:
Public Sub RemoveDupeWords2() Dim cell Kao raspon za svaku ćeliju u Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubU gornjem kodu, razdjelnik je zarez i razmak . Za korištenje drugog graničnika, zamijenite ", " drugim znakovima u ovom retku koda:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Napomena. Da bi makronaredba radila, njezin kod i kôd funkcije RemoveDupeWords moraju biti postavljeni na isti modul.
Kako koristiti makronaredbu
Umetnite kôd makronaredbe u vlastitu radnu knjigu ili otvorite naš primjer radne knjige s kodom, a zatim izvršite sljedeće korake za pokretanje makronaredbe.
- Odaberite raspon ćelija iz kojih želite ukloniti ponovljeni tekst.
- Pritisnite Alt + F8 za otvaranje dijaloškog okvira Makro .
- Na popisu makronaredbi, odaberite RemoveDupeWords2 .
- Kliknite Pokreni .
Za više detalja pogledajte Kako pokrenite makronaredbu u Excelu.
Napomena. Budući da se radnja makronaredbe ne može poništiti , preporučujemo da spremite radnu knjigu neposredno prije upotrebe makronaredbe. Na ovaj način, ako nešto pođe po zlu, možete jednostavno zatvoriti i ponovno otvoriti radnu knjigu, i vratit ćete se točno tamo gdje ste bili. Ili jednostavno možete napraviti kopiju radnih listova na koje bi makronaredba mogla utjecati.
Kako ukloniti duplicirane znakove u ćeliji
Problem : Imate više pojavljivanja istog znaka u ćeliji, dok svakićelija bi trebala sadržavati samo jedno pojavljivanje određenog znaka.
Rješenje : prilagođena korisnički definirana funkcija ili VBA makro.
Korisnički definirana funkcija za brisanje ponovljenih znakova
Da biste uklonili duplicirane znakove unutar ćelije zadržavajući samo prva pojavljivanja, možete koristiti sljedeću korisnički definiranu funkciju pod nazivom RemoveDupeChars :
Funkcija RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1 ) If Not dictionary.Exists(char) Then dictionary.Add char, Ništa rezultat = rezultat & char End If Next RemoveDupeChars = rezultat Postavi rječnik = Nothing End FunctionZa umetanje koda funkcije u vašu radnu knjigu, koraci su potpuno isti kao u prethodnom primjeru.
Sintaksa funkcije RemoveDupeChars
Sintaksa ove prilagođene funkcije je najjednostavnija što uopće može biti - potreban je samo jedan argument:
RemoveDupeChars(text)Gdje je text niz ili ćelija iz koje želite za uklanjanje dvostrukih znakova.
Funkcija je osjetljiva na velika i mala slova i tretira mala i velika slova kao različite znakove.
Kako koristiti funkciju RemoveDupeChars
Sve što smo rekli o upotrebi RemoveDupeWords vrijedi i za RemoveDupeChars . Dakle, bez odlaskapreviše u teoriju, prijeđimo odmah na primjer.
Za brisanje dvostrukih znakova iz stupca A koji počinju u A2, unesite ovu formulu u B2 i kopirajte je:
=RemoveDupeChars(A2)
Kao što možete vidjeti na slici ispod, funkcija uspješno obrađuje različite vrste znakova uključujući slova, znamenke i posebne simbole:
Savjet. Ako su vaši znakovi odvojeni jedan od drugog nekim razdjelnikom kao što je razmak, zarez ili crtica, tada upotrijebite funkciju RemoveDupeWords kao što je prikazano u prethodnom primjeru.
VBA makronaredba za uklanjanje istih znakova iz ćelije
Kao RemoveDupeWords , funkcija RemoveDupeChars također se može pozvati unutar makronaredbe:
Javno Sub RemoveDupeChars2() Dim cell Kao raspon za svaku ćeliju u Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubBudući da ovaj UDF ne koristi razgraničivač, nećete morati raditi nikakve prilagodbe u kôd.
Napomena. Da bi makronaredba radila, njen kod i kod RemoveDupeChars UDF-a moraju se postaviti na isti modul u VBA uređivaču.
Kako koristiti makronaredbu
Pod pretpostavkom da ste već umetnuli kod makronaredbe u svoju radnu knjigu ili otvorili našu oglednu radnu knjigu koja sadrži kôd, pokrenite makronaredbu na ovaj način.
- Odaberite raspon ćelija iz kojih želite ukloniti znakove koji se ponavljaju.
- Pritisnite Alt + F8 za otvaranje dijaloškog okvira Makro okvir.
- Na popisu makronaredbi odaberite RemoveDupeChars2 .
- Kliknite Pokreni .
Uklonite duple podnizove pomoću Ultimate Suite
Na početku ovog vodiča spomenuto je da Microsoft Excel nema ugrađenu značajku za uklanjanje duplikata unutar ćelije. Ali naš Ultimate Suite ima!
Možete ga pronaći u padajućem izborniku Duplicate Remover na kartici Ablebits Data , u Dedupe grupa. Ako se opcija Ukloni duplikate podnizova ne pojavi u vašem Excelu, provjerite imate li instaliranu najnoviju verziju Ultimate Suite (besplatnu probnu verziju možete preuzeti ovdje).
Da biste uklonili ponovljene riječi ili tekst iz više ćelija u 5 sekundi (sekundu po koraku :), ovo trebate učiniti:
- Odaberite izvorne podatke i pokrenite Alat za uklanjanje duplikata podnizova .
- Odredite razdjelnik .
- Definirajte hoćete li tretirati uzastopne razdjelnike kao jedan (zadano).
- Odaberite hoćete li izvršiti pretragu s razlikovanjem velikih i malih slova ili bez obzira na velika i mala slova .
- Kliknite Ukloni .
Gotovo! Nema petljanja s VBA ili formulama, samo brzi i točni rezultati.
Da biste saznali više o ovom sjajnom dodatku, posjetite njegovu početnu stranicu. Ili još bolje, preuzmite probnu verziju u nastavku i isprobajte je!
Tako možete ukloniti dvostruki tekst u ćeliji.Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!
Dostupna preuzimanja
Primjeri za uklanjanje duplikata u ćeliji (.xlsm datoteka)
Ultimate Suite 14 -dnevna potpuno funkcionalna verzija (.exe datoteka)