Comparar CSVs
Detecta qué filas cambiaron, se agregaron o se eliminaron entre dos versiones de un CSV.
100% local, tu archivo no sale de tu navegador
Todo el procesamiento ocurre en tu dispositivo. No subimos nada a ningún servidor.
CSV A (original)
CSV B (nueva versión)
Por qué comparar dos CSVs
En la operación diaria de negocios digitales y procesos contables, el mismo dataset aparece en versiones distintas con frecuencia: el libro de ventas del SII a fin de mes vs mitad de mes, el export de clientes del CRM ayer vs hoy, el listado de empleados antes y después de la planilla. Saber exactamente qué cambió es la diferencia entre auditar bien y auditar mal.
El diff estructurado por columna clave responde tres preguntas de una:
- ¿Qué se agregó? Filas en B que no estaban en A.
- ¿Qué se eliminó? Filas en A que ya no están en B.
- ¿Qué se modificó? Filas en ambos pero con valores distintos en algún campo, con reporte de cuál cambió y cuánto.
Elegir la columna clave
La clave es el campo que identifica unívocamente cada fila. Ejemplos comunes:
- RUT: para listados de personas o empresas en Chile. Idealmente el RUT está limpio (mismo formato en ambos archivos: con o sin puntos, con o sin guion).
- Email: para bases de usuarios o contactos. Único por persona típicamente.
- ID de transacción: para movimientos bancarios, facturas, pedidos.
- SKU: para inventario de productos.
- Folio: para DTEs del SII.
Si la columna elegida tiene duplicados, el diff se vuelve ambiguo — se usa el primer match y los demás se ignoran. Para claves no únicas, conviene generar una clave compuesta con script (ej: “rut+fecha”) antes de comparar.
Formato del output
El diff produce cuatro secciones:
- Resumen: cuántas filas sin cambios, con cambios, solo en A, solo en B. Útil para sanity check inicial.
- Solo en A: filas del CSV original que desaparecieron. Exportable como CSV independiente para análisis.
- Solo en B: filas nuevas del CSV actualizado. Equivalente a los registros agregados.
- Diferencias: filas con match por clave pero con al menos un campo cambiado. Se muestran fila a fila con el valor anterior y el nuevo por columna.
Casos de uso en Chile
Auditar exports del SII. Bajás el libro de ventas del SII hoy y lo comparas con el que bajaste la semana pasada. Detectás qué DTEs se emitieron, cuáles se anularon o modificaron, y cuáles cambiaron de estado. Clave: folio DTE o RUT receptor.
Cambios en lista de precios. Tu proveedor te manda la lista de precios actualizada. Comparás con la anterior por SKU para identificar todas las variaciones: qué productos cambiaron de precio, cuáles se dejaron de vender, cuáles son nuevos.
Conciliación de cartolas bancarias. Export de Banco Estado de este mes vs el reporte de tu sistema contable. Comparás por ID de transacción; detectás transferencias faltantes (no cargadas a tu ERP), cargos que deberían existir y no están, y desfases de montos.
Seguimiento de cambios en RR.HH. Listado de empleados exportado mensual. Comparás para ver altas, bajas y cambios de cargo/sueldo. Base para reportería al área de contabilidad y auditoría interna.
Auditoría de base de clientes. El CRM pasa por múltiples modificaciones diarias. Export de hoy vs export de hace una semana identifica quién se dio de alta, quién cambió datos de contacto, quién se marcó como inactivo.
Control de consentimiento Ley 19.628. Para verificar que un listado extraído para campaña de marketing solo incluye clientes que dieron consentimiento, comparar contra el master de consentimientos detecta cualquier registro indebido.
Diff por clave vs diff binario
Nuestro diff es estructural, no posicional. Significa:
- El orden de las filas no importa. A tiene 1000 filas, B tiene las mismas 1000 filas pero ordenadas distinto — se reporta como 1000 sin cambios, no como 1000 cambios.
- Cambios en columnas no clave se detectan como diferencias específicas. Si el nombre del cliente cambió de “Juan Perez” a “Juan Pérez”, lo vemos.
Esto es distinto del diff binario/textual que ofrecemos en /archivo/comparar, que compara línea por línea sin entender estructura. Para CSVs cuyos headers pueden haber cambiado de orden o cuyas filas pueden estar reordenadas, el diff estructural es el correcto. Para archivos que deben ser idénticos bit a bit (verificación de integridad), el diff binario es mejor.
Errores comunes
Claves con formato distinto. “12.345.678-9” en un archivo y “12345678-9” en otro no matchean. Normalizá los RUTs antes (remover puntos) con un script o con Find & Replace en un editor.
Case sensitivity en emails. “Juan@Ejemplo.CL” y “juan@ejemplo.cl” son distintos para el match. Considerá aplicar lowercase antes de comparar.
Espacios y tabs en claves. “ABC123 ” (con espacio) y “ABC123” no matchean. Limpiá whitespace primero.
Datos en columnas distintas por error. Si un CSV cambió estructura (agregaron una columna en medio), toda la data se ve desalineada. Verificá que ambos archivos tengan estructura coherente antes.
Privacidad crítica
Los CSVs a comparar suelen tener información especialmente sensible: RUTs, emails, datos bancarios, sueldos, historial médico. Procesar localmente elimina el riesgo de exponer esos datos a servicios web de terceros. Cumple con las mejores prácticas para manejo de datos personales bajo Ley 19.628 y con estándares de auditoría interna.
Relacionadas
- Filtrar CSV — para preparar datos antes de comparar.
- Combinar CSVs — unir múltiples CSVs en uno antes o después.
- Comparar archivos — diff binario para verificar integridad exacta.
Preguntas frecuentes
¿Cómo matchea filas entre los dos CSVs?
Por una columna clave que elige el usuario (RUT, ID, email, etc.). Cada fila de A se busca en B por el valor de esa columna. Filas sin match se reportan como 'solo en A' o 'solo en B'; filas con match se comparan campo por campo para detectar diferencias.
¿Puedo comparar si los headers difieren?
Los headers pueden diferir, pero al menos la columna clave debe existir en ambos archivos. Para el diff campo-por-campo solo comparamos columnas presentes en ambos CSVs — columnas únicas a uno u otro se ignoran en ese nivel.
¿Detecta cambios de orden?
No importa el orden de filas porque matcheamos por columna clave, no por posición. Si en A la fila del cliente X está arriba y en B está abajo, no lo contamos como cambio — ambos tienen al cliente X y se comparan sus otros campos.
¿Qué pasa si la columna clave tiene duplicados?
Tomamos el primer match. Si tu columna 'email' tiene el mismo email en dos filas, solo la primera se compara — las otras se ignoran. Para datasets con posibles duplicados, conviene limpiar con 'filtrar-csv' o generar una clave compuesta con un script.
¿Puedo exportar el resultado?
Sí. Cada sección (solo en A, solo en B, diferencias) se puede descargar como CSV independiente. Las diferencias se exportan en formato long: columnas clave, columna cambiada, valor antes, valor después.
¿Los CSVs se suben a un servidor?
No. La comparación ocurre íntegramente en tu navegador. Ideal para auditar exports del SII, comparar versiones de base de datos, o validar reportes financieros sin exponer la data.