Macro para la siguiente tarea

Querida comunidad necesito su ayuda en la siguiente tarea, se los agradecería mucho ya que llevo semanas intentando pero no encuentro una manera factible que me ayude sintetizar mi tarea.

Tengo una base de datos de 45 234 filas con 22 columnas (desde A hasta T), todas estas se encuentran llenas. Cada fila representa información de un reporte que tiene que ser ÚNICO, no pueden haber duplicados. El tema es que los operadores de manera errónea generan 3 o 4 reportes para un mismo caso.

Por ello, el objetivo de esta macro es CONTABILIZAR TODOS LOS REPORTES sin tomar en cuenta aquellos duplicados con información repetida UNICAMENTE de las columnas D-E-F-J-K-Q-R. Adjunto una imagen de referencia de 2 filas (IMAGEN 1) que representan un mismo reporte debido a información repetida de las columnas mencionadas. Tomando en base este ejemplo, necesito que esto se replique en toda la base de datos (IMAGEN 2) de manera que tenga 1 columna donde me contabilice el reporte único y su duplicado como 0. Como extra, si fuera posible mostrar otra columna que diga OK y DUPLICADO para verificar la información (opcional), estaría bien.

Luego con la columna de CONTEO con 1 y 0 se tiene que crear una tabla dinámica, pero esto es manual, no necesito macro para esto. Este objetivo de la macro es tener toda la base de datos seteada con 1 y 0.

En el adjunto encontrarán las IMÁGENES 1 y 2. La columna "Q" de Serial Number fue filtrado en orden para mostrar los pares de duplicados. La información original viene desordenada pudiéndose encontrar el duplicado en diferentes filas no necesariamente consecutiva.

Agradezco de antemano su apoyo comunidad.

Gracias !

2 respuestas

Respuesta

Revisa http://programarexcel.com hay cientos de macros que te pueden ayudar.

Respuesta

.06.03.17

Buenas, Ricardo

Aquí va una respuesta práctica y directa para lo que solicitas.

Mi primera aproximación sería que uses la utilidad "DATOS" - "Quitar duplicados" que te permite depurar en segundos toda tu base. Basta indicarle que controle las repeticiones en las columnas D-E-F-J-K-Q-R.

Al acceder a esa opción, verás una ventana como esta:

Donde deberías marcar las columnas a considerar para evaluar el registro como duplicados. es decir: las columnas D-E-F-J-K-Q-R.

Al dar aceptar te dejará sólo los registros únicos cuyos datos NO se repiten. Desde luego, para que funcione NO es necesario que la base esté ordenada.

Puedes hacer una prueba con un ejemplo simple para ver que hace exactamente lo que necesitas.

Esto te permite usar la tabla dinámica directamente, sin usar un campo de control además de achicar el tamaño de tu base y archivo.


Bien, pero si por alguna extraña razón, esa solución no te sirviera, puedes crear un campo auxiliar concatenando las celdas relevantes. Algo así como esto:

=D4&"-"&E4&"-"&F4&"-"&J4&"-"&K4&"-"&Q4&"-"&R4

Copia esa celda y pégala en todas las líneas de tu base.

Luego, supuesto que ese columna auxiliar fuese la "U", coloca esta fórmula que hará el conteo automáticamente, sin necesidad de ejecutar macro alguna:

=SI(CONTAR.SI(U$3:U4;U4)>1;0;1)

[Considera si usas comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]

Nota el uso del signo $ que fija la fila de títulos y NO la de la celda activa. Esto hace que el conteo se realice desde la primera fila hasta la fila donde esté ésta fórmula (no para toda la base).
Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna. Obtendrás los mismos resultados que la ves en CONTEO automáticamente.

Coméntame si alguna de estas dos soluciones resuelve lo que necesitas -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.

Un abrazo

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas