Note: The other languages of the website are Google-translated. Back to English

Cum se elimină caractere sau cuvinte duplicate în șirul unei celule?

Presupunând că există caractere sau cuvinte duplicate în fiecare celulă și doriți să eliminați duplicatele și să lăsați numai caractere sau cuvinte unice. Cum ați putea rezolva această problemă în Excel?

Eliminați caracterele duplicate ale șirului de text cu funcția definită de utilizator

Eliminați cuvintele duplicate separate prin punctuație cu funcția definită de utilizator


săgeată albastru dreapta balon Eliminați caracterele duplicate ale șirului de text cu funcția definită de utilizator

Dacă aveți o listă de șiruri de text, acum, trebuie să eliminați caracterele duplicate, după cum se arată în următoarea captură de ecran. Aici, pot vorbi despre un cod VBA pentru a face față acestuia.

doc-remove-duplicate-caractere-1

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Fereastra Microsoft Visual Basic pentru aplicații.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: eliminați caracterele duplicate ale șirului de text dintr-o celulă

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function

3. Apoi salvați și închideți acest cod, reveniți la foaia de lucru și introduceți această formulă = removedupes1 (A2) (A2 este celula de date din care doriți să eliminați duplicatele) într-o celulă goală pe lângă datele dvs., consultați captura de ecran:

doc-remove-duplicate-caractere-1

4. Și apoi trageți mânerul de umplere peste celulele de pe care doriți să aplicați această formulă, toate caracterele duplicate au fost eliminate din fiecare celulă imediat.

doc-remove-duplicate-caractere-1


săgeată albastru dreapta balon Eliminați cuvintele duplicate separate prin punctuație cu funcția definită de utilizator

Dacă există câteva cuvinte care sunt separate de anumite semne de punctuație într-o celulă, puteți elimina, de asemenea, cuvintele duplicate după cum doriți. Vă rugăm să efectuați următorii pași:

1. Țineți apăsată tasta ALT + F11 tastele pentru a deschide Fereastra Microsoft Visual Basic pentru aplicații.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: eliminați cuvintele duplicate separate prin punctuația unei celule

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby Extendoffice
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function

3. Apoi salvați și închideți acest cod, reveniți la foaia de lucru și introduceți această formulă = RemoveDupes2 (A2, ",") într-o celulă goală lângă datele dvs., consultați captura de ecran:

doc-remove-duplicate-caractere-1

4. Apoi copiați formula în celulele necesare și toate cuvintele duplicate au fost eliminate din fiecare celulă. Vedeți captura de ecran:

doc-remove-duplicate-caractere-1

