Kako ukloniti duplikate unutar ćelije u Excelu

  • Podijeli Ovo
Michael Brown

Postoje tri načina za pronalaženje i brisanje duplikata unutar ćelije u programu Excel. Samo odaberite onaj koji vam najviše odgovara.

Kada se radi o uklanjanju duplih vrijednosti ili redova, Microsoft Excel nudi niz različitih opcija. Ali kada je u pitanju uklanjanje identičnog teksta unutar date ćelije, Excel ne pruža... ništa. Nema alata, nema funkcija, nema formula, nema ničega. Hoće li nas spriječiti da postignemo svoj cilj? Ni u kom slučaju. Ako Excel nema funkciju koja nam je potrebna, idemo napisati svoju :)

    Kako ukloniti ponovljene riječi u Excel ćeliji

    Problem : Imate iste riječi ili tekstualne nizove u ćeliji i želite ukloniti drugo i sva naredna ponavljanja.

    Rješenje : prilagođena korisnički definirana funkcija ili VBA makro.

    Korisnički definirana funkcija za uklanjanje duplikata unutar ćelije

    Da biste eliminirali duplikat teksta u ćeliji, možete koristiti sljedeću korisnički definiranu funkciju (UDF) , pod nazivom RemoveDupeWords :

    Funkcija RemoveDupeWords(tekst kao string , opcioni graničnik kao niz = " " ) Kao string Dim rječnik Kao objekt Dim x, dio Postavi rječnik = CreateObject ( "Scripting.Dictionary" ) rječnik .CompareMode = vbTextCompare Za svaki x U Split(tekst, graničnik) dio = Trim(x) Ako dio "" I nije rječnik.Postoji(dio) Onda rječnik.Dodaj dio, Ništa Kraj Ako Sljedeće Ako rječnik.Count > 0 Zatim RemoveDupeWords = Join(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Kako umetnuti kod funkcije u svoju radnu knjigu

    Da dodate gornji kod u svoj Excel, ovo je ono što trebate učiniti:

    1. Pritisnite Alt + F11 da otvorite Visual Basic Editor.
    2. Na lijevom oknu, kliknite desnim tasterom miša na Ova radna sveska i odaberite Ubaci > Modul .
    3. Zalijepite gornji kod u prozor Kôd .

    Za više informacija pogledajte Kako umetnuti VBA kod u Excelu.

    Sintaksa funkcije RemoveDupeWords

    Naša novokreirana funkcija za uklanjanje duplikata teksta u ćeliji ima sljedeću sintaksu:

    RemoveDupeWords(tekst, [delimiter])

    Gdje :

    • Tekst (obavezno) - niz ili ćelija iz koje želite da izbrišete ponovljeni tekst.
    • Razgranič (opcionalno) - graničnik kojim se odvaja ponovljeni tekst. Ako se izostavi, za graničnik se koristi razmak.

    Funkcija nije osjetljiva na velika i mala slova , što znači da se mala i velika slova tretiraju kao isti znakovi.

    Kako koristiti funkciju RemoveDupeWords

    Kada 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 ​​ime funkcije nakon znaka jednakosti i ono će se pojaviti u formuli intellisense. Dvaput kliknite na funkciju i imat ćete jeumetnuta u ćeliju. Definirajte argumente, upišite zagradu za zatvaranje, pritisnite Enter i vaša formula je završena.

    Na primjer, da biste izbrisali duplicirane riječi odvojene zarezom i razmakom od A2, unesite formulu ispod u B2, a zatim je povucite prema dolje kroz onoliko ćelija koliko je potrebno:

    =RemoveDupeWords(A2, ", ")

    Kao rezultat, imat ćete listu jedinstvenih riječi ili podnizova odvojenih znakom zarez i razmak :

    Ako biste radije dobili listu razdvojenu zarezima, onda koristite samo zarez za graničnik :

    =RemoveDupeWords(A2, ",")

    Ako su vaši izvorni podaci odvojeni razmakom , drugi argument bi trebao biti " " ili izostavljen:

    =RemoveDupeWords(A2)

    Kao i svaka druga Excel funkcija, naš UDF automatski preračunava kada se izvorni podaci promijene, tako da će vaši rezultati uvijek biti ažurirani.

    VBA makro za brisanje duplikata teksta iz više ćelija odjednom

    Ako želite ukloniti ponovljeni tekst iz više ćelija odjednom, tada možete pozvati funkciju RemoveDupeWords m unutar makroa. U ovom slučaju, graničnik je tvrdo kodiran i morat ćete ažurirati kod makroa svaki put kada se graničnik promijeni. Alternativno, možete napisati nekoliko varijacija koda za najčešće graničnike, recimo, razmak, zarez ili zarez i razmak, i dati svojim makroima smislena imena, npr. RemoveDupesDelimSpace .

    Kôd makroa je sljedeći:

    Public Sub RemoveDupeWords2() Zatamnjena ćelija kao opseg za svaku ćeliju u aplikaciji.Odabir cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    U gornjem kodu, graničnik je zarez i prostor . Da biste koristili drugačiji graničnik, zamijenite ", " drugim znakom(ima) u ovom redu koda:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Napomena. Da bi makro radio, njegov kod i kod funkcije RemoveDupeWords moraju biti postavljeni u isti modul.

    Kako koristiti makro

    Ubacite kod makroa u svoju radnu knjigu ili otvorite našu radnu knjigu uzorka s kodom, a zatim izvršite sljedeće korake da pokrenete makro.

    1. Izaberite raspon ćelija iz kojih želite da uklonite tekst koji se ponavlja.
    2. Pritisnite Alt + F8 da otvorite Makro dijaloški okvir.
    3. Na listi makronaredbi, odaberite RemoveDupeWords2 .
    4. Kliknite Pokreni .

    Za više detalja pogledajte Kako pokrenite makro u Excelu.

    Napomena. Budući da se radnja makroa ne može poništiti , preporučujemo da sačuvate radnu svesku neposredno prije korištenja makroa. Na ovaj način, ako nešto pođe po zlu, možete jednostavno zatvoriti i ponovo otvoriti radnu svesku i vratit ćete se tačno tamo gdje ste bili. Ili možete jednostavno napraviti kopiju radnog lista na koje bi makro mogao utjecati.

    Kako ukloniti duple znakove u ćeliji

    Problem : Imate više pojavljivanja istog znaka u ćeliji, dok svakićelija treba sadržavati samo jedno pojavljivanje datog 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(tekst kao string) Kao string Dim dictionary As object Dim char As String Dim rezultat Kao string Set dictionary = CreateObject ( "Scripting.Dictionary" ) Za i = 1 To Len(text) char = Mid(text, i, 1 ) Ako nije dictionary.Exists(char) Onda dictionary.Add char, Ništa rezultat = rezultat & char End If Next RemoveDupeChars = rezultat skup rječnik = Ništa Kraj Funkcija

    Da biste umetnuli kod funkcije u vašu radnu knjigu, koraci su potpuno isti kao u prethodnom primjeru.

    Sintaksa funkcije RemoveDupeChars

    Sintaksa ove prilagođene funkcije je jednostavna koliko je to moguće - potreban je samo jedan argument:

    RemoveDupeChars(text)

    Gdje je text niz ili ćelija iz koje želite za uklanjanje duplikata 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 korištenju RemoveDupeWords vrijedi za RemoveDupeChars . Dakle, bez odlaskapreviše u teoriji, idemo direktno na primjer.

    Da izbrišete duple znakove iz stupca A koji počinje 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 tipove znakova uključujući slova, cifre i posebne simbole:

    Savjet. Ako su vaši znakovi odvojeni jedan od drugog nekim razdjelnikom kao što je razmak, zarez ili crtica, tada koristite funkciju RemoveDupeWords kao što je prikazano u prethodnom primjeru.

    VBA makro za uklanjanje istih znakova iz ćelije

    Poput RemoveDupeWords , funkcija RemoveDupeChars se također može pozvati iz makronaredbe:

    Javno Sub RemoveDupeChars2() Zatamnjena ćelija kao raspon za svaku ćeliju u aplikaciji.Odabir cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Budući da ovaj UDF ne koristi nikakav graničnik, nećete morati vršiti nikakva podešavanja u kod.

    Napomena. Da bi makro radio, njegov kod i kod RemoveDupeChars UDF moraju biti postavljeni na isti modul u VBA editoru.

    Kako koristiti makro

    Pod pretpostavkom da ste već umetnuli kod makroa u svoju radnu knjigu ili otvorili naš uzorak radne knjige koja sadrži kod, pokrenite makro na ovaj način.

    1. Izaberite raspon ćelija iz kojih želite da uklonite ponovljene znakove.
    2. Pritisnite Alt + F8 da otvorite Makro dijalogokvir.
    3. Na listi makronaredbi odaberite RemoveDupeChars2 .
    4. Kliknite Pokreni .

    Uklonite duple podnizove pomoću Ultimate Suite-a

    Na početku ovog vodiča je spomenuto da Microsoft Excel nema ugrađenu funkciju za uklanjanje duplikata unutar ćelije. Ali naš Ultimate Suite radi!

    Možete ga pronaći u padajućem izborniku Uklanjanje duplikata na kartici Ablebits Data , u Dedupe grupa. Ako se opcija Remove Duplicate Substrings ne pojavi u vašem Excelu, provjerite da li imate instaliranu najnoviju verziju Ultimate Suite-a (besplatnu probnu verziju možete preuzeti ovdje).

    Da biste uklonili ponovljene riječi ili tekst iz više ćelija za 5 sekundi (sekundu po koraku :), ovo je ono što trebate učiniti:

    1. Odaberite svoje izvorne podatke i pokrenite Uklonite duple podnizove alat.
    2. Odredite razdjelnik .
    3. Definirajte da li ćete uzastopne graničnike tretirati kao jedan (podrazumevano).
    4. Odaberite hoćete li izvršiti pretragu mala i mala slova ili velika i mala slova .
    5. Kliknite Ukloni .

    Gotovo! Bez petljanja sa VBA ili formulama, samo brzi i precizni rezultati.

    Da biste saznali više o ovom sjajnom dodatku, posjetite njegovu početnu stranicu. Ili još bolje, preuzmite probnu verziju ispod i isprobajte!

    Tako možete ukloniti duplikat teksta u ćeliji.Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!

    Dostupna preuzimanja

    Primjeri za uklanjanje duplikata u ćeliji (.xlsm datoteka)

    Ultimate Suite 14 -dnevna potpuno funkcionalna verzija (.exe datoteka)

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.