Browse software guides

CSV exports · Worked example

Compare CSV exports by ID.

Two exports can contain the same number of rows while describing different items. Start with a stable ID, then separate changed values from rows that appear in only one file. This small example gives you a result you can check by hand.

Try a sample in two clicks

Open the free demo, choose Load synthetic sample, then Compare exports. No account or upload is needed. The built-in sample is separate from the inventory example below.

Try the free 50-row demo

The demo accepts 50 rows per source; the downloadable edition accepts 10,000 rows per source. Every edition has a 2 MiB limit per source. See the current prices and licenses in the shop.

1. Choose a stable, unique ID

Use item_id for these samples. Match AX-102 to AX-102, even if its quantity changes or its row moves. Row position is a poor identifier: a sort or a new row can shift everything below it.

This worked example matches IDs exactly as written. Before using another export, check how your comparison tool handles case, surrounding spaces, blank keys and leading zeros. An ID such as 0012 should not silently become 12 during spreadsheet preparation.

2. Copy two tiny synthetic exports

Save each block as a separate UTF-8 CSV file with its header line. Treat before.csv as the earlier export and after.csv as the later export. Both contain four data rows.

before.csv

item_id,item,quantity,status
AX-101,Cable kit,4,ready
AX-102,Desk stand,2,ready
AX-103,Label pack,6,ready
AX-104,Tray insert,3,hold

after.csv

item_id,item,quantity,status
AX-101,Cable kit,4,ready
AX-102,Desk stand,5,ready
AX-104,Tray insert,3,hold
AX-105,Clamp pad,1,ready

The row count alone would miss both the quantity change and the replacement of AX-103 by AX-105.

3. Check the expected result

Using exact item_id matches, three IDs appear in both files. Two are unchanged and one has a changed value. One ID appears only in the earlier export, and one only in the later export.

Manual comparison of the two synthetic exports
IDWhat changedWhat to review
AX-101UnchangedAll non-ID values are the same.
AX-102Quantity: 2 → 5Same ID; compare the quantity cell, not the row number.
AX-103Earlier export onlyCheck export filters and scope before calling this a deletion.
AX-104UnchangedIt moved up one row; its values did not change.
AX-105Later export onlyCheck export filters and scope before calling this a new record.

A missing row is a finding, not an explanation. A different date range, filter or export failure can remove a row without the source record being deleted.

4. Review the match before acting on it

Try the synthetic example in CSV Compare

  1. Load before.csv and after.csv in the free demo. Select item_id as the record key for both files.
  2. Use Add field pair to pair the left quantity column with the right quantity column as a text field. Leave amount and currency set to Do not compare.
  3. Run the comparison and check the output against the manual result here. The sample changes only quantity on a shared ID; only mapped fields are compared, so include other relevant columns when preparing another example.

With this mapping, expect 2 matched rows and 3 review rows: AX-102 is Text differs, AX-103 is Only on left, and AX-105 is Only on right.

Check the sample result before trying your own non-sensitive test exports.

Open the free demo See current plans in the shop

The shop is the place to check current prices, license terms and purchase details.

Product references