Buscar Datos Duplicados en tres(03) Columnas

Sres. T.E.

Favor hacerme llegar una Macro que detecte la data duplicada en tres columnas, ejemplo gráfico a continuación:

Column A Column B Column C

Data 01 Data 20 Data 30

Data 02 Data 21 Data 31

Data 03 Data 03 Data 03

Data 04 Data 23 Data 33

Data 05 Data 24 Data 34

Data 03 Data 03 Data 03 Duplicado

Data 07 Data 26 Data 36

Data 08 Data 27 Data 37

Data 09 Data 28 Data 38

Data 10 Data 29 Data 39

Data 03           Data 03           Data 03           Duplicado

Data 12 Data 31 Data 41

Data 13 Data 32 Data 42

Data 14 Data 33 Data 43

Como pueden observar la Data 03 es Duplicada y que solo que muestre un Mensaje de Duplicidad.

Nota: Esto en Excel 2003

1 respuesta

Respuesta
1

H o l a:

Podrías aclararme lo siguiente.

¿Según tu ejemplo la "Data 03" está duplicada por que aparece en las 3 columnas?

¿O por qué aparece en diferentes filas?

Si lo que buscas es que el dato está repetido en las 3 columnas, utiliza esta macro:

Sub Repetidos()
'Por.Dante Amor
    With Range("D1:D" & Range("A" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(AND(RC[-3]=RC[-2],RC[-2]=RC[-1]),""Duplicado"","""")"
        .Value = .Value
    End With
End Sub

‘
S a l u d o s . D a n t e A m o r
Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

¡Gracias! 

Tu repuesta es correcta.

¡Gracias! nuevamente

:)

‘
Saludos. D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s
:) 

Estimado no dejes respuestas sin valorar. Al final de mi respuesta están las opciones para valoras. Sal u dos

Hola.

En realidad el código enviado funciona, pero se me paso por alto Solicitarle que muestre el Valor o la Dirección (Address) de la Data Duplicada done se encuentra.

Sub Repetidos()
'Por.Dante Amor
    With Range("D1:D" & Range("A" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IF(AND(RC[-3]=RC[-2],RC[-2]=RC[-1]),""Duplicado"","""")"
        .Value = .Value
    End With
End Sub

A qué te refieres con que "muestre el Valor o la Dirección"

Puedes poner un ejemplo.

Antes de continuar con las nuevas peticiones, podrías valorar la respuesta.

Hola.

Ejemplo Solicitado: 

    Column A  Column B Column C

 1  Data 01       Data 20      Data 30

2  Data 02        Data 21      Data 31

3  Data 03       Data 03      Data 03

4  Data 04       Data 23      Data 33

5  Data 05       Data 24      Data 34

6  Data 03       Data 03      Data 03 Duplicado

7  Data 07       Data 26      Data 36

8  Data 08       Data 27      Data 37

9   Data 09       Data 28      Data 38

10 Data 10       Data 29      Data 39

Come se puede observar la Duplicidad se encuentra en 

en la Fila 6 Columna 1, 2 y 3.

Lo que necesito es que muestre el mensaje (Msgbox) :

"La Data 03 se encuentra en la celda: &A&7 " 

Saludos

H o l a:

Todavía tengo dudas para saber cuándo es un registro duplicado.

Entiendo perfectamente tu ejemplo tienes el 03 en las celdas A3, B3, C3, A6, B6, C6.

Mi duda es, ¿cuándo es un duplicado? ¿Cuándo el número se repite 6 veces?

Qué pasa si tengo esto en la fila 3:

01    11    21

Y esto en la fila 6

01    11     21

¿Es un duplicado?

O qué pasa si tengo esto:

03     04    05

03     06    07

El 03 se repite en una fila y en otra fila, ¿es duplicado?

Tienes que explicarme cuáles son los motivos por los que un registro es duplicado.

Y si existen 10 duplicados, quieres que te aparezcan 10 mensajes, ¿un mensaje por cada duplicado o un 1 mensaje con las 10 celdas duplicadas?

E spero tus comentarios.

Hola.

La idea es cuando se trate de introducir una data que anteriormente ha sido registrada me muestre un mensaje "Msgbox" que la data existe y a vez la dirección donde se encuentra "Address"

Como puedes observar la Fila 3, Columna A, B y C el Valor de la data es "Data 3" y en la Fila 6 Contiene el mismo Valor.

Column A       Column B   Column C

3  Data 03       Data 03      Data 03

6  Data 03       Data 03      Data 03 Duplicado

Tu Consulta:

Qué pasa si tengo esto en la fila 3:

01    11    21

Y esto en la fila 6

01    11     21

¿Es un duplicado?

O qué pasa si tengo esto:

03     04    05

03     06    07

El 03 se repite en una fila y en otra fila, ¿es duplicado?

Ninguno de los casos es Duplicado.

Me puedes confirmar esto:

Mi duda es, ¿cuándo es un duplicado? ¿Cuándo el número se repite 6 veces?, es decir, cuando la data aparece 3 veces en una fila y vuelve aparecer 3 veces en otra fila.

Me puedes confirmar esto:

Mi duda es, ¿cuándo es un duplicado? ¿Cuándo el número se repite 6 veces?, es decir, cuando la data aparece 3 veces en una fila y vuelve aparecer 3 veces en otra fila.

Es correcto.

Falta lo más importante, el mensaje, cómo lo vas a querer:

Y si existen 10 duplicados, quieres que te aparezcan 10 mensajes, ¿un mensaje por cada duplicado o un 1 mensaje con las 10 celdas duplicadas separadas por un espacio?


Falta lo más importante, el mensaje, cómo lo vas a querer:

Y si existen 10 duplicados, quieres que te aparezcan 10 mensajes, ¿un mensaje por cada duplicado o un 1 mensaje con las 10 celdas duplicadas separadas por un espacio?

No, la idea es que no se permita entrar otra data igual.

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    'Revisar duplicados de fila en las columnas ABC
    If Target.Count > 30 Then Exit Sub
    If Not Intersect(Target, Range("A:C")) Is Nothing Then
        For Each c In Target.Rows
            If Cells(c.Row, "A") = "" Or Cells(c.Row, "B") = "" Or _
               Cells(c.Row, "C") = "" Then Exit Sub
            '
            If Cells(c.Row, "A") = Cells(c.Row, "B") And _
               Cells(c.Row, "A") = Cells(c.Row, "C") Then
                Set r = Columns("A")
                Set b = r.Find(c.Value, lookat:=xlWhole)
                If Not b Is Nothing Then
                    ncell = b.Address
                    Do
                        'detalle
                        If b.Row <> c.Row Then
                            If Cells(b.Row, "B") = Cells(c.Row, "B") And _
                               Cells(b.Row, "C") = Cells(c.Row, "C") Then
                                MsgBox "El dato está duplicado y no se puede ingresar", vbCritical, "ERROR"
                                Application.EnableEvents = False
                                Range(Cells(c.Row, "A"), Cells(c.Row, "C")).ClearContents
                                Application.EnableEvents = True
                                Exit Do
                            End If
                        End If
                        Set b = r.FindNext(b)
                    Loop While Not b Is Nothing And b.Address <> ncell
                End If
            End If
        Next
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Ahora sí, escribe los valores en las columnas A, B y C, la macro revisará en automático si existe duplicado.


sal u dos

¡Gracias!

Hola Dante

Este es el Código que necesitaba para continuar con el proyecto.

Disculpa que no me supe explicar en la Consulta y hacerte perder tiempo.

Agradecido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas