Excel Tools

Bank reconciliation: match your statement and your ledger

Load the bank statement and the ledger export. Transactions are paired by exact amount within a date window, using the description to break ties, and you get the lines that are only in the bank or only in your books.

No files at hand?

How to do a bank reconciliation in Excel

  1. Export both sides. Download the bank statement for the period as Excel or CSV, and export the bank account from your accounting software (the general ledger or cash book for that account).
  2. Load the two files and check the columns: date, description and amount. If your bank uses separate debit and credit columns, choose “Money in / money out”.
  3. Choose a date window. Payments and receipts often appear one to three days apart in the bank and in the books. ±3 days is a good start.
  4. Click Reconcile. Lines with the same amount inside the window are paired one to one; the description breaks ties.
  5. Work through the differences. “Only in bank” usually means fees, interest or direct debits not yet booked. “Only in ledger” is usually outstanding cheques and deposits in transit. Download the Excel file and keep it as your reconciliation working paper.

Private by design: bank data stays on your device

Bank statements and ledgers are some of the most sensitive files a business has. This tool reads and reconciles them inside your browser, in a background worker. Nothing is uploaded, there is no account, and no AI service sees your transactions.

The page only downloads its own code and the open-source library that reads Excel files (SheetJS). You can check it in the Network tab of your browser’s developer tools, or go offline after the page loads and keep working.

What is matched, and in what order

Sign conventions: why the bank and your books look opposite

A bank statement is written from the bank’s point of view: a debit takes money out of your account and a credit puts money in. In your own books the bank account is an asset, so it works the other way round: money received is a debit to the bank account and money paid is a credit. That is why the same payment appears as a “debit” in one file and a “credit” in the other.

The tool normalises both sides so that money in is positive. For each file choose either one signed amount column or two columns, and say which one is money in. If your export shows money in as negative, tick “Flip the sign”. If almost nothing matches but many amounts would match with the opposite sign, the result shows a warning.

TransactionBank statementLedger (bank account)Normalised
Customer pays an invoiceCredit 1,200.00Debit 1,200.00+1,200.00
You pay a supplierDebit 350.40Credit 350.40−350.40
Monthly bank feeDebit 12.00(not booked yet)−12.00

Why it is hard with VLOOKUP or SUMIF

The usual spreadsheet method is a helper column with =COUNTIF(Ledger!C:C,C2) or a VLOOKUP on the amount. It breaks as soon as two transactions share the same amount: both bank lines find the first ledger line, and nothing stops the same line from being used twice. Lookups also ignore dates, so a payment from March can be “matched” with one from May, and they cannot find a single bank receipt that pays three invoices. A pivot table or SUMIF by date shows that totals differ, but not which lines cause the difference.

This tool does the one-to-one assignment, respects a date window and lists the exact lines that are left on each side.

Who it is for

Accounting suites have reconciliation built in, and there are spreadsheet add-ons and AI services that ask you to upload your statements. This page is for when you just have two spreadsheets and want an answer without sending your bank data anywhere.

Known limitations

Frequently asked questions

Is this bank reconciliation tool really free?

Yes. It is 100% free, with no usage limits, no account and no sign-up. There is no paid plan and no feature is locked.

Are my bank statements uploaded to a server?

No. Both files are read and reconciled inside your browser. The page only downloads its own code and open-source spreadsheet libraries from this site; the contents and names of your files are never sent anywhere. If you accept analytics cookies, Google Analytics receives anonymous usage data such as page views, never the contents or names of your files.

Which files can I use?

Any Excel (.xlsx, .xls), OpenDocument (.ods) or CSV export with one row per transaction: most online banking portals and accounting programs can export one. PDF statements must be converted to Excel or CSV first. Columns can be in any order; you choose the date, description and amount columns.

My bank uses separate debit and credit columns. Does that work?

Yes. Choose “Money in / money out” and pick both columns. Remember that on a bank statement a debit is money out, while in your books a debit to the bank account is money in. Both sides are normalised so that money in is positive.

How are transactions matched?

First by exact amount (to the cent), then by date: only lines within the date window you choose are candidates and closer dates win. When several candidates are equally close, the most similar description wins. Each line is used once, and the tool finds the assignment that pairs the most lines.

Can one payment match several invoices?

Yes, if you tick the one-to-many option. One line can be matched with 2 to 4 lines on the other side that add up to exactly the same amount, with the same sign and within the date window. If more than one combination fits, nothing is matched, so you never get a guess.

What do “only in bank” and “only in ledger” mean?

They are the reconciling items. Only in bank: fees, interest, direct debits or receipts not yet recorded in your books. Only in ledger: outstanding cheques, deposits in transit or errors. The summary shows their totals and how much of the difference they explain.

Does it replace my accounting software?

No. It is a quick, private way to compare two spreadsheets and produce a working paper. Review the matches and book any adjustments in your accounting system.

Analytics: only if you accept cookies, the page loads Google Analytics (through Google Tag Manager) to count visits and see which tools are used. It never receives the contents or names of your files. You can change your choice at any time with “Cookie settings” at the bottom of the page.