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

¿Cómo eliminar caracteres o palabras duplicados en la cadena de una celda?

Supongamos que hay caracteres o palabras duplicados en cada celda, y desea eliminar los duplicados y dejar solo caracteres o palabras únicos. ¿Cómo podrías resolver este problema en Excel?

Elimine los caracteres duplicados de la cadena de texto con la función definida por el usuario

Elimine palabras duplicadas separadas por puntuación con la función definida por el usuario


flecha azul burbuja derecha Elimine los caracteres duplicados de la cadena de texto con la función definida por el usuario

Si tiene una lista de cadenas de texto, ahora debe eliminar los caracteres duplicados como se muestra en la siguiente captura de pantalla. Aquí, puedo hablar sobre un código VBA para manejarlo.

doc-eliminar-duplicados-caracteres-1

1. Mantenga pulsado el ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.

Código de VBA: elimine los caracteres duplicados de la cadena de texto en una celda

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. Luego guarde y cierre este código, regrese a la hoja de trabajo e ingrese esta fórmula = eliminardupes1 (A2) (A2 es la celda de datos de la que desea eliminar los duplicados) en una celda en blanco además de sus datos, vea la captura de pantalla:

doc-eliminar-duplicados-caracteres-1

4. Y luego arrastre el controlador de relleno a las celdas de rango a las que desea aplicar esta fórmula, todos los caracteres duplicados se han eliminado de cada celda de inmediato.

doc-eliminar-duplicados-caracteres-1


flecha azul burbuja derecha Elimine palabras duplicadas separadas por puntuación con la función definida por el usuario

Si hay algunas palabras que están separadas por ciertos signos de puntuación en una celda, también puede eliminar las palabras duplicadas como desee. Siga los siguientes pasos:

1. Mantenga pulsado el botón ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.

Código VBA: elimine las palabras duplicadas separadas por la puntuación de una celda

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. Luego guarde y cierre este código, regrese a la hoja de trabajo e ingrese esta fórmula = EliminarDupes2 (A2, ",") en una celda en blanco junto a sus datos, vea la captura de pantalla:

doc-eliminar-duplicados-caracteres-1

4. Luego, copie la fórmula en las celdas necesarias, y todas las palabras duplicadas se eliminarán de cada celda. Ver captura de pantalla:

doc-eliminar-duplicados-caracteres-1

