hoja-calculo

Cómo usar VBA para evitar entradas duplicadas en Excel

Si realmente desea almacenar información en MS Excel, es importante configurar los datos correctamente desde el primer día. Al evitar la entrada repetida, puede ahorrar muchos problemas en el futuro.

Suponga que está manteniendo una lista de clientes y le preocupa que se haya ingresado cierta información varias veces. Si usa datos para ejecutar una parte importante de su negocio, esto puede causar problemas:

  • Confiando en información incompleta o incorrecta
  • Problemas de administración financiera, como el envío de facturas duplicadas
  • Al transferir a plataformas más complejas, su información no puede estar "lista para la base de datos"

Este artículo se centra en cómo advertir sobre posibles duplicaciones durante la entrada de datos.

Creación de una clave única para sus datos

El problema con la identificación de duplicados es que no todos ven los datos de la misma manera. ABC Ltd se puede registrar en muchas variantes diferentes, como ABC Limited o A.B.C. Ltd. Es más difícil encontrar entradas duplicadas.

Una técnica es crear una clave de datos: una combinación única de texto / número creada a partir de las tres primeras letras del nombre comercial y la dirección de la calle. De esta manera, si la persona que ingresa los datos sigue las reglas de su negocio para registrar nuevos clientes, entonces cualquier repetición tiene más posibilidades de ser seleccionada.

Uso de VBA en Excel para descubrir entradas de datos duplicadas

Excel tiene varias opciones para evitar la duplicación, incluidas las fórmulas y las herramientas de formato integradas. Pero, probablemente, la codificación más sencilla de VBA es la opción más útil y flexible porque le permite ajustar su solución a su situación.

Usaremos el evento de "cambio" de la hoja de trabajo de VBA para ayudarnos a decidir si estamos intentando repetir la entrada. Este es el código: debe colocarse en el área de códigos de la hoja de cálculo correspondiente:

Private Sub worksheet_change (ByVal Target As Range)

Si Target.Column = 1 entonces

prevData = "a1: a" & Target.Row – 1

newData = Range ("a" & Target.Row) .Text

Si Application.WorksheetFunction.CountIf (Range (prevData), newData)> 0 entonces

dupData = "¡Tal vez repita!"

De lo contrario

dupData = "Determinación de datos"

Fin si

MsgBox dupData

Fin si

End Sub

Suponiendo que sus datos de "clave" están en la columna 1, después de agregar un nuevo registro, el código verifica si la clave se agregó previamente y, de ser así, le recuerda al usuario que repita La posibilidad Esta es la mejor opción porque le permite al operador de entrada de datos decidir si continuar o no.

La función countIf en Excel compara una serie de celdas con un texto específico y devuelve el número de celdas repetidas. En este caso, comparamos la nueva clave de registro introducida con todas las claves anteriores. Si la función devuelve un número mayor que 0, entonces debe ser una entrada duplicada.

Mejora de código

Una cosa es sospechar que los registros son duplicados, pero debe decidir cómo manejar esta información. El código se puede ajustar para resaltar el mismo registro anterior para determinar el siguiente paso, tal vez el registro duplicado tenga información incorrecta y solo deba corregirse.

Al observar los datos duplicados, ha aprendido cómo una pequeña cantidad de código VBA puede mejorar la calidad de los datos, ahorrar tiempo y alertarlo sobre posibles problemas.



Plantillas de excel