Guides

How to reconcile a bank statement in Excel

A bank reconciliation answers one question: does your record of the account agree with the bank's? If it doesn't, you want to know exactly why. Excel is well suited to this, provided the bank data in the sheet is complete and correct to begin with.

This guide works in two stages. First, verify the statement data itself. Second, match it against your ledger or cash book and explain the difference.

Stage 1: verify the statement data

If you converted a PDF statement into Excel, check the conversion before reconciling anything. A dropped row or a flipped sign will otherwise look like a reconciliation difference, and you'll waste time searching your ledger for a problem that's in the import.

Set up the statement data like this:

A B C D E F G
1 Date Description Debit Credit Balance (statement) Balance (calculated) Difference
2 Opening balance 4,250.00 4,250.00
3 02/10/2026 Card payment 86.40 4,163.60 =F2-C3+D3 =ROUND(F3-E3,2)
4 03/10/2026 Client transfer 1,500.00 5,663.60 =F3-C4+D4 =ROUND(F4-E4,2)

Fill the formulas in F and G down to the last row.

Read the Difference column:

Highlight problems automatically with conditional formatting. Select column G, choose Home → Conditional Formatting → New Rule → Use a formula, and enter:

=ABS(G3)>0.005

with a fill colour. Using a tolerance rather than <>0 avoids false alarms from floating-point rounding.

If the statement has no running balance, use the totals instead:

=Opening + SUM(D:D) - SUM(C:C)

and compare that to the closing balance printed on the statement. This confirms the total but won't tell you which row is wrong, so check row counts per page as well.

Convert a statement now — free, and nothing is uploaded.
Rowsafe reads your PDF in the browser and checks every row against the running balance.

Open the converter

Stage 2: match bank to ledger

Put your ledger or cash book entries for the same account and period on a second sheet, with the same structure: Date, Description, Amount (signed: money in positive, money out negative). Do the same with the bank data, adding a signed Amount in column H: =D3-C3.

Simple matching on amount

On the bank sheet, add a column that counts matching ledger entries:

=COUNTIFS(Ledger!$C:$C, H3)

where H3 is the bank amount and Ledger!C:C is the ledger amount column. A result of 0 means no ledger entry has that amount. Do the same in reverse on the ledger sheet.

Amount-only matching breaks down when the same amount appears several times (subscriptions, payroll). Tighten it with a date window:

=COUNTIFS(Ledger!$C:$C, H3, Ledger!$A:$A, ">="&A3-3, Ledger!$A:$A, "<="&A3+3)

This counts ledger entries with the same amount within three days either side. Adjust the window to suit how quickly your payments clear.

Pulling the matching entry across

To see which ledger entry matched, use XLOOKUP (Excel for Microsoft 365 and Excel 2021 onward):

=XLOOKUP(H3, Ledger!$C:$C, Ledger!$B:$B, "No match")

In older versions, INDEX/MATCH does the same job:

=IFERROR(INDEX(Ledger!$B:$B, MATCH(H3, Ledger!$C:$C, 0)), "No match")

Both return the first match only. When you have duplicates, mark matched pairs manually with a reference column (for example, write the ledger row number next to the bank line) so each entry is used once.

Sorting out the unmatched items

Filter both sheets to show unmatched lines. Each one falls into a category:

Category Example Action
Outstanding payments Cheque written, not yet presented Reconciling item; no correction
Deposits in transit Recorded in ledger, bank credits next period Reconciling item; no correction
Bank-only items Bank fees, interest, direct debits not yet recorded Record them in the ledger
Errors Transposed digits (54.10 vs 45.10), wrong account Correct the ledger entry
Import errors Missing statement row Go back to Stage 1

A useful check for transposition errors: if a difference is exactly divisible by 9, two digits may have been swapped.

The reconciliation summary

Put this at the top of the workbook. It's what a reviewer will read.

Line Amount
Balance per bank statement 5,543.60
Add: deposits in transit 600.00
Less: outstanding payments (240.00)
Adjusted bank balance 5,903.60
Balance per ledger 5,918.60
Less: bank fees not yet recorded (15.00)
Adjusted ledger balance 5,903.60
Difference 0.00

Link every figure to the underlying lists with SUMIFS on a Category column rather than typing numbers in. If the difference isn't zero, the summary tells you there's still an unexplained item.

Carry outstanding items forward. Next month, they should clear on the statement; anything still outstanding after a few months deserves investigation.

Where Rowsafe helps

Stage 1 is where Rowsafe fits. It converts text-based PDF statements into spreadsheets in your browser and runs the running-balance check on every row for you, flagging any row that doesn't add up before you export.

Rowsafe doesn't do the ledger matching in Stage 2; that's your spreadsheet or accounting software. It also doesn't read scanned statements yet, and unusual layouts may need a column fix in the preview.

FAQ

How often should I reconcile? At least monthly, when each statement arrives. Busy accounts benefit from weekly reconciliation using the bank's transaction download.

Why use ROUND in the difference formula? Excel stores numbers in binary floating point, so sums of decimals can leave tiny residues like 0.0000000001. Rounding to two decimals removes them.

My difference is a small round number. Where do I look first? Bank fees and interest, which often aren't in the ledger until you see the statement.

Can I reconcile directly in QuickBooks or Xero instead? Yes, and for ongoing work you probably should. The Excel method is useful for historical periods, catch-up work, and accounts outside your accounting software. See the QuickBooks and Xero guides for importing statements.

Convert a statement now — free, and nothing is uploaded.
Rowsafe reads your PDF in the browser and checks every row against the running balance.

Open the converter