Função para retirar repetidos de célula

GUT - Técnica para definir prioridades em tomadas de decisões - Excel
GUT – Técnica para definir prioridades em tomadas de decisões – Excel
18 de abril de 2011
Números Aleatórios (Estatística), Aleatórioentre, aleatório, arred
Números Aleatórios (Estatística), Aleatórioentre, aleatório, arred
23 de abril de 2011

Objetivo: Retornar apenas valores sem repetição a partir de uma célula usando uma função criada com VBA.

Esta função foi criada para auxiliar o leitor Hélio Santos Júnior em um problema que são retirados dados de planilhas aonde são realizadas várias medições, porém, estas planilhas retornam valores duplicados em determinadas situações e para subir as informações para o sistema da empresa ele precisa que sejam apenas valores sem duplicação.

Para isso foi criada a seguinte lógica:

'Função que identifica se há repetidos
Public Function lfRepetidosB(ByVal lRange As Range, ByVal lSeparador As String) As Variant

    'Esta instrução faz com que ao tentar inserir um valor duplicado na coleção ele pule para o próximo registro
    On Error Resume Next

    'Recalcula a função automaticamente
    Application.Volatile

    Dim lCel     As Range
    Dim lValores As Variant
    Dim lValor   As Variant
    Dim lUnicos  As New Collection
    Dim i        As Long

    i = 0

    'A função split faz com que os valores sejam separados a partir de um determinado separador, no caso do problema apresentado o separador é
    'espaço, " "
    lValores = Split(lRange, lSeparador)

    'O comando For Each varre a coleção de valores, podendo ser utilizado em Variant ou em Collection
    For Each lValor In lValores
        lUnicos.Add lValores(i), CStr(lValores(i))
        i = i + 1
    Next lValor

    On Error GoTo 0

    i = 1

    'Junta as informações e retorna na função
    While i <= lUnicos.Count
        lfRepetidosB = lfRepetidosB + " " + lUnicos.Item(i)
        i = i + 1
    Wend
End Function

Para determinar esta função como global você pode seguir os passos do artigo Criando Funções Próprias Globais.

Para chamar a função você deve passar os seguintes parâmetros:

=lfRepetidosB(Endereço; Delimitador)

Endereço: a célula que você quer retirar os repetidos, deve ser uma única célula.

Delimitador: o campo que separa as informações, no caso do exemplo é ” “. (Espaço)

Exemplo: =lfRepetidosB(A1; ” “)

GUT PPT

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

5 Comentários

  1. Hélio Santos Jr disse:

    Marcos muitíssimo obrigado, resolveu minha questão de primeira, já admirava seu trabalho agora mais ainda pela humildade e eficiencia.

    Guia do Excel virou minha página Inicial.

    Abraços!

  2. Lourival disse:

    Existe(Na lista de funções do Excel), alguma que, a partir de uma busca, identifica valores repetidos e retorne apenas os valores não repetidos?

  3. Roberto disse:

    OBRIGADO, OBRIGADO E OBRIGADO, Estava a dias procurando uma solução para um problema como este, e através do yahoo respostas você citou este tópico e nem acredito funcionou que foi uma beleza

  4. jon disse:

    Marcos tenho um problema identico ao do Helio,porém,os itens que se repetem são em celulas diferentes em uma mesma coluna:

    Veja o exemplo abaixo: Preciso totalizar contando apenas uma celula de cada

    10095062
    10095007
    10095007
    10091037
    10091037
    10095072
    10091037
    10091037
    10095082
    10095113

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.