domingo, 15 de noviembre de 2015

MACRO PARA BUSCAR VALORES DUPLICADOS EN UNA HOJA DE CÁLCULO

Aunque en Excel existen varias maneras de encontrar valores duplicados, me decidí a hacer una macro con dicho fin porque esta nos permitirá entre otras cosas el uso de vectores y métodos de ordenación.

Tenemos la siguiente hoja de cálculo



Como pueden ver el nombre y correo electrónico se repiten los deje igual porque el dato que más nos interesa es el teléfono. La macro que les mostrare a continuación busca los teléfonos repetidos y los resalta con un color especifico además escribe en la celda contigua en que posición de la hoja de calculo se encuentra el teléfono por primera vez.

Para empezar definimos las variables globales:


Se definen dos vectores pero a ninguno se le asigna el tamaño, esto porque no sabemos cuantos datos contendrá la hoja de cálculo. En el vector1 guardaremos los números de teléfono y el vector2 la fila en la hoja de calculo que contiene dicho numero de teléfono.

Después agregamos la rutina principal

Curso online de excel

A partir de esta rutina se ejecutara toda la macro, para averiguar cuantas filas con datos tiene la hoja de calculo usamos la instrucción ffinal = ws.Range("C2").End(xlDown).Row. 
Conociendo este dato redefinimos el tamaño de los vectores con la instrucción 
ReDim Preserve vector1(ffinal - 1)
ReDim Preserve vector2(ffinal - 1)
Podemos hacerlo sin usar la palabra Preserve esta se usa para indicar que cuando se redefina el tamaño del arreglo no se borren los datos que contiene, en este caso no era realmente necesario pues el vector aun se encuentra vacio.

Generamos un ciclo que nos permite adicionar valores al vector invocando una rutina creada para dicho fin.
For F = 2 To ffinal
        Adicionar_Vector ws.Range("C" & F), F
Next F

Después  invocamos otra rutina que organiza el vector usando el método burbuja y por ultimo buscamos valores repetidos en el vector con una rutina más. 

Esta es la rutina que agrega datos a los vectores:


Recibe por parámetro el teléfono y la fila en la hoja de cálculo que contiene dicho teléfono, guarda en el vector1 el teléfono y en el vector2 la fila del teléfono.

Después debemos ordenas los vectores, esto nos lo facilita la siguiente rutina


Para ordenar el vector usamos el método burbuja, lo que hacemos con este método de ordenación es comparar cada posición del vector con la siguiente intercambiándola si es menor (para este caso donde queremos ordenar en orden ascendente) este procedimiento se repite hasta que no sea necesario realizar mas intercambios.

Para finalizar adicionamos la rutina que nos permitirá encontrar los teléfonos repetidos:

Cusro online de excel
En esta rutina recorremos los vectores comparando cada posición con la siguiente si tienen el mismo numero de teléfono resaltamos la celda de la hoja de Excel con un color especifico y escribimos en la celda inmediatamente contigua donde se encuentra dicho teléfono por primera vez.

Así es como se ve la hoja de cálculo después de ejecutar la macro:



Espero que esta información te sea útil, si quieres aprender mas sobre Excel avanzado visita nuestro curso onlineel curso de Excel se encuentra dividido en tres niveles:

Nivel Básico: Diseñado para las personas que no tienen ningún conocimiento en Excel aprenderá a crear planillas formulas gráficos.

Nivel Intermedio: Diseñado para aquellos que tienen los conocimientos básicos de Excel, entre otras cosas aprenderá  a crear semáforos, tableros comandos, tableros de función etc.

Nivel avanzado: aprenderá funciones muy poderosas de Excel que lo impulsaran en su vida laboral, tablas dinámicas, solver , buscar objetivos.

Los beneficios que obtendrá con respecto a un curso presencial de excel son varios:

El curso está disponible las 24 horas, podrá ingresar a la hora que quiera es decir no estará limitado por horarios.

Se inscribe en el curso una vez y estará disponible para usted  de por vida.

No hay mensualidades, paga una  vez y tiene acceso al curso de por vida además de manuales y libros de Excel

Para mayor información sobre el curso de Excel online haga clic aquí.

Curso online de excel
Puedes ver la macro en funcionamiento en el siguiente vídeo.

Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.

Puedes descargar el documento excel con la macro siguiendo este enlace.


En mi ebook Macrosymacros encontraras una colección de macros, que te serán muy útiles  en tus procesos de automatización de hojas de calculo, puedes encontrarlo aquí.






1 comentario:

  1. Muchas gracias, por el modelo de macro, realemente bueno. saludos desde Temuco, Chile

    ResponderEliminar