Com eliminar duplicats dins d'una cel·la a Excel

  • Comparteix Això
Michael Brown

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:

    1. Premeu Alt + F11 per obrir l'Editor de Visual Basic.
    2. Al panell esquerre, feu clic amb el botó dret a ThisWorkbook i seleccioneu Insereix > Mòdul .
    3. 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 Sub

    Al 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.

    1. Seleccioneu un rang de cel·les del qual voleu eliminar el text repetit.
    2. Premeu Alt + F8 per obrir el quadre de diàleg Macro .
    3. A la llista de macros, seleccioneu RemoveDupeWords2 .
    4. 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 Function

    Per 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 Sub

    Com 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.

    1. Seleccioneu un rang de cel·les de les quals voleu eliminar els caràcters repetits.
    2. Premeu Alt + F8 per obrir el diàleg Macro quadre.
    3. A la llista de macros, seleccioneu RemoveDupeChars2 .
    4. 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:

    1. Seleccioneu les vostres dades d'origen i inicieu el Elimineu l'eina de subcadenes duplicades .
    2. Especifiqueu el delimitador .
    3. Definiu si voleu tractar els delimitadors consecutius com un sol (per defecte).
    4. Trieu si voleu fer una cerca distingeix entre majúscules i minúscules o no distingeix entre majúscules i minúscules .
    5. 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)

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.