notițe: În formula de mai sus, A2 indică celula pe care doriți să o utilizați, iar virgula (,) reprezintă semnul de punctuație care separă cuvintele dintr-o celulă, îl puteți schimba în orice alte punctuații în funcție de nevoile dvs.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (66)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încă stricat... de fapt nu arată nimic. Iată datele mele celulare: 27000,De bază,Produse,Materiale,Din,Lemn,Piatră,Pământ,Materiale brute,27100,De bază,Pădure,Produse,Generale,27110,De bază,Pădure,Produse,Greere,Produse,27120,De bază ,Pădure,Produse,Lemn,Culoză,27200,Sticlă Este evident că există niște dupe. Lasă celula goală. Gânduri?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu contează, sunt prost. Deoarece am vrut doar cuvinte extrase, am redenumit modulul RemoveDupes, dar nu am schimbat RemoveDupes mai târziu în cod. Remediat, lovindu-se cu ciocanul....
Acest comentariu a fost redus la minimum de moderatorul de pe site
Și am combinat RemoveDupes cu ConCat (bunătatea VBA, nu CON(I-SUCK-BECAUSE-I'M-MICROSOFT)CATENATE) în asta: =RemoveDupes(ConCat(",",G495:G502),",") deci mi-a tras celulele înăuntru și apoi i-a șters pe toți înșelătorii. Mulțumim pentru RemoveDupes, iată ConCat: Function ConCat(Delimiter As Variant, ParamArray CellRanges() As Variant) As String Dim Cell As Range, Area As Variant If IsMissing(Delimiter) Then Delimiter = "" Pentru fiecare zonă din CellRanges If TypeName( Area) = "Range" Apoi pentru fiecare celulă din zonă Dacă Len(Cell.Value) Atunci ConCat = ConCat & Delimiter & Cell.Value Next Else ConCat = ConCat & Delimiter & Area End If Next ConCat = Mid(ConCat, Len(Delimiter) ) + 1) Funcție de sfârșit
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am încercat soluția dvs. „Eliminați cuvintele duplicate separate prin punctuație cu funcția definită de utilizator” și funcționează excelent pentru mai multe cuvinte dintr-o celulă, DAR nu îmi rezolvă complet problema. Am o celulă care are mai multe valori și vreau să compar cu o altă celulă cu mai multe valori și apoi o pun să elimine duplicatele care există între cele două celule. Există vreo modalitate de a face asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
la fel si aici va rog ajutati
Acest comentariu a fost redus la minimum de moderatorul de pe site
mai este thread-ul asta? Aș aprecia foarte mult o perspectivă cu această funcție VBA.. întrebările mele au de-a face cu codul, unde, dacă este cazul, trebuie să-i instruiesc să găsească punctuația specifică ca delimitator.. dacă ar fi să folosesc „@” ca punctuația?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Sfatul tău este uimitor! Am sortat 58,400 de înregistrări în aproximativ 2 minute și am economisit o săptămână (sau mai mult) de muncă. Dublatele mele au fost un pic mai greu să transform acest exemplu „V&O Liquid Fuel Lantern 13-1/2in blk fuel lantern” în acest „V&O Liquid Fuel Lantern 13-1/2in blk” vă mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, vă rog, am nevoie de ajutorul vostru, am încercat codul dvs., dar nu a funcționat, poate pentru că am numere, am numere de telefon duplicat separate prin virgule Vă rog spuneți-mi ce să fac. Mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
la fel si aici va rog ajutati
Acest comentariu a fost redus la minimum de moderatorul de pe site
GENIAL multumesc! mulțumesc! mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Minunat, multumesc!......
Acest comentariu a fost redus la minimum de moderatorul de pe site
Omule, am nevoie de ajutorul tău. Ce ar trebui să fac dacă vreau să extrag duplicatul? În A1 (asdfghjiklkk) Deci k este un caracter duplicat Vreau A2 (k) ce ar trebui să fac?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să ajustez funcția dacă există un anumit cuvânt pe care vreau să-l păstrez duplicat în timp ce restul nu sunt duplicate?
Acest comentariu a fost redus la minimum de moderatorul de pe site
La fel ca să economisesc, mulțumesc foarte mult pentru acest ghid, mi-a economisit multă muncă! :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru este foarte util. L-am încercat și la mine funcționează ca excepție. Excelent!!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aceasta este o soluție minunată și simplă pentru a găsi fraze duplicate într-o singură celulă, mult mai ușoară decât unele dintre soluțiile macro îndelungate pe care le-am găsit în timp ce căutam un răspuns la problema mea, mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru acest cod - m-a economisit mult timp.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am date de genul 1. Afișați mai jos într-o singură celulă și vreau să îmi placă 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, 123029, 30771237, 8813073653 cum ar fi:- ZERPUR,MAHENDRAGARH, HARYANA-9034509168, XNUMX, XNUMX Mulțumiri și salutări Hanuman Singh XNUMX
Acest comentariu a fost redus la minimum de moderatorul de pe site
invata-ma cum? trebuie sa stii si asta..
Acest comentariu a fost redus la minimum de moderatorul de pe site
putem afla poziția primei litere mici


Examen - RAMSHsJHSAhsjDDD ------Vreau să știu poziția primei litere mici prin formula = s
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Meharban,
Puteți aplica următoarea formulă matrice pentru a obține poziția primei litere mici:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Vă rugăm să nu uitați să apăsați simultan tastele Ctrl + Shift + Enter.


Sper că te poate ajuta, mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Skyyang

functioneaza corect.....
de fapt imi doream acelasi lucru..

mulţumesc mult !!


Meharban singh prieten
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum să eliminați duplicatele șirurilor de caractere potrivite... vă rog să-mi spuneți


Salutari,
Kiran
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Kiran,
Poți să dai un exemplu al problemei tale? Sau puteți insera o imagine atașată.
Astept raspunsul tau!
Acest comentariu a fost redus la minimum de moderatorul de pe site
multumesc mult, ma ajuta mai mult. Dar vreau ceva mai mult pentru setul meu de date.
Am două date Coloane. ID și informații. În coloana Info, se repetă codul de proiect pe celulă precum „Kant-, Udp-, Akr- etc”. Pentru setul meu de date, project_id-ul este mai mare de 15 și a fost remediat. Așa că vreau să șterg repeated_id-ul din celulă, dar îl păstrez pe primul.
Exemplu: Kant-526 (0.0287),Kant-527 (0.0113),Kant-528 (0.0262) /// Kant-526 (0.0287),527 (0.0113),528 (0.0262),
Kant-543 (0.0685), Kant-544 (0.0685), Udp-097 (0.0141) /// Kant-543 (0.0685), 544 (0.0685), Udp-097 (0.0141)

Exemplu de imagine este atașat aici. Există vreo soluție pentru asta.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Imran,
Îmi pare rău că nu v-am rezolvat problema, dacă cineva are ideea bună, vă rugăm să comentați aici.
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am o soluție pe cont propriu. Am folosit formula SUBSTITUTE aici, dar este prea mare pentru datele mele. așa că repetați-l de două sau trei ori pentru a obține rezultatul potrivit.

=ÎNLOCUIT(ÎNLOCUIT("Kant-","",2), ("Kant-","",2)
Aici, primul 1 pentru al doilea Kant- înlocuire și pentru următorul fiecare Kant- eliminare doar adăugați ("Kant-","",2) suplimentar. Funcționează pentru mine. Dar prefer un VBA bun.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru cod.

Poti, te rog, sa ma ajuti? Folosesc funcția macro pentru a elimina cuvintele separate prin punctuația unei celule, dar datele mele nu sunt cuvinte, ci de fapt expresii. Ca în loc de „KTE, KTO, KTW, KTO” sunt de fapt descrieri scurte precum „pregătește o factură, revizuiește-mi e-mailurile, actualizează contractele, revizuiește-mi e-mailurile”.

Ar fi posibil să actualizați VBA pentru a elimina frazele duplicate în loc de cuvinte?

Multumesc mult, asta va fi de fapt foarte util.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Alonso,
Pentru a elimina fraza duplicată, următoarea funcție definită de utilizator vă poate ajuta, vă rugăm să încercați.

Funcția RemoveDuplicateValue(xStr ca șir, xDelim ca șir) ca șir
Dim xValue
Dacă (Len(xDelim) > 0) și (Len(Trim(xStr)) > 0) atunci
Cu CreateObject("Scripting.Dictionary")
Pentru fiecare xValue din Split (xStr, xDelim)
Dacă Trim(xValue) <> "" și nu .există(Trim(xValue)) Atunci .Add Trim(xValue), Nimic
Pagina Următoare →
Dacă .Count > 0, atunci RemoveDuplicateValue = Join(.keys, xDelim)
Se termina cu
Altfel
RemoveDuplicateValue = xStr
Final, dacă
Sfârşit Funcţia

Apoi aplicați această formulă: =RemoveDuplicateValue(A2,","), schimbați separatorul cu al dvs.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Skyyang,



Sper să primesc ajutor cu următoarea celulă:

PR-PUERTO RICO; SUA-STATELE UNITE; SUA-STATELE UNITE

Trebuie eliminat duplicatul SUA-STATELE UNITE, deoarece instrumentul meu de încărcare nu va permite duplicate.



Am folosit VBA de mai sus și mi-am înlocuit eliminatorul de formule cu „;”. Cratima cauzează această problemă? Returnează #NAME? ori de câte ori rulez formula. Sunt nou în macrocomenzi/VBA, dar m-am asigurat că fișierul a fost salvat ca fișier activat pentru macrocomenzi. Chiar am încercat să le urmăresc până la T.


Vă mulțumesc pentru toate aceste informații deja grozave, deoarece m-au ajutat cu un alt proiect pe care a trebuit să îl finalizez și orice altceva este foarte apreciat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Michael,
Vrei să elimini toate frazele duplicate dintr-o celulă și să le lași doar pe cele unice?
Așteptați cu nerăbdare răspunsul dvs.!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acesta este rezultatul pe care îl caut:

Curent: PR-PUERTO RICO; SUA-STATELE UNITE; SUA-STATELE UNITE
De dorit: PR-PUERTO RICO; SUA-STATELE UNITE

Sper că acest lucru are sens și vă mulțumesc foarte mult pentru răspunsul rapid.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Michael,
Trebuie doar să aplicați codul de mai jos și apoi să utilizați această formulă: =RemoveDuplicateValue(A2,";"). Vă rugăm să încercați, sper că vă poate ajuta!

Funcția RemoveDuplicateValue(xStr ca șir, xDelim ca șir) ca șir
Dim xValue
Dacă (Len(xDelim) > 0) și (Len(Trim(xStr)) > 0) atunci
Cu CreateObject("Scripting.Dictionary")
Pentru fiecare xValue din Split (xStr, xDelim)
Dacă Trim(xValue) <> "" și nu .există(Trim(xValue)) Atunci .Add Trim(xValue), Nimic
Pagina Următoare →
Dacă .Count > 0, atunci RemoveDuplicateValue = Join(.keys, xDelim)
Se termina cu
Altfel
RemoveDuplicateValue = xStr
Final, dacă
Sfârşit Funcţia
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumesc foarte mult. Răspunsul tău a fost mai binevenit decât ceașca mea de cafea!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, asta este foarte util
Dar vreau să elimin cuvinte întregi după „NU TO:”

de exemplu: NU CĂTRE: [C11bx1]

NU CĂTRE: [C11bx3] ca asta
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL