INHOUDSOPGAWE
Daar is drie maniere om duplikate binne 'n sel in Excel te vind en uit te vee. Kies net die een wat die beste vir jou werk.
Wanneer dit gaan oor die verwydering van duplikaatwaardes of rye, bied Microsoft Excel 'n verskeidenheid verskillende opsies. Maar wanneer dit kom by die verwydering van identiese teks binne 'n gegewe sel, bied Excel ... niks. Geen gereedskap, geen kenmerke, geen formules, geen niks. Sal dit ons keer om ons doelwit te bereik? In geen geval nie. As Excel nie die funksie het wat ons nodig het nie, kom ons gaan skryf ons eie een :)
Hoe om herhaalde woorde in Excel-sel te verwyder
Probleem : Jy het dieselfde woorde of teksstringe in 'n sel en wil graag die tweede en alle daaropvolgende herhalings verwyder.
Oplossing : 'n pasgemaakte gebruikergedefinieerde funksie of VBA-makro.
Gebruikergedefinieerde funksie om duplikate binne 'n sel te verwyder
Om duplikaatteks in 'n sel uit te skakel, kan jy die volgende gebruikergedefinieerde funksie (UDF) gebruik , genaamd RemoveDupeWords :
Funksie RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim woordeboek As Object Dim x, part Stel woordeboek = CreateObject ( "Scripting.Dictionary") woordeboek .CompareMode = vbTeksVergelyk Vir Elke x In Split(text, delimiter) deel = Trim(x) As deel "" En Nie woordeboek nie.Bestaan(deel) Dan woordeboek.Voeg deel by, Niks Einde As Volgende As woordeboek.Tel > 0 Dan RemoveDupeWords = Sluit aan (woordeboek.sleutels,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Niks Einde FunksieHoe om die funksie se kode in jou werkboek in te voeg
Om die bogenoemde kode by jou Excel te voeg, is dit wat jy moet doen:
- Druk Alt + F11 om die Visual Basic-redigeerder oop te maak.
- Resklik op ThisWorkbook in die linkerpaneel en kies Voeg in > Module .
- Plak bogenoemde kode in die Kode -venster.
Vir meer inligting, sien asseblief Hoe om VBA in te voeg kode in Excel.
RemoveDupeWords-funksiesintaksis
Ons nuutgeskepte funksie vir die verwydering van duplikaatteks in 'n sel het die volgende sintaksis:
RemoveDupeWords(text, [delimiter])Where :
- Teks (vereis) - 'n string of sel waaruit jy herhaalde teks wil uitvee.
- Delimiter (opsioneel) - die afbakening waarmee die herhaalde teks geskei word. As dit weggelaat word, word 'n spasie vir die skeidingsteken gebruik.
Die funksie is nie hooflettersensitief nie , wat beteken dat kleinletters en hoofletters as dieselfde karakters hanteer word.
Hoe om die RemoveDupeWords-funksie te gebruik
Sodra die funksie se kode by jou werkboek gevoeg is, kan jy dit in jou formules gebruik op dieselfde manier as wat jy Excel se ingeboude funksies gebruik.
Begin net om die funksie se naam na die gelykteken te tik, en dit sal in die formule intellisense verskyn. Dubbelklik op die funksie, en jy sal dit hêin 'n sel geplaas word. Definieer die argumente, tik die slothakies, druk Enter , en jou formule is voltooi.
Byvoorbeeld, om duplikaatwoorde wat deur 'n komma en 'n spasie van A2 geskei is, te skrap, voer die onderstaande formule in B2 in, en sleep dit dan af deur soveel selle as wat nodig is:
=RemoveDupeWords(A2, ", ")
As gevolg hiervan sal jy 'n lys unieke woorde of substringe hê wat geskei word deur 'n komma en spasie :
As jy eerder 'n komma-geskeide lys wil kry, gebruik dan slegs 'n komma vir die skeidingsteken :
=RemoveDupeWords(A2, ",")
As jou brondata deur 'n spasie geskei word, moet die tweede argument " " wees of weggelaat word:
=RemoveDupeWords(A2)
Soos enige ander Excel-funksie, herbereken ons UDF outomaties wanneer die brondata verander, so jou resultate sal altyd op datum wees.
VBA-makro om duplikaatteks van verskeie selle gelyktydig uit te vee
As jy herhaalde teks van verskeie selle op een slag wil verwyder, dan kan jy die RemoveDupeWords -funksie van m binne 'n makro. In hierdie geval is die skeidingsteken hardkodeer, en jy sal die makro se kode moet opdateer elke keer as die skeidingsteken verander. Alternatiewelik kan jy 'n paar kodevariasies vir die mees algemene afbakenings skryf, sê 'n spasie, komma of komma en spasie, en jou makro's betekenisvolle name gee, bv. RemoveDupesDelimSpace .
Die makro se kode is soos volg:
Publieke Sub RemoveDupeWords2() Dim sel As Omvang Vir Elke sel In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubIn die bogenoemde kode is die skeidingsteken 'n komma en spasie . Om 'n ander skeidingsteken te gebruik, vervang ", " met 'n ander karakter(s) in hierdie kodereël:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Let wel. Vir die makro om te werk, moet sy kode en die RemoveDupeWords-funksie se kode op dieselfde module geplaas word.
Hoe om die makro te gebruik
Voeg die makro se kode in jou eie werkboek in of maak ons voorbeeldwerkboek oop met die kode, en voer dan die volgende stappe uit om die makro te laat loop.
- Kies 'n reeks selle waaruit jy herhaalde teks wil verwyder.
- Druk Alt + F8 om die Makro dialoogkassie oop te maak.
- In die lys makro's, kies RemoveDupeWords2 .
- Klik Run .
Vir meer besonderhede, sien asseblief Hoe om voer 'n makro in Excel uit.
Let wel. Omdat 'n makro se handeling nie ongedaan gemaak kan word nie , beveel ons sterk aan dat jy jou werkboek stoor net voordat jy die makro gebruik. Op hierdie manier, as iets verkeerd loop, kan jy eenvoudig die werkboek toemaak en heropen, en jy sal terug wees na presies waar jy was. Of jy kan net 'n kopie maak van die werkblad(e) wat deur die makro beïnvloed kan word.
Hoe om duplikaatkarakters in 'n sel te verwyder
Probleem : Jy het veelvuldige voorkoms van dieselfde karakter in 'n sel, terwyl elkesel moet slegs 'n enkele voorkoms van 'n gegewe karakter bevat.
Oplossing : 'n pasgemaakte gebruikergedefinieerde funksie of VBA-makro.
Gebruikergedefinieerde funksie om herhaalde karakters uit te vee
Om gedupliseerde karakters binne 'n sel te verwyder met slegs die eerste voorkoms, kan jy die volgende gebruikergedefinieerde funksie gebruik, genaamd RemoveDupeChars :
Funksie RemoveDupeChars(text As String ) As String Dim woordeboek As Object Dim char As String Dim resultaat As String Set dictionary = CreateObject ( "Scripting.Dictionary") Vir i = 1 To Len(text) char = Mid(text, i, 1) ) Indien Nie woordeboek nie.Bestaan(char) Dan woordeboek.Voeg char, Niks resultaat = resultaat & char End If Next RemoveDupeChars = resultaat Stel woordeboek = Niks Einde FunksieOm die funksie se kode in jou werkboek in te voeg, is die stappe presies dieselfde as in die vorige voorbeeld.
RemoveDupeChars funksie sintaksis
Die sintaksis van hierdie pasgemaakte funksie is so eenvoudig as wat dit moontlik kan wees - net een argument word vereis:
RemoveDupeChars(teks)Waar teks 'n string of sel is waaruit jy wil om duplikaatkarakters te verwyder.
Die funksie is hooflettersensitief en hanteer kleinletters en hoofletters as verskillende karakters.
Hoe om RemoveDupeChars-funksie te gebruik
Alles wat ons gesê het oor die gebruik van RemoveDupeWords is waar vir RemoveDupeChars . Dus, sonder om te gaante veel in teorie, kom ons gaan reguit na 'n voorbeeld.
Om duplikaatkarakters uit kolom A wat in A2 begin te skrap, voer hierdie formule in B2 in en kopieer dit af:
=RemoveDupeChars(A2)
Soos jy in die prent hieronder kan sien, hanteer die funksie verskillende karaktertipes suksesvol, insluitend letters, syfers en spesiale simbole:
Wenk. As jou karakters van mekaar geskei word deur een of ander skenner soos 'n spasie, komma of koppelteken, gebruik dan die RemoveDupeWords -funksie soos in die vorige voorbeeld getoon.
VBA-makro om dieselfde karakters uit 'n sel te verwyder
Soos RemoveDupeWords , kan die RemoveDupeChars -funksie ook van binne 'n makro geroep word:
Public Sub RemoveDupeChars2() Dim sel as omvang vir elke sel In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Volgende einde SubOmdat hierdie UDF geen afbakener gebruik nie, hoef jy nie enige aanpassings te maak in die kode.
Let wel. Vir die makro om te werk, moet sy kode en die kode van RemoveDupeChars UDF op dieselfde module in die VBA-redigeerder geplaas word.
Hoe om die makro te gebruik
Gestel jy het reeds die makro se kode in jou werkboek ingevoeg of ons voorbeeldwerkboek wat die kode bevat oopgemaak het, begin die makro op hierdie manier.
- Kies 'n reeks selle waaruit jy herhaalde karakters wil verwyder.
- Druk Alt + F8 om die Makro -dialoog oop te maak.boks.
- In die lys makro's, kies RemoveDupeChars2 .
- Klik Run .
Verwyder duplikaat substringe met Ultimate Suite
Aan die begin van hierdie tutoriaal is genoem dat Microsoft Excel nie 'n ingeboude kenmerk het om duplikate binne 'n sel te verwyder nie. Maar ons Ultimate Suite doen!
Jy kan dit vind in die Duplicate Remover -aftreklys op die Ablebits Data -oortjie, in die Dedupe groep. As die Verwyder duplikaat substringe opsie nie in jou Excel verskyn nie, maak seker dat jy die nuutste weergawe van Ultimate Suite geïnstalleer het ('n gratis proeflopie kan hier afgelaai word).
Om herhaalde woorde of teks uit verskeie selle binne 5 sekondes te verwyder ('n sekonde per stap :), is dit wat jy moet doen:
- Kies jou brondata en begin die Verwyder duplikaat substringe -nutsding.
- Spesifiseer die skenner .
- Definieer of opeenvolgende skeidingstekens as een behandel moet word (verstek).
- Kies of jy hooflettergevoelig of hooflettergevoelig soektog wil uitvoer.
- Klik Verwyder .
Klaar! Geen gevroetel met VBA of formules nie, net vinnige en akkurate resultate.
Om meer te wete te kom oor hierdie wonderlike byvoeging, besoek asseblief sy tuisblad. Of selfs beter, laai 'n evalueringsweergawe hieronder af en probeer dit!
Dis hoe om duplikaatteks in 'n sel te verwyder.Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!
Beskikbare aflaaie
Voorbeelde om duplikate in sel (.xlsm-lêer) te verwyder
Ultimate Suite 14 -dag ten volle funksionele weergawe (.exe-lêer)