Append CSV files with different column orders

Columns are matched by header name (or position), missing fields stay missing, and a provenance column records which file each row came from.

Example data — not saved

Showing synthetic sample data: Append two supplier files. Open or drop your own file to replace it — files are read in your browser and never uploaded.

Source AUpdating…
Loading…

Arrow keys move; Enter or double-click edits a cell (recorded as a replayable “Cell edits” step). ∅ = missing, · = edge whitespace, ↵ = line break inside a value. Row labels show source:record provenance.

What the append step does

The example stacks a northern and a southern supplier list. The southern file has its columns in a different order and an extra lead_days column. Matching by name puts sku, name and unit_price in the right place; lead_days is added as a new column and is missing for the northern rows rather than filled with a guess.

The step’s ledger shows the exact header mapping used and counts: rows before, rows appended and the total. If you choose to drop unmatched columns, the step reports that as a loss.

Every row keeps a provenance ID such as B:2 (source B, record 2). Export the provenance report from the Export tab to keep that link outside the app.

Questions

How do I add more files?

Use “Add file” or drop several files at once. Each gets a letter (A, B, C…). Add one Append step per extra file, or use them in joins and comparisons.

What if two columns share a name?

Duplicate headers are matched in order of appearance, and internal column IDs keep them distinct throughout the recipe.

Does merging remove duplicates?

No. Appending only stacks rows. Add a Deduplicate step afterwards if the files overlap, so you can review the duplicate groups first.