Nota:: En la fórmula anterior, A2 indica la celda que desea usar, y la coma (,) representa el signo de puntuación que separa las palabras en una celda, puede cambiarlo por cualquier otra puntuación que necesite.


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (66)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Todavía se rompió... en realidad no muestra nada. Aquí están los datos de mi celda: 27000,Básico,Productos,Materiales,De,Madera,Piedra,Tierra,Crudo,Materiales,27100,Básico,Bosque,Productos,General,27110,Básico,Bosque,Productos,Aserradero,Productos,27120,Básico ,Bosque,Productos,Madera,Pulpa,27200,Vidrio Claramente hay algunos incautos. Deja la celda en blanco. ¿Pensamientos?
Este comentario fue minimizado por el moderador en el sitio
No importa, soy tonto. Como solo quería extraer palabras, cambié el nombre del módulo RemoveDupes, pero no cambié RemoveDupes más adelante en el código. Fijo, golpeándose a sí mismo con un martillo....
Este comentario fue minimizado por el moderador en el sitio
Y combiné RemoveDupes con ConCat (la bondad de VBA, no CON(I-SUCK-PORQUE-SOY-MICROSOFT)CATENATE) en esto: =RemoveDupes(ConCat(",",G495:G502),",") así que atrajo mis células y luego eliminó a todos los incautos. Gracias por RemoveDupes, aquí está ConCat: Function ConCat(Delimiter As Variant, ParamArray CellRanges() As Variant) As String Dim Cell As Range, Area As Variant If IsMissing(Delimiter) Then Delimiter = "" For Each Area In CellRanges If TypeName( Área) = "Rango" Luego, para cada celda en el área If Len(Cell.Value) Then ConCat = ConCat & Delimiter & Cell.Value Next Else ConCat = ConCat & Delimiter & Area End If Next ConCat = Mid(ConCat, Len(Delimiter ) + 1) Función final
Este comentario fue minimizado por el moderador en el sitio
Probé su solución "Eliminar palabras duplicadas separadas por puntuación con la función definida por el usuario" y funciona muy bien para varias palabras en una celda PERO no resuelve completamente mi problema. Tengo una celda que tiene múltiples valores y quiero compararla con otra celda con múltiples valores y luego hacer que elimine los duplicados que existen entre las dos celdas. ¿Hay una manera de hacer eso?
Este comentario fue minimizado por el moderador en el sitio
lo mismo aquí pls ayuda
Este comentario fue minimizado por el moderador en el sitio
sigue vivo este hilo? Apreciaría mucho alguna información sobre esta función de VBA ... mis preguntas tienen que ver con el código, donde, si es necesario, debo instruirlo para encontrar la puntuación específica como delimitador ... si tuviera que usar "@" como la puntuacion?
Este comentario fue minimizado por el moderador en el sitio
Tu consejo es increíble! Ordené 58,400 2 registros en aproximadamente 13 minutos y ahorré una semana (o más) de trabajo. Mis duplicados fueron un poco más difíciles de convertir este ejemplo "Linterna de combustible líquido V&O de 1-2/13 pulgadas en negro" en esta "Linterna de combustible líquido V&O de 1-2/XNUMX pulgadas en negro" gracias.
Este comentario fue minimizado por el moderador en el sitio
Hola, por favor necesito su ayuda, probé su código pero no funcionó, tal vez porque tengo números. Tengo números de teléfono duplicados separados por coma. Por favor, dígame qué hacer. Gracias.
Este comentario fue minimizado por el moderador en el sitio
lo mismo aquí pls ayuda
Este comentario fue minimizado por el moderador en el sitio
BRILLANTE gracias! ¡gracias! ¡gracias!
Este comentario fue minimizado por el moderador en el sitio
¡Increíble gracias!.....
Este comentario fue minimizado por el moderador en el sitio
hola amigo necesito tu ayuda ¿Qué debo hacer si quiero extraer el duplicado? En A1 (asdfghjiklkk) Entonces k es un carácter duplicado Quiero A2 (k) ¿Qué debo hacer?
Este comentario fue minimizado por el moderador en el sitio
¿Es posible ajustar la función si hay una determinada palabra que quiero mantener duplicada mientras que el resto no se duplica?
Este comentario fue minimizado por el moderador en el sitio
Solo me gusta ahorrar muchas gracias por esta guía, ¡me ahorró mucho trabajo! :)
Este comentario fue minimizado por el moderador en el sitio
Esto es muy útil . Lo he probado y me funciona como excepción. Excelente !!!!
Este comentario fue minimizado por el moderador en el sitio
Esta es una solución increíble y simple para encontrar frases duplicadas dentro de una sola celda, mucho más fácil que algunas de las macrosoluciones de largo aliento que encontré mientras buscaba una respuesta a mi problema, ¡gracias!
Este comentario fue minimizado por el moderador en el sitio
Gracias por este código, me ahorró mucho tiempo.
Este comentario fue minimizado por el moderador en el sitio
Tengo datos como 1. Se muestran a continuación en una sola celda y quiero que me gusten 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653 Necesito esto Me gusta: - ZERPUR, MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653 Gracias y saludos Hanuman Singh 9034509168
Este comentario fue minimizado por el moderador en el sitio
¿Enseñame como? también hay que saberlo..
Este comentario fue minimizado por el moderador en el sitio
¿Podemos averiguar la posición de la primera letra minúscula?


Examen - RAMSHsJHSAhsjDDD ------Quiero saber la posición de la primera letra minúscula por fórmula = s
Este comentario fue minimizado por el moderador en el sitio
Hola Meharban,
Puede aplicar la siguiente fórmula de matriz para obtener la posición de la primera letra minúscula:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Recuerde presionar las teclas Ctrl + Shift + Enter juntas.


Espero que pueda ayudarte, ¡gracias!
Este comentario fue minimizado por el moderador en el sitio
hola skyyang

esta funcionando correctamente.....
en realidad yo queria lo mismo..

muchas gracias !!


Meharban singh amigo
Este comentario fue minimizado por el moderador en el sitio
Cómo eliminar duplicados de cadenas coincidentes ... ¿pueden decirme por favor?


Saludos,
Kiran
Este comentario fue minimizado por el moderador en el sitio
Hola Kiran,
¿Puedes dar un ejemplo de tu problema? O puede insertar una imagen adjunta.
¡Esperamos su respuesta!
Este comentario fue minimizado por el moderador en el sitio
muchas gracias me ayuda mas Pero quiero algo más específico para mi conjunto de datos.
Tengo dos datos de Columnas. Identificación e información. En la columna de información, se repiten los ID de proyecto por celda como "Kant-, Udp-, Akr- etc". Para mi conjunto de datos, project_id es más de 15 y se arregló. Así que quiero eliminar el repeat_id de la celda pero conservar el primero.
Ejemplo: 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)

Se adjunta imagen de muestra aquí. Hay alguna solución para esto.
Este comentario fue minimizado por el moderador en el sitio
Hola Imran,
Perdón por no resolver su problema, si alguien tiene una buena idea, por favor comente aquí.
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Tengo una solución por mi cuenta. He usado la fórmula SUSTITUCIÓN aquí, pero es demasiado grande para mis datos. así que repítalo dos o tres veces para obtener el resultado adecuado.

