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

Como remover caracteres ou palavras duplicadas em uma string de uma célula?

Supondo que haja palavras ou caracteres duplicados em cada célula e você queira remover as duplicatas e deixar apenas caracteres ou palavras exclusivos. Como você resolveria esse problema no Excel?

Remova os caracteres duplicados da string de texto com a função definida pelo usuário

Remova as palavras duplicadas separadas por pontuação com a função definida pelo usuário


seta azul bolha direita Remova os caracteres duplicados da string de texto com a função definida pelo usuário

Se você tem uma lista de string de texto, agora, você precisa remover os caracteres duplicados como mostrado a seguir. Aqui, posso falar sobre um código VBA para lidar com isso.

doc-remove-duplicate-characters-1

1. Segure o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: remove caracteres duplicados de string de texto em uma célula

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. Em seguida, salve e feche este código, volte para a planilha e insira esta fórmula = removedupes1 (A2) (A2 é a célula de dados da qual você deseja remover duplicatas) em uma célula em branco ao lado de seus dados, consulte a captura de tela:

doc-remove-duplicate-characters-1

4. Em seguida, arraste a alça de preenchimento até as células do intervalo às quais deseja aplicar esta fórmula, todos os caracteres duplicados foram removidos de cada célula imediatamente.

doc-remove-duplicate-characters-1


seta azul bolha direita Remova as palavras duplicadas separadas por pontuação com a função definida pelo usuário

Se houver algumas palavras separadas por certos sinais de pontuação em uma célula, você também pode remover as palavras duplicadas conforme desejar. Execute as seguintes etapas:

1. Mantenha pressionada a ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: remova palavras duplicadas separadas pela pontuação de uma célula

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. Em seguida, salve e feche este código, retorne à planilha e insira esta fórmula = RemoveDupes2 (A2, ",") em uma célula em branco ao lado de seus dados, veja a captura de tela:

doc-remove-duplicate-characters-1

4. Em seguida, copie a fórmula para as células necessárias e todas as palavras duplicadas serão removidas de todas as células. Veja a imagem:

doc-remove-duplicate-characters-1

