Sisukord
Excelis on lahtris olevate duplikaatide leidmiseks ja kustutamiseks kolm võimalust. Valige lihtsalt see, mis teile kõige paremini sobib.
Kui tegemist on dubleerivate väärtuste või ridade eemaldamisega, pakub Microsoft Excel hulgaliselt erinevaid võimalusi. Aga kui tegemist on identse teksti eemaldamisega antud lahtri sees, siis Excel ei paku... mitte midagi. Ei mingeid vahendeid, ei mingeid funktsioone, ei mingeid valemeid, ei midagi. Kas see takistab meid meie eesmärgi saavutamisel? Mitte mingil juhul. Kui Excelil ei ole meile vajalikku funktsiooni, siis kirjutame ise ühe :)
Kuidas eemaldada korduvad sõnad Exceli lahtrist
Probleem : Teil on ühes lahtris samad sõnad või tekstijada ja soovite eemaldada teise ja kõik järgmised kordused.
Lahendus : kohandatud kasutaja määratud funktsioon või VBA makro.
Kasutaja poolt määratud funktsioon duplikaatide eemaldamiseks lahtrist
Teksti dubleerimise kõrvaldamiseks lahtrist saate kasutada järgmist kasutaja määratud funktsiooni (UDF), mille nimi on RemoveDupeWords :
Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionKuidas sisestada funktsiooni kood oma töövihikusse
Ülaltoodud koodi lisamiseks Excelisse tuleb teha järgmist:
- Vajutage Alt + F11, et avada Visual Basic'i redaktor.
- Klõpsake vasakul paanil paremklõpsuga ThisWorkbook ja valige Sisesta > Moodul .
- Sisestage ülaltoodud kood faili Kood aken.
Lisateavet leiate jaotisest Kuidas sisestada VBA-koodi Excelis.
RemoveDupeWords funktsiooni süntaks
Meie äsja loodud funktsioon dubleeritud teksti eemaldamiseks lahtrist on järgmise süntaksiga:
RemoveDupeWords(text, [delimiter])Kus:
- Tekst (nõutav) - string või lahter, millest soovite kustutada korduvat teksti.
- Eraldaja (valikuline) - eraldaja, millega korduv tekst eraldatakse. Kui see jäetakse välja, kasutatakse eraldajana tühikut.
Funktsioon on ei sõltu suur- ja väiketähendusest , mis tähendab, et väikseid ja suuri tähti käsitletakse samade tähtedena.
Kuidas kasutada funktsiooni RemoveDupeWords
Kui funktsiooni kood on lisatud teie töövihikusse, saate seda kasutada oma valemites samamoodi nagu Exceli sisseehitatud funktsioone.
Alustage lihtsalt funktsiooni nime kirjutamist pärast võrdusmärki ja see ilmub valemi intellisense's. Tehke funktsioonil topeltklõps ja see sisestatakse lahtrisse. Määrake argumendid, sisestage sulgemisulg, vajutage Enter , ja teie valem ongi valmis.
Näiteks, et kustutada A2-st koma ja tühikuga eraldatud topelt sõnu, sisestage B2-sse alljärgnev valem ja lohistage see seejärel nii paljude lahtrite kaudu alla, kui vaja:
=RemoveDupeWords(A2, ", ")
Tulemusena saate nimekirja unikaalsetest sõnadest või alamsõnadest, mis on eraldatud tähisega koma ja tühik :
Kui soovite pigem saada komadega eraldatud nimekirja, siis kasutage käsku ainult koma eraldaja jaoks:
=RemoveDupeWords(A2, ",")
Kui teie lähteandmed on eraldatud kosmos , peaks teine argument olema " " või jäetakse ära:
=RemoveDupeWords(A2)
Nagu iga teine Exceli funktsioon, arvutab meie UDF automaatselt ümber, kui lähteandmed muutuvad, nii et teie tulemused on alati ajakohased.
VBA makro, et kustutada dubleeritud tekst korraga mitmest lahtrist
Kui soovite korraga eemaldada korduvat teksti mitmest lahtrist, siis võite kutsuda funktsiooni RemoveDupeWords funktsioon makrost. Sellisel juhul on eraldaja kõvakooditud ja te peate iga kord, kui eraldaja muutub, makro koodi uuendama. Alternatiivina võite kirjutada mõned koodivariandid kõige levinumate eraldajate jaoks, näiteks tühik, koma või koma ja tühik, ja anda oma makrole mõttekad nimed, nt. RemoveDupesDelimSpace .
Makro kood on järgmine:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubÜlaltoodud koodis on piiritleja koma ja tühik Teistsuguse eraldaja kasutamiseks asendage ", " selle koodirea teise(te) tähemärgiga (tähemärkidega):
cell.Value = RemoveDupeWords(cell.Value, ", ")
Märkus. Makro toimimiseks peavad selle kood ja funktsiooni RemoveDupeWords kood olema paigutatud samasse moodulisse.
Kuidas kasutada makrot
Sisestage makro kood oma töövihikusse või avage meie näidistöövihik koos koodiga ja seejärel tehke makro käivitamiseks järgmised toimingud.
- Valige lahtrite vahemik, millest soovite eemaldada korduvat teksti.
- Vajutage Alt + F8, et avada Makro dialoogiaknas.
- Makrode loendis valige RemoveDupeWords2 .
- Klõpsake Käivita .
Lisateavet leiate jaotisest Kuidas käivitada makrot Excelis.
Märkus. Kuna makro tegevus ei saa tagasi teha , soovitame tungivalt salvestada oma töövihik vahetult enne makro kasutamist. Nii saate, kui midagi läheb valesti, lihtsalt sulgeda ja uuesti avada töövihiku ning olete täpselt seal, kus olite. Või võite lihtsalt teha koopia töölehelt (-lehtedest), mida makro võib mõjutada.
Kuidas eemaldada dubleerivad tähemärgid lahtrist
Probleem : Teil on mitu sama tähemärgi esinemist lahtris, samas kui iga lahter peaks sisaldama ainult ühte antud tähemärki.
Lahendus : kohandatud kasutaja määratud funktsioon või VBA makro.
Kasutaja määratud funktsioon korduvate märkide kustutamiseks
Selleks, et eemaldada dubleeritud tähemärgid lahtrist, säilitades ainult esimesed esinemised, saate kasutada järgmist kasutajamääratletud funktsiooni nimega RemoveDupeChars :
Function 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, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End FunctionFunktsiooni koodi sisestamiseks teie töövihikusse on sammud täpselt samad, mis eelmises näites.
RemoveDupeChars funktsiooni süntaks
Selle kohandatud funktsiooni süntaks on nii lihtne kui võimalik - vaja on ainult ühte argumenti:
RemoveDupeChars(text)Kus tekst on string või lahter, millest soovite eemaldada dubleerivad tähemärgid.
Funktsioon on suur- ja väiketähelepanu ja käsitleb väikseid ja suuri tähti erinevate tähtedena.
Kuidas kasutada funktsiooni RemoveDupeChars
Kõik, mida me ütlesime RemoveDupeWords'i kasutamise kohta, kehtib ka järgmiste juhtumite puhul RemoveDupeChars Nii et, ilma et läheksime liiga palju teooriasse, läheme kohe näite juurde.
Et kustutada dubleerivad tähemärgid veerust A alates A2, sisestage see valem B2-sse ja kopeerige see alla:
=RemoveDupeChars(A2)
Nagu alloleval pildil näha, saab funktsioon edukalt hakkama erinevate tähemärkide, sealhulgas tähtede, numbrite ja erisümbolitega:
Vihje. Kui teie tegelased on üksteisest eraldatud mõne piiritleja nagu tühik, koma või sidekriips, siis kasutage sümbolit RemoveDupeWords funktsioon, nagu on näidatud eelmises näites.
VBA makro, et eemaldada samad tähemärgid lahtrist
Nagu RemoveDupeWords ... RemoveDupeChars funktsiooni saab kutsuda ka makrost:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubKuna see UDF ei kasuta ühtegi eraldusjoont, ei pea te koodis mingeid muudatusi tegema.
Märkus. Et makro töötaks, peavad selle kood ja RemoveDupeChars UDFi kood olema VBA redaktoris paigutatud samasse moodulisse.
Kuidas kasutada makrot
Eeldades, et olete juba sisestanud makro koodi oma töövihikusse või avanud meie näidistöövihiku, mis sisaldab koodi, käivitage makro niimoodi.
- Valige lahtrite vahemik, millest soovite eemaldada korduvad tähemärgid.
- Vajutage Alt + F8, et avada Makro dialoogiaknas.
- Makrode loendis valige RemoveDupeChars2 .
- Klõpsake Käivita .
Ultimate Suite'i abil saab eemaldada dubleeritud alamsõnu
Selle õpetuse alguses mainiti, et Microsoft Excelil ei ole sisseehitatud funktsiooni duplikaatide eemaldamiseks lahtri sees. Kuid meie Ultimate Suite'il on!
Leiad selle aadressil Duplikaadi eemaldaja rippmenüüst Ablebits andmed vahekaardil Dedupeerimine Kui Eemaldage dubleerivad alamsõnumid valik ei ilmu teie Excelis, veenduge, et teil on installitud Ultimate Suite'i uusim versioon (tasuta prooviversiooni saab alla laadida siit).
Et eemaldada korduvaid sõnu või teksti mitmest lahtrist 5 sekundi jooksul (sekund iga sammu kohta :), tuleb teha järgmist:
- Valige oma lähteandmed ja käivitage Eemaldage dubleerivad alamsõnumid tööriist.
- Täpsustage piiritleja .
- Määrake, kas ravida järjestikused eraldusjooned kui üks (vaikimisi).
- Valige, kas täita suur- ja väiketähelepanu või suur- ja väiketähelepanuta otsing.
- Klõpsake Eemaldage .
Valmis! Ei mingit VBA või valemitega vehklemist, vaid kiireid ja täpseid tulemusi.
Et rohkem teada saada selle suurepärase lisavõimaluse kohta, külastage selle kodulehte. Või veel parem, laadige alla allpool olev hindamisversioon ja proovige seda!
Nii saab eemaldada dubleeritud teksti lahtrist. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!
Saadaolevad allalaadimised
Näited duplikaatide eemaldamiseks lahtrist (.xlsm fail)
Ultimate Suite 14-päevane täisfunktsionaalne versioon (.exe fail)