=SUSTITUIR(SUSTITUIR("Kant-","",2), ("Kant-","",2)
Aquí, 1st 2 para el segundo reemplazo de Kant y para el siguiente, cada eliminación de Kant simplemente agregue ("Kant-","", 2) extra. Está funcionando para mí. Pero prefiero un buen VBA.
Este comentario fue minimizado por el moderador en el sitio
Gracias por el código.

¿Podrías ayudarme? Estoy usando la función macro para eliminar palabras separadas por puntuación de una celda, sin embargo, mis datos no son palabras, en realidad son frases. En lugar de "KTE, KTO, KTW, KTO", en realidad son descripciones cortas como "preparar una factura, revisar mis correos electrónicos, actualizar los contratos, revisar mis correos electrónicos".

¿Sería posible actualizar el VBA para eliminar frases duplicadas en lugar de palabras?

Muchas gracias, esto será realmente muy útil.
Este comentario fue minimizado por el moderador en el sitio
Hola Alonso,
Para eliminar la frase duplicada, la siguiente función definida por el usuario puede ayudarlo, inténtelo.

Función RemoveDuplicateValue(xStr como cadena, xDelim como cadena) como cadena
Dim xValor
Si (Len(xDelim) > 0) Y (Len(Trim(xStr)) > 0) Entonces
Con CreateObject("Scripting.Diccionario")
Para cada valor x en división (xStr, xDelim)
Si Trim(xValue) <> "" And Not .exists(Trim(xValue)) Entonces .Add Trim(xValue), Nada
Siguiente
Si .Count > 0 Entonces RemoveDuplicateValue = Join(.keys, xDelim)
End With
otro
EliminarValorDuplicado = xStr
Si terminar
Función finales

Luego aplique esta fórmula: =RemoveDuplicateValue(A2,","), cambie el separador por el suyo propio.
Este comentario fue minimizado por el moderador en el sitio
Hola skyyang,



Espero obtener ayuda con la siguiente celda:

PR-PUERTO RICO; EE.UU.-ESTADOS UNIDOS; EE. UU.-ESTADOS UNIDOS

Necesito que se elimine el duplicado de EE. UU.-ESTADOS UNIDOS, ya que mi herramienta de carga no permite duplicados.



Usé el VBA anterior y reemplacé mi delimitador de fórmula con ";". ¿El guión está causando que esto tenga un problema? ¿Devuelve #NOMBRE? cada vez que ejecuto la fórmula. Soy nuevo en macros/VBA, pero me aseguré de que el archivo se guardara como un archivo habilitado para macros. Realmente traté de seguir estos al pie de la letra.


Gracias por toda esta información que ya es excelente, ya que me ha ayudado con otro proyecto que también tenía que completar y cualquier cosa adicional es muy apreciada.
Este comentario fue minimizado por el moderador en el sitio
Hola Michael,
¿Quiere eliminar todas las frases duplicadas de una celda y dejar solo las únicas?
¡Espero su respuesta!
Este comentario fue minimizado por el moderador en el sitio
Esta es la salida que estoy buscando:

Vigente: PR-PUERTO RICO; EE.UU.-ESTADOS UNIDOS; EE. UU.-ESTADOS UNIDOS
Deseado: PR-PUERTO RICO; EE. UU.-ESTADOS UNIDOS

Espero que esto tenga sentido y muchas gracias por la rápida respuesta.
Este comentario fue minimizado por el moderador en el sitio
Hola Michael,
Solo necesita aplicar el siguiente código y luego usar esta fórmula: =RemoveDuplicateValue(A2,";"). Por favor, inténtalo, ¡espero que te pueda ayudar!

Función RemoveDuplicateValue(xStr como cadena, xDelim como cadena) como cadena
Dim xValor
Si (Len(xDelim) > 0) Y (Len(Trim(xStr)) > 0) Entonces
Con CreateObject("Scripting.Diccionario")
Para cada valor x en división (xStr, xDelim)
Si Trim(xValue) <> "" And Not .exists(Trim(xValue)) Entonces .Add Trim(xValue), Nada
Siguiente
Si .Count > 0 Entonces RemoveDuplicateValue = Join(.keys, xDelim)
End With
otro
EliminarValorDuplicado = xStr
Si terminar
Función finales
Este comentario fue minimizado por el moderador en el sitio
Muchas gracias. ¡Tu respuesta fue más bienvenida que mi taza de café!
Este comentario fue minimizado por el moderador en el sitio
hola esto es muy util
Pero quiero eliminar palabras completas después de "NO TO:"

por ejemplo: NO A: [C11bx1]

NO A: [C11bx3] así
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Siganos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL