Como filtrar células contendo sequências de texto repetidas (palavras)

Como filtrar células contendo sequências de texto repetidas (palavras)

um amigo meuEstou sempre em contato com ele sobre alguns dos problemas do mundo real que ele enfrenta ao trabalhar com dados no Excel.

Muitas vezes eu traduzo sua consulta em um tutorial do Excel neste site porque pode ser útil para meus outros leitores também.

Este é um desses tutoriais também.

Meu amigo me ligou na semana passada com as seguintes perguntas:

Tenho dados de endereço em uma coluna no Excel e quero identificar/filtrar células que contenham sequências de texto repetidas (palavras) no endereço.

Aqui está um conjunto de dados semelhante em que ele deseja filtrar células que possuem sequências de texto repetidas (células com setas vermelhas):

Identificar cadeias de texto duplicadas no Excel - Endereço do conjunto de dados

O que torna isso difícil agora é que os dados não são consistentes.Como esta é uma compilação de conjuntos de dados criados manualmente por representantes de vendas, pode haver discrepâncias nos conjuntos de dados.

pense nisso:

  • Qualquer string de texto pode ser repetida neste conjunto de dados.Por exemplo, pode ser um nome de região ou um nome de cidade, ou ambos.
  • As palavras são separadas por caracteres de espaço e não há consistência em saber se o nome da cidade está depois de seis ou oito caracteres.
  • Existem milhares desses registros e é necessário filtrar aqueles que possuem seqüências de texto repetidas.

Depois de considerar muitas opções, como texto para colunas e fórmulas, finalmente decidi usar o VBA para fazer o trabalho.

Então, criei uma função VBA personalizada ('IdDuplicate') para analisar essas células e me fornecer TRUE se houver palavras duplicadas na string de texto e FALSE se não houver duplicatas (como mostrado abaixo):

Identificando sequências de texto duplicadas no Excel - Demonstração do endereço do conjunto de dados

Essa função personalizada analisa cada palavra na sequência de texto e verifica quantas vezes ela ocorre no texto.Retorna TRUE se a contagem for maior que 1;Caso contrário, retorne FALSE.

Além disso, foi criado para contar apenas palavras com mais de três caracteres.

Depois de ter os dados TRUE/FALSE, posso filtrar facilmente todos os registros que são TRUE.

Agora, deixe-me mostrar como fazer isso no Excel.

Código VBA para função personalizada

Isso é feito criando uma função personalizada no VBA.Essa função pode ser usada como qualquer outra função de planilha no Excel.

questão relacionada  Revisão do CCleaner Professional Edition - Novos recursos e utilitário de atualização de driver

Aqui está o seu código VBA:

Função IdDuplicates(rng As Range) As String Dim StringtoAnalyze As Variant Dim i As Integer Dim j As Integer Const minWordLen As Integer = 4 StringtoAnalyze = Split(UCase(rng.Value), " ") Para i = UBound(StringtoAnalyze) To 0 Etapa -1 Se Len(StringtoAnalyze(i)) < minWordLen Then GoTo SkipA For j = 0 To i - 1 If StringtoAnalyze(j) = StringtoAnalyze(i) Then IdDuplicates = "TRUE" GoTo SkipB End If Next j SkipA: Next i IdDuplicates = "FALSE" SkipB: Função Final

Como usar este código VBA

Agora que você tem o código VBA, você precisa colocá-lo no backend do Excel para que ele funcione como uma função de planilha normal.

questão relacionada  Problema KB5003173 - Melhor correção para atualização de erro 0x800f0922 falhou

Aqui estão as etapas para colocar o código VBA no back-end:

  1. Vá para a guia do desenvolvedor.Identificar cadeias de texto duplicadas - guia Desenvolvedor na Faixa de Opções
  2. Clique em Visual Basic (você também pode usar o atalho de teclado ALT+F11)Selecione Visual basic na faixa de opções
  3. No back-end do editor VB aberto, clique com o botão direito do mouse em qualquer objeto de pasta de trabalho.
  4. Vá em "Inserir" e clique em "Módulo".Isso inserirá o objeto do módulo da pasta de trabalho.Inserir módulo para código VAB personalizado
  5. Na janela de código do módulo, copie e cole o código VBA mencionado acima.Código VBA para back-end - identifique strings de texto duplicadas

Depois de ter o código VBA no backend, você pode usar a função – 'IdDuplicates' como qualquer outra função de planilha regular.

Esta função recebe um parâmetro, a referência de célula da célula onde você tem o texto.

O resultado desta função é TRUE (se houver palavras duplicadas) ou FALSE (se não houver duplicatas).Uma vez que você tenha esta lista TRUE/FALSE, você pode filtrar aquelas com TRUE para obter todas as células que possuem strings de texto repetidas nelas.

Nota: O código que criei é apenas para contabilizar palavras com mais de três caracteres.Isso garante que, se houver palavras na cadeia de texto com 1, 2 ou 3 caracteres (por exemplo, 12 A, KGM ou LDA), essas palavras serão ignoradas ao contar duplicatas.Você pode alterar isso facilmente no código, se necessário.

Esse recurso só está disponível na pasta de trabalho em que você copiou o código no módulo.Se você quiser que esse código também esteja disponível em outras pastas de trabalho, será necessário copiar e colar esse código nessas pastas de trabalho.Como alternativa, você pode criar um suplemento (habilitar isso tornará o recurso disponível em todas as pastas de trabalho em seu sistema).

Além disso, lembre-se de salvar esta pasta de trabalho com uma extensão .xlsm (porque ela contém código de macro).

Oi olá ????Prazer em conhecê-la.

Assine a nossa newsletter, Envie muito regularmenteÓtima tecnologiaPara sua postagem.

questão relacionada  Como classificar por sobrenome no Excel (guia fácil)

Postar Comentário