Táboa de contidos
Hai tres formas de buscar e eliminar duplicados nunha cela en Excel. Só tes que escoller o que che funcione mellor.
Cando se trata de eliminar valores ou filas duplicadas, Microsoft Excel ofrece unha variedade de opcións diferentes. Pero cando se trata de eliminar o texto idéntico nunha determinada cela, Excel non proporciona nada. Sen ferramentas, sen funcións, sen fórmulas, sen nada. Deteranos de acadar o noso obxectivo? En ningún caso. Se Excel non ten a función que necesitamos, imos escribir a nosa propia :)
Como eliminar palabras repetidas na cela de Excel
Problema : tes as mesmas palabras ou cadeas de texto nunha cela e queres eliminar a segunda e todas as repeticións posteriores.
Solución : unha función personalizada definida polo usuario ou macro VBA.
Función definida polo usuario para eliminar duplicados nunha cela
Para eliminar o texto duplicado nunha cela, pode utilizar a seguinte función definida polo usuario (UDF) , chamado RemoveDupeWords :
Función RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set Dictionary = CreateObject ( "Scripting.Dictionary" ) dicionario .CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" E non dicionario.Exists(part) Entón dicionario.Engadir parte, Nothing End If Next If dictionary.Count > 0 Entón RemoveDupeWords = Únete (dictionary.keys,delimitador) Else RemoveDupeWords = "" Finalizar se establece o dicionario = nada Finalizar funciónComo inserir o código da función no seu libro de traballo
Para engadir o código anterior ao seu Excel, isto é o que debe facer:
- Preme Alt + F11 para abrir o Editor de Visual Basic.
- No panel esquerdo, faga clic co botón dereito en ThisWorkbook e seleccione Inserir > Módulo .
- Pega o código anterior na xanela Código .
Para obter máis información, consulta Como inserir VBA código en Excel.
Sintaxe da función EliminarDupeWords
A nosa función recentemente creada para eliminar texto duplicado nunha cela ten a seguinte sintaxe:
RemoveDupeWords(texto, [delimitador])Onde :
- Texto (obrigatorio): unha cadea ou cela da que desexa eliminar o texto repetido.
- Delimitador (opcional) - o delimitador polo que está separado o texto repetido. Se se omite, utilízase un espazo para o delimitador.
A función non distingue entre maiúsculas e minúsculas , o que significa que as letras minúsculas e maiúsculas trátanse como os mesmos caracteres.
Como usar a función RemoveDupeWords
Unha vez que se engade o código da función ao teu libro de traballo, podes usalo nas túas fórmulas do mesmo xeito que usas as funcións integradas de Excel.
Só ten que comezar a escribir o nome da función despois do signo igual e aparecerá na fórmula intellisense. Fai dobre clic na función e terásinserido nunha cela. Defina os argumentos, escriba o paréntese de peche, prema Intro e completarase a fórmula.
Por exemplo, para eliminar palabras duplicadas separadas por coma e espazo de A2, introduza a seguinte fórmula en B2 e arrástrea cara abaixo por tantas celas como sexa necesario:
=RemoveDupeWords(A2, ", ")
Como resultado, terá unha lista de palabras ou subcadeas únicas separadas por un coma e espazo :
Se prefire obter unha lista separada por comas, use só unha coma para o delimitador :
=RemoveDupeWords(A2, ",")
Se os datos de orixe están separados por un espazo , o segundo argumento debería ser " " ou omitido:
=RemoveDupeWords(A2)
Como calquera outra función de Excel, a nosa UDF recalcula automaticamente cando cambian os datos de orixe, polo que os teus resultados estarán sempre actualizados.
Macro VBA para eliminar o texto duplicado de varias celas á vez
Se queres eliminar o texto repetido de varias celas dunha soa vez, podes chamar á función RemoveDupeWords desde m dentro dunha macro. Neste caso, o delimitador está codificado, e terás que actualizar o código da macro cada vez que cambie o delimitador. Alternativamente, pode escribir algunhas variacións de código para os delimitadores máis comúns, por exemplo, un espazo, coma ou coma e espazo, e darlle ás súas macros nomes significativos, p. RemoveDupesDelimSpace .
O código da macro é o seguinte:
Public Sub RemoveDupeWords2() Dim cell Como intervalo para cada cela en Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubNo código anterior, o delimitador é unha coma e espazo . Para usar un delimitador diferente, substitúe ", " por outro(s) carácter(s) nesta liña de código:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Nota. Para que a macro funcione, o seu código e o código da función RemoveDupeWords deben colocarse no mesmo módulo.
Como usar a macro
Insira o código da macro no seu propio libro de traballo ou abra o noso libro de exemplo co código e, a continuación, realice os seguintes pasos para executar a macro.
- Seleccione un intervalo de celas das que desexa eliminar o texto repetido.
- Preme Alt + F8 para abrir a caixa de diálogo Macro .
- Na lista de macros, seleccione EliminarDupeWords2 .
- Faga clic en Executar .
Para obter máis detalles, consulte Como executar unha macro en Excel.
Nota. Dado que a acción dunha macro non se pode desfacer , recomendámosche encarecidamente que garde o teu libro de traballo xusto antes de usar a macro. Deste xeito, se algo sae mal, podes simplemente pechar e reabrir o libro de traballo e volverás exactamente onde estabas. Ou pode simplemente facer unha copia das follas de traballo que poden verse afectadas pola macro.
Como eliminar os caracteres duplicados nunha cela
Problema : ten varias aparicións do mesmo carácter nunha cela, mentres que cada unhaa cela só debe conter unha única aparición dun carácter determinado.
Solución : unha función personalizada definida polo usuario ou macro VBA.
Función definida polo usuario para eliminar caracteres repetidos
Para eliminar os caracteres duplicados dunha cela mantendo só as primeiras aparicións, pode utilizar a seguinte función definida polo usuario, chamada RemoveDupeChars :
Función 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 ) Se non dicionario.Existe(car) Entón dicionario.Engadir char, Nada resultado = resultado & char End If Next RemoveDupeChars = result Set dictionary = Nothing End FunctionPara inserir o código da función no seu libro de traballo, os pasos son exactamente os mesmos que no exemplo anterior.
Sintaxe da función RemoveDupeChars
A sintaxe desta función personalizada é tan sinxela como pode ser - só se require un argumento:
RemoveDupeChars(text)Onde text é unha cadea ou cela da que desexa para eliminar caracteres duplicados.
A función é distingue entre maiúsculas e minúsculas e trata as letras minúsculas e maiúsculas como caracteres diferentes.
Como usar a función RemoveDupeChars
Todo o que dixemos sobre o uso de RemoveDupeWords é certo para RemoveDupeChars . Así, sen irdemasiado en teoría, imos directamente a un exemplo.
Para eliminar caracteres duplicados da columna A que comeza en A2, introduce esta fórmula en B2 e cópiaa:
=RemoveDupeChars(A2)
Como podes ver na imaxe de abaixo, a función xestiona correctamente diferentes tipos de caracteres, incluíndo letras, díxitos e símbolos especiais:
Consello. Se os teus caracteres están separados entre si por algún delimitador como un espazo, coma ou guión, utiliza a función EliminarPalabrasDupe como se mostra no exemplo anterior.
Macro VBA para eliminar os mesmos caracteres dunha cela
Como RemoveDupeWords , a función RemoveDupeChars tamén se pode chamar desde unha macro:
Pública Sub RemoveDupeChars2() Dim cell As Range For Each Cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubDebido a que esta UDF non usa ningún delimitador, non terás que facer ningún axuste en o código.
Nota. Para que a macro funcione, o seu código e o código de RemoveDupeChars UDF deben colocarse no mesmo módulo no editor VBA.
Como usar a macro
Asumindo que xa inseriches o código da macro no teu libro de traballo ou abriu o noso libro de exemplo que contén o código, inicia a macro deste xeito.
- Seleccione un intervalo de celas das que desexa eliminar os caracteres repetidos.
- Preme Alt + F8 para abrir o diálogo Macro caixa.
- Na lista de macros, seleccione RemoveDupeChars2 .
- Faga clic en Executar .
Eliminar subcadeas duplicadas con Ultimate Suite
Ao comezo deste tutorial, mencionouse que Microsoft Excel non ten unha función integrada para eliminar duplicados nunha cela. Pero a nosa Ultimate Suite si!
Podes atopalo no menú despregable Removedor de duplicados da pestana Datos de Ablebits , na pestana Deduplicar grupo. Se a opción Eliminar subcadeas duplicadas non aparece no teu Excel, asegúrate de ter instalada a última versión de Ultimate Suite (pódese descargar aquí unha proba gratuíta).
Para eliminar palabras ou texto repetidos de varias celas en 5 segundos (un segundo por paso :), isto é o que cómpre facer:
- Seleccione os datos de orixe e inicie o Ferramenta Eliminar subcadeas duplicadas .
- Especifique o delimitador .
- Define se se trata de delimitadores consecutivos como un único (predeterminado).
- Escolle se queres realizar unha busca distingue entre maiúsculas e minúsculas ou non distingue entre maiúsculas e minúsculas .
- Fai clic en Eliminar .
Feito! Sen xogar con VBA ou fórmulas, só con resultados rápidos e precisos.
Para obter máis información sobre este fantástico complemento, visita a súa páxina de inicio. Ou aínda mellor, descarga unha versión de avaliación a continuación e próbaa!
Así é como eliminar o texto duplicado nunha cela.Grazas por ler e espero verte no noso blog a próxima semana!
Descargas dispoñibles
Exemplos para eliminar duplicados na cela (ficheiro .xlsm)
Ultimate Suite 14 -day versión totalmente funcional (ficheiro .exe)