Taula de continguts
Hi ha tres maneres de trobar i suprimir duplicats dins d'una cel·la a Excel. Només heu de triar la que us convingui millor.
Quan es tracta d'eliminar valors o files duplicades, Microsoft Excel ofereix una varietat d'opcions diferents. Però quan es tracta d'eliminar el text idèntic dins d'una cel·la determinada, Excel no proporciona... res. Sense eines, sense funcions, sense fórmules, sense res. Ens impedirà assolir el nostre objectiu? En cap cas. Si Excel no té la funció que necessitem, anem a escriure la nostra pròpia :)
Com eliminar paraules repetides a la cel·la d'Excel
Problema : teniu les mateixes paraules o cadenes de text en una cel·la i voleu eliminar la segona i totes les repeticions posteriors.
Solució : una funció personalitzada definida per l'usuari o macro VBA.
Funció definida per l'usuari per eliminar els duplicats d'una cel·la
Per eliminar el text duplicat d'una cel·la, podeu utilitzar la següent funció definida per l'usuari (UDF) , anomenada RemoveDupeWords :
Funció RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Diccionari Dim As Object Dim x, part Set Dictionary = CreateObject ( "Scripting.Dictionary" ) diccionari .CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" I not dictionary.Exists(part) Then dictionary.Afege part, Nothing End If Next If dictionary.Count > 0 Aleshores RemoveDupeWords = Unir-se (diccionari.claus,delimitador) Else RemoveDupeWords = "" Finalitzar si estableix el diccionari = Res Finalitzar la funcióCom inserir el codi de la funció al vostre llibre de treball
Per afegir el codi anterior al vostre Excel, això és el que heu de fer:
- Premeu Alt + F11 per obrir l'Editor de Visual Basic.
- Al panell esquerre, feu clic amb el botó dret a ThisWorkbook i seleccioneu Insereix > Mòdul .
- Enganxeu el codi anterior a la finestra Codi .
Per obtenir més informació, vegeu Com inserir VBA codi a Excel.
Sintaxi de la funció EliminaDupeWords
La nostra funció recentment creada per eliminar el text duplicat d'una cel·la té la sintaxi següent:
RemoveDupeWords(text, [delimitador])On :
- Text (obligatori): una cadena o cel·la de la qual voleu suprimir el text repetit.
- Delimitador (opcional) - el delimitador pel qual està separat el text repetit. Si s'omet, s'utilitza un espai per al delimitador.
La funció no distingeix entre majúscules , és a dir, que les minúscules i les majúscules es tracten com els mateixos caràcters.
Com utilitzar la funció RemoveDupeWords
Un cop afegit el codi de la funció al vostre llibre de treball, podeu utilitzar-lo a les vostres fórmules de la mateixa manera que feu servir les funcions integrades d'Excel.
Només heu de començar a escriure el nom de la funció després del signe igual i apareixerà a la fórmula intellisense. Feu doble clic a la funció i la tindreuinserit en una cel·la. Definiu els arguments, escriviu el parèntesi de tancament, premeu Intro i la vostra fórmula s'ha completat.
Per exemple, per eliminar paraules duplicades separades per una coma i un espai de A2, introduïu la fórmula següent a B2 i arrossegueu-la cap avall per tantes cel·les com sigui necessari:
=RemoveDupeWords(A2, ", ")
Com a resultat, tindreu una llista de paraules o subcadenes úniques separades per un coma i espai :
Si preferiu obtenir una llista separada per comes, feu servir només una coma per al delimitador :
=RemoveDupeWords(A2, ",")
Si les dades d'origen estan separades per un espai , el segon argument hauria de ser " " o ometre:
=RemoveDupeWords(A2)
Com qualsevol altra funció d'Excel, la nostra UDF torna a calcular automàticament quan canvien les dades d'origen, de manera que els vostres resultats estaran sempre actualitzats.
Macro VBA per eliminar el text duplicat de diverses cel·les alhora
Si voleu eliminar el text repetit de diverses cel·les d'una vegada, podeu trucar a la funció RemoveDupeWords des de m dins d'una macro. En aquest cas, el delimitador està codificat i haureu d'actualitzar el codi de la macro cada vegada que canviï el delimitador. Alternativament, podeu escriure algunes variacions de codi per als delimitadors més comuns, per exemple, un espai, una coma o una coma i un espai, i donar noms significatius a les vostres macros, p. RemoveDupesDelimSpace .
El codi de la macro és el següent:
Public Sub RemoveDupeWords2() Dim cel·la com a rang per a cada cel·la a Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubAl codi anterior, el delimitador és una coma i espai . Per utilitzar un delimitador diferent, substituïu ", " amb un altre caràcter(s) en aquesta línia de codi:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Nota. Perquè la macro funcioni, el seu codi i el codi de la funció RemoveDupeWords s'han de col·locar al mateix mòdul.
Com utilitzar la macro
Inseriu el codi de la macro al vostre propi llibre de treball o obriu el nostre llibre de treball de mostra amb el codi i, a continuació, seguiu els passos següents per executar la macro.
- Seleccioneu un rang de cel·les del qual voleu eliminar el text repetit.
- Premeu Alt + F8 per obrir el quadre de diàleg Macro .
- A la llista de macros, seleccioneu RemoveDupeWords2 .
- Feu clic a Executa .
Per obtenir més informació, consulteu Com executeu una macro a Excel.
Nota. Com que l'acció d'una macro no es pot desfer , us recomanem fermament que deseu el vostre llibre de treball just abans d'utilitzar la macro. D'aquesta manera, si alguna cosa va malament, només podeu tancar i tornar a obrir el quadern de treball i tornareu exactament a on estaveu. O només podeu fer una còpia dels fulls de treball que poden veure's afectats per la macro.
Com eliminar els caràcters duplicats d'una cel·la
Problema : tens diverses ocurrències del mateix caràcter en una cel·la, mentre que cadala cel·la només hauria de contenir una única ocurrència d'un caràcter determinat.
Solució : una funció personalitzada definida per l'usuari o macro VBA.
Funció definida per l'usuari per eliminar caràcters repetits
Per eliminar caràcters duplicats dins d'una cel·la conservant només les primeres ocurrències, podeu utilitzar la següent funció definida per l'usuari, anomenada RemoveDupeChars :
Funció RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char Com String Dim resultat Com String Set dictionary = CreateObject ( "Scripting.Dictionary " ) For i = 1 To Len (text) char = Mid (text, i, 1 ) Si no és diccionari. Existeix (car) Aleshores diccionari. Afegiu char, Res resultat = resultat & char End If Next RemoveDupeChars = result Set Dictionary = Nothing End FunctionPer inserir el codi de la funció al vostre llibre de treball, els passos són exactament els mateixos que a l'exemple anterior.
RemoveDupeChars sintaxi de la funció
La sintaxi d'aquesta funció personalitzada és tan simple com pot ser possible: només cal un argument:
RemoveDupeChars(text)On text és una cadena o cel·la de la qual voleu per eliminar els caràcters duplicats.
La funció és distingeix entre majúscules i minúscules i tracta les minúscules i les majúscules com a caràcters diferents.
Com s'utilitza la funció RemoveDupeChars
Tot el que hem dit sobre l'ús de RemoveDupeWords és cert per a RemoveDupeChars . Així, sense anar-himassa en teoria, anem directament a un exemple.
Per eliminar caràcters duplicats de la columna A que comença per A2, introduïu aquesta fórmula a B2 i copieu-la:
=RemoveDupeChars(A2)
Com podeu veure a la imatge següent, la funció gestiona correctament diferents tipus de caràcters, com ara lletres, dígits i símbols especials:
Consell. Si els vostres caràcters estan separats entre si per algun delimitador , com ara un espai, una coma o un guionet, feu servir la funció RemoveDupeWords tal com es mostra a l'exemple anterior.
Macro VBA per eliminar els mateixos caràcters d'una cel·la
Com RemoveDupeWords , la funció RemoveDupeChars també es pot cridar des d'una macro:
Pública Sub RemoveDupeChars2() Dim cell Com a rang per a cada cel·la a Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubCom que aquesta UDF no utilitza cap delimitador, no haureu de fer cap ajust a el codi.
Nota. Perquè la macro funcioni, el seu codi i el codi de RemoveDupeChars UDF s'han de col·locar al mateix mòdul a l'editor VBA.
Com utilitzar la macro
Si ja heu inserit el codi de la macro al vostre llibre de treball o heu obert el nostre llibre de treball de mostra que conté el codi, inicieu la macro d'aquesta manera.
- Seleccioneu un rang de cel·les de les quals voleu eliminar els caràcters repetits.
- Premeu Alt + F8 per obrir el diàleg Macro quadre.
- A la llista de macros, seleccioneu RemoveDupeChars2 .
- Feu clic a Executa .
Eliminació de subcadenes duplicades amb Ultimate Suite
Al principi d'aquest tutorial, es va esmentar que Microsoft Excel no té una funció integrada per eliminar duplicats dins d'una cel·la. Però la nostra Ultimate Suite ho fa!
El podeu trobar al menú desplegable Duplicate Remover de la pestanya Ablebits Data , a la Dedupe grup. Si l'opció Elimina les subcadenes duplicades no apareix a l'Excel, assegureu-vos que teniu instal·lada la versió més recent d'Ultimate Suite (es pot descarregar una prova gratuïta aquí).
Per eliminar paraules o text repetits de diverses cel·les en 5 segons (un segon per pas :), això és el que heu de fer:
- Seleccioneu les vostres dades d'origen i inicieu el Elimineu l'eina de subcadenes duplicades .
- Especifiqueu el delimitador .
- Definiu si voleu tractar els delimitadors consecutius com un sol (per defecte).
- Trieu si voleu fer una cerca distingeix entre majúscules i minúscules o no distingeix entre majúscules i minúscules .
- Feu clic a Elimina .
Fet! Sense jugar amb VBA o fórmules, només resultats ràpids i precisos.
Per obtenir més informació sobre aquest fantàstic complement, visiteu la seva pàgina d'inici. O encara millor, baixa una versió d'avaluació a continuació i prova-ho!
Així és com esborra el text duplicat d'una cel·la.Us agraeixo la lectura i espero veure-us al nostre blog la setmana vinent!
Descàrregues disponibles
Exemples per eliminar duplicats a la cel·la (fitxer .xlsm)
Ultimate Suite 14 -day versió totalment funcional (fitxer .exe)