Comparar dos archivos CSV: qué cambió entre exportaciones
Dos exportaciones de periodos consecutivos, un archivo que usted envió y la respuesta a él, un catálogo de productos antes y después de una actualización. La tarea parece sencilla, pero las formas habituales de hacerla dan una respuesta en la que no se puede confiar.
Por qué no funciona un diff línea a línea
Las herramientas de comparación de texto (WinMerge, el diff de los editores) emparejan las líneas por posición. Para una tabla es un error: basta con que se inserte un registro en medio para que todas las líneas siguientes aparezcan como cambiadas.
Además, el orden de la exportación puede haber cambiado: entonces todo aparece distinto, aunque los datos sean idénticos.
Las tablas se comparan no por posición sino por clave: un campo o conjunto de campos que identifica de forma única un registro.
Por qué BUSCARV no basta
El enfoque clásico es llevar las dos exportaciones a una hoja y compararlas con una fórmula. Funciona, con reservas:
- BUSCARV dice si un registro existe, pero no en qué campo cambió: eso exige una fórmula por columna;
- con un par de cientos de miles de filas, recalcular tarda minutos;
- Excel ya habrá estropeado los ceros iniciales por el camino y las claves dejarán de coincidir: la causa más molesta y frecuente de falsas diferencias (vea ceros iniciales).
Cómo hacerlo bien
El procedimiento es el mismo para cualquier par de tablas:
- Elija la clave. Un campo o varios: un número de pedido, un par como referencia + almacén, un cliente + fecha. La clave debe ser única; si no lo es, la herramienta debe decir cuántas repeticiones encontró.
- Empareje las columnas por nombre, no por posición: puede haberse añadido un campo en medio de la exportación nueva.
- Obtenga cuatro números: añadidos, eliminados, modificados, sin cambios. Deben sumar el número de filas: la primera comprobación de cordura del resultado.
- Vea qué cambió exactamente, hasta el campo: antes → ahora.
En Tabulens las dos exportaciones se abren en pestañas, la clave se elige con un clic y el informe de discrepancias se puede exportar a CSV, listo para dárselo a quien corrige los datos en el sistema de origen.
Trampas de la comparación
- Los espacios.
"García "y"García"son cadenas distintas. Recortar los extremos debe estar activado o la mitad de los registros aparecerán «modificados». - Mayúsculas y minúsculas. En los códigos suele importar, en los apellidos normalmente no. Es un ajuste, no un dogma.
- Formatos de número.
10.5y10,50son el mismo valor escrito de otra forma. Compare los valores convertidos, no el texto. - Una clave no única. Si varios registros comparten una clave, la comparación pierde su sentido: añada otro campo a la clave.
Preguntas frecuentes
¿Puedo comparar un CSV con un DBF?
Sí, siempre que las dos tablas tengan columnas con los mismos nombres: el formato de origen no importa para la comparación.
¿Y si los archivos están ordenados de forma distinta?
En una comparación por clave el orden de las filas no importa.
¿Qué rapidez tiene?
Comparar dos tablas de unas mil quinientas filas lleva decenas de milisegundos; con cientos de miles de filas, segundos.
Gratis para usar. Su archivo no se sube a ningún servidor. Versión para Windows — 4.6 MB, sin instalación: detalles. Pro — 29 USD una sola vez: precio.