Confronto delle differenze fra file CSV

Confronta due file CSV e mostra a colpo d'occhio le righe aggiunte, quelle eliminate e le celle modificate. Potete indicare una colonna qualsiasi come chiave d'identificazione delle righe e vedere affiancati i valori prima e dopo la modifica. Il confronto funziona anche fra file con colonne diverse e l'elaborazione avviene interamente nel navigatore.

Consigli

  • Come colonna chiave è scelta per impostazione predefinita la prima, ma se esiste una colonna che funge da identificativo o chiave primaria conviene indicare quella: le righe corrispondenti saranno riconosciute correttamente anche in presenza di riordinamenti, aggiunte ed eliminazioni.
  • Se confrontate file privi di riga d'intestazione, togliete la spunta all'opzione corrispondente: le colonne saranno denominate automaticamente col1, col2 e così via.
  • Nella sezione delle righe modificate, per le righe con la stessa chiave si confrontano i valori colonna per colonna e si elencano soltanto quelle differenti, nella forma «prima, dopo».
  • Anche i file separati da tabulazioni si confrontano direttamente: basta scegliere la tabulazione come carattere separatore.
  • Invece di caricare i file potete anche incollare senz'altro un intervallo copiato da Excel o da un foglio di calcolo.

Domande frequenti

Si usa spesso per confrontare i dati anagrafici esportati prima e dopo un aggiornamento oppure per verificare la coerenza dei dati prima e dopo la migrazione di un sistema. Anche con file di molte righe si estraggono soltanto quelle aggiunte, eliminate o modificate, con un notevole risparmio di tempo rispetto al confronto a vista.

Sì. Il riconoscimento delle righe si basa sul valore della colonna chiave: anche con un ordine diverso, le righe con la stessa chiave vengono confrontate correttamente. Se però lo stesso valore di chiave compare più volte, prevale il valore della riga che appare per ultima.

Sì. Il confronto avviene su un elenco di colonne ottenuto unendo le intestazioni dei due file, perciò l'abbinamento per nome funziona anche con un ordine diverso. Le colonne presenti in un solo file sono confrontate considerando vuoto il valore mancante nell'altro.

No. Il confronto avviene interamente nel JavaScript del navigatore e il contenuto dei file inseriti o caricati non viene mai trasmesso ad alcun servente: potete usare lo strumento con serenità anche su dati riservati.

Sì. I valori delle celle sono confrontati rigorosamente come stringhe, perciò anche una differenza fra maiuscole e minuscole o uno spazio in più prima o dopo il testo risultano come modifica. Se volete ignorare le varianti di scrittura, conviene uniformarle nei dati prima del confronto.
Tool-kun

A proposito — perché per i file CSV il confronto testuale non basta

Per esaminare le differenze fra due file CSV si è tradizionalmente ricorso al confronto a vista di due fogli affiancati in Excel oppure al comando di confronto di Git, che opera sul testo riga per riga. Ma poiché in un file CSV ogni riga contiene più valori separati da virgole, il confronto testuale per righe non rivela a colpo d'occhio quale colonna sia cambiata. Questo strumento individua le modifiche cella per cella proprio per colmare quella lacuna.

Nei sistemi gestionali capita di frequente di esportare in CSV le tabelle di una base di dati per confrontarle: è la cosiddetta riconciliazione dei dati. Quando si verifica che i dati coincidano prima e dopo una migrazione, o che l'esito di un'elaborazione mensile sia quello atteso, non è raro che le righe interessate siano migliaia o decine di migliaia. A quella scala diventa indispensabile un raffronto meccanico basato su una colonna chiave.

Gli algoritmi di confronto dei sistemi di controllo di versione come Git, per esempio il metodo di Myers, eccellono nel rilevare righe aggiunte ed eliminate, ma non sono necessariamente i più adatti a dati in cui, a parità di riga, cambia soltanto il valore di qualche colonna. Il metodo adottato qui — abbinare le righe per chiave e confrontarle poi cella per cella — è un approccio pensato appositamente per i dati in forma tabellare.