Ynhâldsopjefte
Der binne trije manieren om duplikaten te finen en te wiskjen binnen in sel yn Excel. Kies gewoan dejinge dy't it bêste foar jo wurket.
As it giet om it fuortheljen fan dûbele wearden of rigen, biedt Microsoft Excel in array fan ferskate opsjes. Mar as it giet om it fuortsmiten fan identike tekst binnen in opjûne sel, leveret Excel ... neat. Gjin ark, gjin funksjes, gjin formules, gjin neat. Sil it ús stopje om ús doel te berikken? Yn gjin gefal. As Excel net de funksje hat dy't wy nedich binne, litte wy ús eigen skriuwe :)
Hoe kinne jo werhelle wurden yn Excel-sel fuortsmite
Probleem : Jo hawwe deselde wurden of tekststrings yn in sel en wolle de twadde en alle folgjende werhellingen fuortsmite.
Oplossing : in oanpaste troch brûkers definieare funksje of VBA-makro.
Brûker-definieare funksje om duplikaten binnen in sel te ferwiderjen
Om dûbele tekst yn in sel te eliminearjen, kinne jo de folgjende troch brûkers definieare funksje (UDF) brûke. , neamd RemoveDupeWords :
Funksje RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary") wurdboek .CompareMode = vbTextCompare Foar eltse x Yn Split (tekst, delimiter) diel = Trim (x) As diel "" En Net dictionary.Exists (diel) Dan dictionary.Add diel, Nothing End As Folgjende As dictionary.Count & GT; 0 Then RemoveDupeWords = Join(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionHoe kinne jo de koade fan de funksje yn jo wurkboek ynfoegje
Om de boppesteande koade ta te foegjen oan jo Excel, dit is wat jo moatte dwaan:
- Druk op Alt + F11 om de Visual Basic Editor te iepenjen.
- Op de linker pane, rjochts-klikke op ThisWorkbook en selektearje Ynfoegje > Module .
- Paste de boppesteande koade yn it finster Code .
Sjoch foar mear ynformaasje hoe't jo VBA ynfoegje koade yn Excel.
Funksjesyntaksis fan DupeWords fuortsmite
Us nij oanmakke funksje foar it fuortheljen fan dûbele tekst yn in sel hat de folgjende syntaksis:
RemoveDupeWords(tekst, [delimiter])Wêr :
- Tekst (ferplicht) - in tekenrige of sel wêrfan jo werhelle tekst wiskje wolle.
- Delimiter (opsjoneel) - it skiedingsteken dêr't de werhelle tekst troch skieden wurdt. As it weilitten wurdt, wurdt in spaasje brûkt foar it skiedingsteken.
De funksje is net hoofdlettergefoelich , wat betsjut dat lytse en haadletters as deselde tekens behannele wurde.
Hoe kinne jo de RemoveDupeWords-funksje brûke
As de koade fan de funksje oan jo wurkboek tafoege is, kinne jo it yn jo formules op deselde wize brûke as jo de ynboude funksjes fan Excel brûke.
Begjin gewoan de namme fan 'e funksje te typen nei it lykweardich teken, en it sil ferskine yn' e formule intellisense. Dûbelklik op de funksje, en do silst hawwe itynfoege yn in sel. Definiearje de arguminten, typ de slutende heakjes, druk op Enter, en jo formule is foltôge.
Bygelyks, om dûbele wurden te wiskjen skieden troch in komma en in spaasje fan A2, Fier de ûndersteande formule yn yn B2, en sleep it dan troch safolle sellen as nedich:
=RemoveDupeWords(A2, ", ")
As resultaat sille jo in list hawwe mei unike wurden of substrings skieden troch in komma en spaasje :
As jo leaver in komma-skieden list krije wolle, brûk dan allinich in komma foar it skiedingsteken :
=RemoveDupeWords(A2, ",")
As jo boarnegegevens skieden wurde troch in spaasje , moat it twadde argumint " " wêze of weilitten:
=RemoveDupeWords(A2)
Lykas elke oare Excel-funksje wurdt ús UDF automatysk opnij berekkene as de boarnegegevens feroarje, sadat jo resultaten altyd aktueel binne.
VBA-makro om dûbele tekst út meardere sellen tagelyk te wiskjen
As jo op syk binne nei werhelle tekst út meardere sellen yn ien kear te ferwiderjen, dan kinne jo de funksje RemoveDupeWords neame m binnen in makro. Yn dit gefal, de delimiter is hardcoded, en jo moatte bywurkje de makro syn koade eltse kear de delimiter feroaret. As alternatyf, kinne jo skriuwe in pear koade fariaasjes foar de meast foarkommende delimiters, sizze, in spaasje, komma, of komma en spaasje, en jou jo makros betsjuttingsfolle nammen, f.eks. RemoveDupesDelimSpace .
De koade fan 'e makro is as folget:
Iepenbiere Sub RemoveDupeWords2() Dim sel As berik foar elke sel yn Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Folgjende ein SubYn de boppesteande koade is it skiedingsteken in komma en romte . Om in oare skiedingsteken te brûken, ferfange ", " troch in oar teken(en) yn dizze koaderigel:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Opmerking. Om de makro te wurkjen, moatte de koade en de koade fan 'e RemoveDupeWords-funksje op deselde module pleatst wurde.
Hoe kinne jo de makro brûke
Foegje de koade fan 'e makro yn jo eigen wurkboek of iepenje ús foarbyldwurkboek mei de koade, en fier dan de folgjende stappen út om de makro út te fieren.
- Selektearje in berik fan sellen wêrút jo werhelle tekst fuortsmite wolle.
- Druk op Alt + F8 om it dialoochfinster Makro te iepenjen.
- Yn de list mei makro's, selektearje RemoveDupeWords2 .
- Klik op Utfiere .
Sjoch foar mear details How to in makro útfiere yn Excel.
Opmerking. Om't de aksje fan in makro net ûngedien makke wurde kin , riede wy sterk oan om jo wurkboek te bewarjen krekt foardat jo de makro brûke. Op dizze manier, as der wat mis giet, kinne jo it wurkboek gewoan slute en opnij iepenje, en jo sille werom wêze nei krekt wêr't jo wiene. Of jo kinne gewoan in kopy meitsje fan 'e wurkblêd(en) dy't miskien wurde beynfloede troch de makro.
Hoe kinne jo dûbele tekens yn in sel fuortsmite
Probleem : Jo hawwe meardere foarkommens fan itselde karakter yn in sel, wylst elksel moat mar in inkeld foarkommen fan in opjûn karakter befetsje.
Oplossing : in oanpaste troch brûkers definieare funksje of VBA-makro.
Brûker-definieare funksje om werhelle tekens te wiskjen
Om dûbele tekens binnen in sel te ferwiderjen mei allinich de earste foarfallen, kinne jo de folgjende brûker-definieare funksje brûke, neamd RemoveDupeChars :
Funksje RemoveDupeChars(text As String) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ("Scripting.Dictionary") Foar i = 1 To Len(tekst) char = Mid(tekst, i, 1 ) As Net dictionary.Exists (char) Dan dictionary.Add char, Neat resultaat = resultaat & amp; char End If Next RemoveDupeChars = resultaat Set wurdboek = Neat Ein FunksjeOm de koade fan de funksje yn jo wurkboek yn te foegjen, binne de stappen krekt itselde as yn it foarige foarbyld.
Funksjesyntaksis fan DupeChars fuortsmite
De syntaksis fan dizze oanpaste funksje is sa ienfâldich as it kin wêze - mar ien argumint is fereaske:
RemoveDupeChars(tekst)Wêr't tekst in tekenrige of sel is wêrfan jo wolle om dûbele tekens te ferwiderjen.
De funksje is gefoelige en behannelet lytse en haadletters as ferskillende tekens.
Hoe kinne jo de funksje RemoveDupeChars brûke
Alles wat wy seine oer it gebrûk fan RemoveDupeWords is wier foar RemoveDupeChars . Dus, sûnder te geante folle yn teory, lit ús direkt nei in foarbyld komme.
Om dûbele tekens te wiskjen út kolom A begjinnend yn A2, fier dizze formule yn B2 en kopiearje it nei ûnderen:
=RemoveDupeChars(A2)
Sa't jo yn 'e ôfbylding hjirûnder kinne sjen, behannelet de funksje ferskate karaktertypen mei súkses, ynklusyf letters, sifers en spesjale symboalen:
Tip. As jo karakters fan elkoar skieden binne troch wat skiedingsteken lykas in spaasje, komma of koppelteken, brûk dan de funksje RemoveDupeWords lykas werjûn yn it foarige foarbyld.
VBA-makro om deselde tekens út in sel te ferwiderjen
Lykas RemoveDupeWords kin de funksje RemoveDupeChars ek fanút in makro oanroppen wurde:
Publyk Sub RemoveDupeChars2() Dim sel as berik foar elke sel yn Application.Selection cell.Value = RemoveDupeChars(cell.Value) Folgjende ein SubOm't dizze UDF gjin skiedingsteken brûkt, hoege jo gjin oanpassingen te meitsjen yn de koade.
Opmerking. Om de makro te wurkjen, moatte de koade en de koade fan RemoveDupeChars UDF op deselde module pleatst wurde yn 'e VBA-bewurker.
Hoe kinne jo de makro brûke
As jo oannimme dat jo de koade fan 'e makro al yn jo wurkboek ynfoege hawwe of ús foarbyldwurkboek mei de koade iepene hawwe, start de makro op dizze manier.
- Selektearje in berik fan sellen wêrút jo werhelle tekens fuortsmite wolle.
- Druk op Alt + F8 om it dialoochfinster Makro te iepenjenbox.
- Selektearje yn de list mei makro's RemoveDupeChars2 .
- Klik op Utfiere .
Dûbele substrings fuortsmite mei Ultimate Suite
Oan it begjin fan dizze tutorial waard neamd dat Microsoft Excel gjin ynboude funksje hat foar it fuortheljen fan duplikaten binnen in sel. Mar ús Ultimate Suite docht!
Jo kinne it fine yn it dellûkmenu Duplicate Remover op it ljepblêd Ablebits Data , yn it Dedupe groep. As de opsje Dûbele substrings fuortsmite net ferskynt yn jo Excel, soargje derfoar dat jo de lêste ferzje fan Ultimate Suite ynstalleare hawwe (in fergese proef kin hjir downloade wurde).
Om werhelle wurden of tekst út meardere sellen yn 5 sekonden te ferwiderjen (in sekonde per stap :), dit is wat jo moatte dwaan:
- Selektearje jo boarnegegevens en starte de Fuortsmite Duplicate Substrings ark.
- Jou de delimiter .
- Definearje oft opfolgjende skiedingstekens as ien behannele wurde (standert).
- Kies of jo hoofdlettergefoelige of hoofdlettergefoelige sykje wolle.
- Klik op Fuortsmite .
Klear! Gjin rommeljen mei VBA of formules, gewoan flugge en krekte resultaten.
Om mear te learen oer dizze geweldige tafoeging, besykje asjebleaft de thússide. Of noch better, download hjirûnder in evaluaasjeferzje en besykje it!
Sa kinne jo dûbele tekst yn in sel fuortsmite.Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!
Beskikbere downloads
Foarbylden om duplikaten te ferwiderjen yn sel (.xlsm-bestân)
Ultimate Suite 14 -day folslein funksjonele ferzje (.exe-bestân)