SheetLink
how to

How to Reconcile Bank Statements in Google Sheets

A step-by-step guide to reconciling your bank statements in Google Sheets — manually or automatically with live bank data via SheetLink.

SheetLink Team·SheetLink
··5 min read

Bank reconciliation sounds more complicated than it is. At its core, you're just confirming that what you think you spent matches what your bank says you spent.

Google Sheets is a solid place to do this — especially if your transaction data is already there. This guide walks through the full process, from pulling in your data to flagging discrepancies, with formulas you can use today.

Reconciliation is the process of matching two sets of records:

  1. Your internal records — what you've logged, categorized, or tracked in your spreadsheet
  2. Your bank statement — the official record of every transaction your bank processed

When they match, you're reconciled. When they don't, you have something to investigate — a missing transaction, a duplicate entry, a bank error, or a timing difference.

For personal finance, reconciling monthly catches overspending, missed subscriptions, and fraudulent charges before they compound. For small businesses, it's essential for accurate books.

You have two options:

Option A — Manual CSV import: Download a CSV from your bank's website and paste it into a sheet. Works, but tedious — especially if you have multiple accounts.

Option B — Automatic sync with SheetLink: SheetLink connects your bank via Plaid and syncs transactions directly into Google Sheets. One click, all accounts, no CSV wrangling.

Once your transactions are in, you should have columns for at minimum: Date, Description, Amount, and Account.

Create a new tab called Reconciliation. You'll build a simple structure:

| Opening Balance  | [enter from bank statement]  |
| + Deposits       | [formula]                    |
| - Withdrawals    | [formula]                    |
| = Closing Balance| [formula]                    |
| Bank Balance     | [enter from bank statement]  |
| Difference       | [formula — should be $0.00]  |

The goal: Difference = $0.00. If it's not, you have something to find.

Assuming your transactions are on a sheet called Transactions with amounts in column D (positive = deposit, negative = withdrawal):

Total deposits for a period:

=SUMIF(Transactions!D:D,">"&0)

Total withdrawals for a period:

=SUMIF(Transactions!D:D,"<"&0)

Filter by date range (e.g. March 1–31):

=SUMPRODUCT((Transactions!A:A>=DATE(2026,3,1))*(Transactions!A:A<=DATE(2026,3,31))*(Transactions!D:D>0)*Transactions!D:D)

Adjust the sheet name and column references to match your actual data.

Add a Cleared column to your transactions sheet. Mark each transaction as Y once you've confirmed it appears on your bank statement.

Use conditional formatting to highlight uncleared rows:

  1. Select your transaction range
  2. Format → Conditional formatting
  3. Custom formula: =$E2<>"Y" (where E is your Cleared column)
  4. Set a highlight color

Any row still highlighted at month end needs attention.

To count uncleared transactions:

=COUNTIF(Transactions!E:E,"<>Y")

If your closing balance doesn't match the bank, common culprits are:

  • Timing differences — a check you wrote hasn't cleared yet (normal, note it)
  • Missing transactions — a charge didn't make it into your sheet
  • Duplicates — the same transaction imported twice
  • Data entry errors — wrong amount, wrong sign

Sort your transactions by amount descending to spot large outliers quickly. Use Ctrl+F to search for specific merchants or amounts.

Find duplicates by transaction ID (if using SheetLink data):

=COUNTIF(Transactions!B:B, B2)>1

Flag any row where this returns TRUE.

Once reconciled, protect the sheet range for that period so it can't be accidentally edited. In Google Sheets:

  1. Select the reconciled rows
  2. Right-click → Protect range
  3. Set permissions to "Only you"

This gives you a clean audit trail — each month's data is locked once confirmed.

The most time-consuming part of reconciliation is getting accurate, complete transaction data. SheetLink removes that friction.

Once connected, syncing pulls every transaction from all your linked accounts directly into your sheet — categorized, dated, and deduplicated. You skip the CSV step entirely and go straight to the matching.

TaskFormula
Total deposits=SUMIF(D:D,">"&0)
Total withdrawals=SUMIF(D:D,"<"&0)
Count uncleared=COUNTIF(E:E,"<>Y")
Net change=SUM(D:D)
Deposits in date range=SUMPRODUCT((A:A>=start)*(A:A<=end)*(D:D>0)*D:D)
Flag duplicates=COUNTIF(B:B,B2)>1

Bank reconciliation in Google Sheets comes down to three things: clean transaction data, a simple balance summary, and a cleared flag on each row. With those in place, reconciling monthly takes 15 minutes instead of an afternoon.

If pulling transaction data is the bottleneck, SheetLink handles that part — so you can spend your time on the actual review, not the data prep.

google sheetsbank reconciliationbookkeepingpersonal financesmall business

Reconciling means verifying that the transactions in your records match what your bank shows. You're confirming every deposit and expense is accounted for and that your ending balance matches the bank's.

Yes. Google Sheets works well for bank reconciliation — especially when your transaction data is already there. You can use SUMIF, filters, and conditional formatting to flag discrepancies quickly.

SheetLink connects your bank via Plaid and syncs transactions directly into Google Sheets with one click. No CSV downloads, no copy-pasting.

Monthly is standard for most people and small businesses. Weekly works better if you have high transaction volume or want to catch issues sooner.

A bank statement is what your bank shows you. A reconciliation is the process of matching your internal records against that statement to confirm they agree.