Encontrar valores repetidos

En una columna de EXCEL tengo 20149 celdas con un número de 12 dígitos de longitud. A partir de éste voy a calcular el código EAN-13 de código de barras pero antes de eso, NECESITO ASEGURARME QUE EN ESOS 20149 VALORES NO HAY NINGUNO REPETIDO. ¿Cómo me aseguro que valores nuevos que voy introduciendo no se encuntren ya utilizados?

4 respuestas

Respuesta
1
Lo primero que tenemos que hacer, si entendí bien, es marcar donde se encuentren valores repetidos en una columna. Para eso lo más apropiado será utilizar, en una columna adicional, la función:
=CONTAR.SI($B$3:$B$20149;B3) suponiendo que los datos a verificar se encuentren en la columna B. Rellena toda la columna con esta función. Luego desde el menú Datos/Filtros busca en esta columna adicional, las celdas con valor distinto de 1 (esas serán las que se encuentren repetidas) y sabrás que hacer con ellas. Esta columna luego la puedes eliminar.
Ahora bien, para evitar en el futuro introducir valores repetidos debes crear una macro: Alt+F11 para llamar al Editor de VB, selecciona la hoja donde vas a ingresar estos datos en el sector izquierdo, y en el sector derecho copia esto:
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 2 And ActiveCell.Row > 2 Then 'está pensado para la col B
If ActiveCell.Offset(-1, 0).Value <> 0 Then
Dim valor As Variant
Dim actual, fila As Integer
actual = ActiveCell.Offset(-1, 0).Row
fila = 1 - actual
valor = ActiveCell.Offset(-1, 0).Value
Do While fila < -1
If ActiveCell.Offset(fila, 0).Value = valor Then
MsgBox ("Ya existe ese número")
ActiveCell.Offset(-1, 0).Value = 0
ActiveCell.Offset(-1, 0).Select
fila = 0
Exit Do
Else
fila = fila + 1
End If
Loop
End If
End If
End Sub
Solo debés colocar el número de columna donde vas a ingresar los datos que no querés que se dupliquen.
Pruébalo y si te queda alguna duda me volvés a consultar.
Respuesta
1
Creo que lo mejor es utilizar un macro que verifique ordenadamente si existe algún valor repetido. Aquí te pongo el código:
Sub Macro1()
n = 20149
For i = 0 To 20148
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
For j = 1 To n - i
If (ActiveCell.Value = ActiveCell.Offset(j, 0).Value) Then
MsgBox ("Duplicado encontrado")
ActiveCell.Offset(j, 0).Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Exit Sub
End If
Next j
Selection.Interior.ColorIndex = xlNone
ActiveCell.Offset(1, 0).Activate
Next i
MsgBox ("Fin. No hay duplicados")
End Sub
Como puedes ver compara una celda con todas las que están abajo y después la siguiente con todas las que están abajo y así sucesivamente. Si encuentra algún duplicado marca con color rojo los duplicados y termina el macro, entonces corriges y ejecutas de nuevo el macro. En caso de que no encuantre duplicados termina con un mensaje. Y es todo.
Respuesta
1
Para verificar los valores repetidos en una lista puedes usar la fórmula coincidir, si el número existe en el rango buscado te arrojará la posición en la que lo encontró, de lo contrario te arrojará un error.
Diseñe una fórmula suponiendo que los valores se encuentran hacia abajo en la columna A empezando en la primera línea, obviamente la puedes modificar de acuerdo a tus necesidades.
=SI(A8="","",SI(ESERROR(COINCIDIR(A8,$A$1:A7,0)),"","VALOR REPETIDO"))
También valida que la celda objeto de búsqueda( en este caso A8) no se encuentre vacía.
Si es lo que necesitas te agradezco finalizar la pregunta de lo contrario escríbeme y con gusto te amplío la información.
Respuesta
-1
Yo creo que hay una función que hace eso, la otra opción es hacer una macro que recorra todas esa columna y que tire un mensaje diciendo si hay alguno depetido o no. Eso es mucha suerte y ojala te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas