How to combine bank statement CSV files without losing transactions

By Arron Child, reviewed by Arron Child. Updated 24 July 2026.

Combining monthly exports is safe only when you preserve provenance, normalise columns before sorting, and treat duplicates as review items rather than deleting them blindly. The aim is one useful working file without losing the evidence that tells you where every row came from.

Before you merge anything

Keep every original file unchanged. For each one, record the source filename, account, currency, date range, opening and closing balance, delimiter, encoding, and whether money is represented by one signed Amount column or separate Money in and Money out columns.

Do not combine different accounts or currencies because their dates happen to overlap. If the bank offers one native export for the whole period, that is safer than stitching monthly files. If a source came from a PDF converter, reconcile it to the PDF before merging it with anything else.

A repeatable merge method

  1. Load every file into the bank statement CSV merger.
  2. Confirm the inferred Date, Description, Amount or debit/credit, and Balance columns for each source.
  3. Normalise dates and amounts without overwriting the original cell text or filename.
  4. Review overlapping statement periods. An overlap is a place to inspect, not an error by itself.
  5. Review exact duplicates separately from same-day, same-amount possible duplicates.
  6. Sort by date and source row, then export the reviewed copy.
  7. Reconcile the merged result against every source statement and retain the originals.

For a manual spreadsheet workflow, import each file into its own table first, add Source file and Source row columns, align the headers, append the tables, and only then sort. Pasting raw files one after another loses provenance and commonly inserts a second header row into the transactions.

Normalise before sorting

Dates such as 03/04/2026 are ambiguous until you declare the source format. Convert them to a real date or ISO 2026-04-03 only after confirming day and month. Amounts must become plain decimals: no pound sign, thousands separator, or parentheses left uninterpreted.

For separate columns, calculate:

Signed amount = Money in - Money out

Blank is not always zero. A blank balance may mean the bank prints only day-end balances; a blank amount may be a brought-forward marker. Preserve those distinctions until review.

Why duplicates cannot be deleted automatically

Two equal card payments can both be real. A person can pay the same café £4.25 twice on one day, and standing orders can repeat the same amount and description every month.

An overlap duplicate has stronger evidence: the same date, amount, description, and account appear in two source exports whose periods overlap. Even then, show both source locations and ask for confirmation. Never silently keep the first row and discard the second.

Use three labels:

  • Exact duplicate: all normalised transaction fields match.
  • Possible duplicate: date and amount match but the description or source differs.
  • Confirmed overlap duplicate: review establishes that two source rows describe one bank transaction.

Missing months and partial periods

A calendar gap is a prompt to inspect coverage, not proof that a statement is missing. A quiet account can have no transactions for weeks, and a custom export can start or end mid-month. Compare each source's statement period and opening/closing figures.

Continuity is stronger evidence: one period's closing balance should agree with the next period's opening balance, allowing for transactions outside custom export boundaries. Record gaps and overlaps explicitly rather than inventing rows.

Worked check

January opens at £1,982.64, pays £73.28, receives £845.19, and closes at £2,754.55. February starts at £2,754.55 and pays £116.47, so the combined running balance should reach £2,638.08 before any later February rows:

£1,982.64 - £73.28 + £845.19 - £116.47 = £2,638.08

If the merged file says £2,711.36, the £73.28 debit may have been dropped or duplicated in the wrong direction. Find the first broken source row; do not add an adjustment.

When it goes wrong

  • Second header in the middle: remove it from the reviewed copy, retaining its source row as provenance.
  • Mixed date formats: configure each source separately before normalising.
  • Debit and credit swapped: rebuild signed amounts and rerun the balance chain.
  • Possible duplicates everywhere: separate accounts or currencies were probably mixed.
  • Formula-like descriptions: export with safe CSV quoting and formula neutralisation.
  • Broken balance or unexplained gap: return to the original statement before importing.

Reviewed 24 July 2026. The merger reports evidence; it never deletes transactions automatically.