Nota: Na fórmula acima, A2 indica a célula que você deseja usar, e a vírgula (,) representa a marca de pontuação que separa as palavras em uma célula, você pode alterá-la para qualquer outra pontuação de sua necessidade.


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (66)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Ainda quebrou... na verdade não mostra nada. Aqui estão meus dados de celular: 27000,Básico,Produtos,Materiais,De,Madeira,Pedra,Terra,Cru,Materiais,27100,Básico,Floresta,Produtos,Geral,27110,Básico,Floresta,Produtos,Serraria,Produtos,27120,Básico ,Floresta,Produtos,Madeira,Culpa,27200,Vidro Claramente tem alguns idiotas lá. Deixa a célula em branco. Pensamentos?
Este comentário foi feito pelo moderador no site
Não importa, eu sou burro. Como eu só queria que as palavras fossem puxadas, renomeei o módulo RemoveDupes, mas não alterei o RemoveDupes posteriormente no código. Corrigido, batendo em si mesmo com um martelo....
Este comentário foi feito pelo moderador no site
E eu combinei RemoveDupes com ConCat (a bondade do VBA, não CON(I-SUCK-BECAUSE-I'M-MICROSOFT)CATENATE) nisso: =RemoveDupes(ConCat(",",G495:G502),",") então puxou minhas células e, em seguida, eliminou todos os tolos. Obrigado pelo RemoveDupes, aqui está o 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( Area) = "Range" Então para cada célula na á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) Função Final
Este comentário foi feito pelo moderador no site
Eu tentei sua solução "Remover palavras duplicadas separadas por pontuação com função definida pelo usuário" e funciona muito bem para várias palavras em uma célula, MAS não resolve completamente o meu problema. Eu tenho uma célula que tem vários valores e quero comparar com outra célula com vários valores e, em seguida, remover as duplicatas que existem entre as duas células. Existe uma maneira de fazer isso?
Este comentário foi feito pelo moderador no site
mesmo aqui por favor me ajudem
Este comentário foi feito pelo moderador no site
esse tópico ainda está vivo? Eu apreciaria muito algumas dicas com esta função VBA .. minhas perguntas têm a ver com o código, onde se eu preciso instruí-lo para encontrar a pontuação específica como o delimitador .. se eu usar "@" como a pontuação?
Este comentário foi feito pelo moderador no site
Suas dicas são incríveis! Classifiquei 58,400 registros em cerca de 2 minutos e economizei uma semana (ou mais) de trabalho. Minhas duplicatas foram um pouco mais difíceis de transformar este exemplo "V&O Liquid Fuel Lantern 13-1/2in blk fuel lantern" para este "V&O Liquid Fuel Lantern 13-1/2in blk" obrigado.
Este comentário foi feito pelo moderador no site
Olá, por favor, preciso de sua ajuda, tentei seu código, mas não funcionou, talvez porque tenho números Tenho números de telefone duplicados separados por vírgulas Por favor me diga o que fazer Obrigado
Este comentário foi feito pelo moderador no site
mesmo aqui por favor me ajudem
Este comentário foi feito pelo moderador no site
BRILHANTE obrigado! obrigada! obrigada!
Este comentário foi feito pelo moderador no site
Perfeito, obrigado!.....
Este comentário foi feito pelo moderador no site
Oi cara eu preciso da sua ajuda. O que devo fazer se eu quiser extrair a duplicata? Em A1 (asdfghjiklkk) Então k é caractere duplicado Eu quero A2 (k) o que devo fazer?
Este comentário foi feito pelo moderador no site
É possível ajustar a função se houver uma determinada palavra que eu quero manter duplicada enquanto o resto não é duplicado?
Este comentário foi feito pelo moderador no site
Apenas gostaria de economizar muito obrigado por este guia, me poupou muito trabalho! :)
Este comentário foi feito pelo moderador no site
Isso é muito útil. Eu tentei e funciona para mim como exceção. Excelente !!!!
Este comentário foi feito pelo moderador no site
Esta é uma solução incrível e simples para encontrar frases duplicadas em uma única célula, muito mais fácil do que algumas das soluções macro prolixas que encontrei enquanto procurava uma resposta para o meu problema, obrigado!
Este comentário foi feito pelo moderador no site
Obrigado por este código - ele me economizou muito tempo.
Este comentário foi feito pelo moderador no site
Tenho dados como 1. mostro abaixo em uma única célula e quero curtir 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDAGARH, HARYANA-123029, 30771237, 8813073653 Preciso disso como: - ZERPUR, MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653 Obrigado e Atenciosamente Hanuman Singh 9034509168
Este comentário foi feito pelo moderador no site
Ensina-me como? preciso saber tambem..
Este comentário foi feito pelo moderador no site
podemos descobrir a posição da 1ª letra minúscula


Exame - RAMSHsJHSAhsjDDD ------Quero saber a posição da 1ª letra minúscula pela fórmula = s
Este comentário foi feito pelo moderador no site
Olá, Meharban,
Você pode aplicar a seguinte fórmula de matriz para obter a posição da primeira letra minúscula:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Lembre-se de pressionar as teclas Ctrl + Shift + Enter juntas.


Espero que possa ajudá-lo, obrigado!
Este comentário foi feito pelo moderador no site
Oi skyyang

esta funcionando direitinho.....
na verdade eu queria a mesma coisa..

Muito Obrigado !!


Meharban singh amigo
Este comentário foi feito pelo moderador no site
Como remover duplicatas de string correspondidas ... você pode me dizer


Saudações,
Kiran
Este comentário foi feito pelo moderador no site
Olá, Kiran,
Você pode dar um exemplo do seu problema? Ou você pode inserir uma imagem de anexo.
Ansioso por sua resposta!
Este comentário foi feito pelo moderador no site
muito obrigado, me ajuda mais. Mas eu quero algo mais específico para o meu conjunto de dados.
Eu tenho dois dados de colunas. ID e Informações. Na coluna de informações, por célula o ID do projeto como "Kant-, Udp-, Akr- etc" são repetidos. Para o meu conjunto de dados, o project_id é superior a 15 e foi corrigido. Então eu quero excluir o repeat_id da célula, mas manter o primeiro.
Exemplo: 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)

A imagem de exemplo está anexada aqui. Existe alguma solução para isso.
Este comentário foi feito pelo moderador no site
Olá, Imran,
Desculpe por não resolver seu problema, se alguém tiver a boa ideia, por favor comente aqui.
Obrigado!
Este comentário foi feito pelo moderador no site
Eu tenho uma solução por conta própria. Eu usei a fórmula SUBSTITUTE aqui, mas é muito grande para meus dados. então repita-o duas ou três vezes para obter o resultado adequado.

=SUBSTITUTO(SUBSTITUTE("Kant-","",2), ("Kant-","",2)
Aqui, 1st 2 para a segunda substituição de Kant e para a próxima remoção de Kant apenas adicione ("Kant-","",2) extra. Está funcionando para mim. Mas eu prefiro um bom VBA.
Este comentário foi feito pelo moderador no site
Obrigado pelo código.

Você pode por favor me ajudar? Estou usando a função macro para remover palavras separadas por pontuação de uma célula, porém meus dados não são palavras são na verdade frases. Como em vez de "KTE, KTO, KTW, KTO" são na verdade descrições curtas como "preparar uma conta, revisar meus e-mails, atualizar os contratos, revisar meus e-mails".

Seria possível atualizar o VBA para remover frases duplicadas ao invés de palavras?

Muito obrigado, isso será realmente muito útil.
Este comentário foi feito pelo moderador no site
Olá, Alonso,
Para remover a frase duplicada, a seguinte Função Definida pelo Usuário pode ajudá-lo, por favor, tente.

Função RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xValor
Se (Len(xDelim) > 0) E (Len(Trim(xStr)) > 0) Então
Com CreateObject("Script.Dicionário")
Para cada xValue em Split(xStr, xDelim)
Se Trim(xValue) <> "" E Não .exists(Trim(xValue)) Então .Add Trim(xValue), Nothing
Seguinte
Se .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
Terminar com
Outro
RemoveDuplicateValue = xStr
Se acabar
Função final

Em seguida, aplique esta fórmula: =RemoveDuplicateValue(A2,"","), altere o separador , para o seu próprio.
Este comentário foi feito pelo moderador no site
Olá skyyang,



Estou esperando obter alguma ajuda com a seguinte célula:

PR-PORTO RICO; ESTADOS UNIDOS-EUA; ESTADOS UNIDOS-EUA

Eu preciso que a duplicata US-UNITED STATES seja removida, pois minha ferramenta de upload não permite duplicatas.



Eu usei o VBA acima e substituí meu delimitador de fórmula por ";". O hífen está causando isso? Ele retorna #NAME? sempre que executo a fórmula. Sou novo em macros/VBA, mas verifiquei se o arquivo foi salvo como um arquivo habilitado para macro. Eu realmente tentei seguir estes para o T.


Obrigado por todas essas informações já ótimas, pois ajudaram em outro projeto que tive que concluir também e qualquer coisa adicional é muito apreciada.
Este comentário foi feito pelo moderador no site
Olá Michael,
Você pretende remover todas as frases duplicadas de uma célula e deixar apenas as únicas?
Aguardamos a sua resposta!
Este comentário foi feito pelo moderador no site
Esta é a saída que estou procurando:

Atual: PR-PORTO RICO; ESTADOS UNIDOS-EUA; ESTADOS UNIDOS-EUA
Desejado: PR-PORTO RICO; ESTADOS UNIDOS-EUA

Espero que isso faça sentido e muito obrigado pela resposta rápida.
Este comentário foi feito pelo moderador no site
Olá Michael,
Você só precisa aplicar o código abaixo e usar esta fórmula: =RemoveDuplicateValue(A2,";"). Por favor, tente, espero que possa ajudá-lo!

Função RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xValor
Se (Len(xDelim) > 0) E (Len(Trim(xStr)) > 0) Então
Com CreateObject("Script.Dicionário")
Para cada xValue em Split(xStr, xDelim)
Se Trim(xValue) <> "" E Não .exists(Trim(xValue)) Então .Add Trim(xValue), Nothing
Seguinte
Se .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
Terminar com
Outro
RemoveDuplicateValue = xStr
Se acabar
Função final
Este comentário foi feito pelo moderador no site
Muito obrigado. Sua resposta foi mais bem-vinda do que minha xícara de café!
Este comentário foi feito pelo moderador no site
Oi isso é realmente útil
Mas eu quero remover palavras inteiras depois de "NO TO:"

por exemplo: NÃO PARA: [C11bx1]

NÃO A: [C11bx3] assim
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL