Filas repetidas

Tengo un archivo excel con una unca columna con 2000 drecciones de e-mail, cada una en una fila distinta. Mi problema es que muchos de estos e-mails están repetidos y me gustaría saber si hay alguna manera de que excel encuentre los repetidos y los elmine, para no tener que ir mirando yo uno a uno.

5 respuestas

Respuesta
1
Si existe algo para eso, no tan exacto como lo que mencionas pero por igual funciona muy bien...
Voy a suponer que en la columna A tienes la lista con los mails.
Has lo siguiente. Ve al menu Datos>filtro> y selecciona Filtro Avanzado.
Aquí se te abre un cuadro de dialogo.
Selecciona "Copiar a otro lugar"... En rango de la lista pon o selecciona el área de la columna A... Rango de criterios dejalo en Blanco... En copiar A: Selecciona por ejemplo la celda B1 o cualquier que tengas en blanco y por ultimo Selecciona la casilla de "solo registros únicos" y da aceptar. Ya listo aquí obtienes una lista de registros únicos.
BYE
Respuesta
1
Eso se puede hacer por macro pero también lo puedes hacer son fórmulas y autofiltros (más rápido que desarrollar el código)
Por fórmula utiliza esto :
=COINCIDIR(A1,A2:$A$20001,0)
Esto te arrojará un error en la mayoría de las celdas... las que te arrojen un número son las que están repetidas.
Luego por autofiltro eliminas las filas que estén repetidas y eso es todo.
OJO! Tuve un problema con esta fórmula.
Cambiala por =COINCIDIR(A2,A2:$A$20001,0) empezando en la fila 2 y arrastrándola hacia abajo. Ten en cuenta que la última fila te va a arrojar un número sin que esa dirección de correo esté repetida.
Respuesta
1
Existe una forma muy fácil, pero la eliminación no es automática, tendrías que eliminarlos tú. Para eliminarlos automáticamente habría que diseñar una macro.
Te explico el procedimiento que se utilizaría para que Excel identificara aquellos registros repetidos. Si el procedimiento no te vale, házmelo saber insertando un comentario y desarrollaremos una macro para ejecutar todo automáticamente.
Procedimiento:
**************
1. Supongamos que tienes la columna "A" con las direcciones de e-mail.
2. Selecciona todo el rango de direcciones (por ejemplo A1:A2000) y selecciona las opciones: "Datos" - "Ordenar".
3. Se despliega un ciadro de diálogo en el que debe aparecer seleccionado:
- "Ordenar por: Columna A".
- "Ascendente".
- "La fila tiene lista de encabezamiento: No" (he supuesto que no seleccionabas el encabezamiento en el caso de que existiera).
4. Pulsa ACEPTAR. Esto ordenará las direcciones de e-mail.
5. En la celda "B1" inserta la siguiente fórmula: +A1
6. En la celda "B2" inserta la siguiente fórmula: =SI(+A2=B1;"Eliminar";"")
7. Copia esta fórmula desde "B3" hasta la última fila en la que tengas datos.
8. Te aparecerá el literal "Eliminar" en aquellos registros que sean iguales a su registro anterior. Simplemente elimina aquellos registros en los que te aparezca el literal "Eliminar".
Espero que esto solucione tu problema.
Espero tus noticias.
Un abrazo!
César M.C.M.
Respuesta
1
Antes de ejecutar la macro que te adjunto, debes tomar nota del orden que tiene actualmente la tabla, si tiene más de una columna, para luego volver a asignarle el mismo.
Ahora la ordenamos por la columna de correos (solo parate sobre UNA celda de esa columna y clic en el botón A-Z).
Ahora ejecuta la macro.
Para copiarla, presionar Alt+F11 para abrir el Editor, en el margen izquierdo hacer doble clic en la hoja donde se deberá ejecutar la macro y pegar el siguiente código en la ventana:
Sub OrdenayBorra()
Sheets("Hoja1").Select ?establece la hoja donde se encuentra la lista
final = Range("C65536").End(xlUp).Row
Range("C" & final).Select
While ActiveCell.Row > 2 ?compara hasta la fila 2, presupone fila1 con título
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Wend
End Sub
Desde el menú Herramientas/Macros la ejecutas. Con esto ya tendrás limpia la tabla. Cualquier inconveniente me volvés a consultar.
Estoy viendo que la copia de mi respuesta no sale con todos los caracteres que yo coloqué.
Cada vez que encuentres un signo de interrogación es en realidad una comilla para indicarle a la macro que lo que sigue es un comentario (en la segunda y quinta línea)
Si este fue el motivo de tu demora pido disculpas "ajenas" y ya necesito que finalices la consulta así otros usuarios acceden al servicio, tal como vos lo hiciste.
Si necesitas alguna aclaración hacémelo saber.
Respuesta
OK, en estos casos antes de ejecutar un proceso de eliminación de registros, prefiero hacer un control de lo que MS Excel interpretará como duplicados.
Para ello, me valgo de una columna auxiliar que marcará aquellos que estén más de una vez.
Tal columna cuenta, en su primera celda con una fórmula como esta:
=CONTAR.SI($B$3:$B3,B3)
[Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]
Luego, copia esta celda y pégala en las restantes de esta misma columna, una por cada una de las 2000 direcciones a controlar.
Esta fórmula, notarás, mantiene una referencia fija a la primer celda del rango y una relativa a la posición de la celda donde la fórmula estuviese.
Así en la celda debajo de la primera, la fórmula será:
=CONTAR.SI($B$3:$B4;B4)
Esto provoca que la fórmula cuente cuántas veces está la dirección de la celda B4 desde el principio hasta la fila donde está ésta función, siendo la primera ocurrencia de una dirección duplicada contada como 1.
Con esta columna auxiliar, podrás identificar claramente
Cuáles direcciones están dupicadas (aquellas cuyo conteo sea mayor a uno).
A partir de aquí puedes aplicar un filtro automático para que te muestre aquellas distinta de uno.
(Menu: "Datos" | "Filtros" | "Filtro Automático", sobre esta columna; seleccionas "Personalizada" y eliges la opción "No es igual a" y 1 en la casilla siguiente)
Ahora bien si quieres eliminar esas filas filtradas, selecciona el área filtrada y aprieta F5 (Atajo para "Ir a"). En la ventana desplegada, clickea el botón "Especial". En la nueva ventana, marca "sólo celdas visibles". Pulse el botón Aceptar.
Así habrás seleccionado sólo las filas visibles, es decir, la de las direcciones duplicadas. Ahora, puedes eliminarla con "Edición" | "Eliminar"
O bien, puedes utilizar una macro como la siguiente para que recorra esta columna auxiliar eliminando las celdas que contengas.
Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:
Sub Delerep()
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value > 1 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1).Select
End If
Loop
End Sub
Cierra el Editor de Visual Basic y graba el archivo (a modo de back up)
Luego selecciona la primera celda de la columna auxiliar y ejecuta la macro DeleRep.
Al final de su ejecución, tal columna deberá mostrar solamente unos y tendrás direcciones únicas. Finalmente, puedes borrar estas fórmulas, si es que estimas que no las necesitarás otra vez.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas