Guides

How to convert a PDF bank statement to Excel

A PDF bank statement looks like a table, but it isn't one. It is text placed at coordinates on a page. Getting it into Excel means rebuilding the rows and columns, then making sure nothing was lost. Here are the options, in the order we'd try them.

Before you start: check for a CSV download

The cleanest data comes straight from your bank. Many online banking portals offer a transaction export as CSV, OFX, QFX or QIF, usually under the account's transaction history or a "Download" or "Export" menu.

If that option exists and covers the date range you need, use it. A bank export has no parsing step, so there is nothing to go wrong.

PDF conversion is for when the export doesn't exist: older periods, client statements, closed accounts, or banks that only issue PDFs.

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

Method 1: Excel Power Query ("From PDF")

Recent versions of Excel can read tables from PDF files directly.

  1. Open a blank workbook.
  2. Go to Data → Get Data → From File → From PDF.
  3. Select the statement. Excel shows a Navigator listing the tables and pages it detected.
  4. Click each candidate table to preview it. Statements often split into one table per page.
  5. Select the tables you want and choose Transform Data to open the Power Query editor, or Load to drop them straight into sheets.
  6. In Power Query, remove header rows, set column types (Date, Decimal Number), and use Append Queries to stack the pages into one table.

What to know:

Method 2: Copy and paste

Open the PDF, select the transaction text, copy, and paste into Excel. It's quick for a single page. It is also where most errors come from.

Common problems and fixes:

Problem What happens Fix
Whole rows land in one cell Each line pastes as a single text string Data → Text to Columns, delimited by spaces or fixed width
Multi-line descriptions One transaction becomes two or three rows Merge the continuation lines back into the row above before you split columns
Dates stored as text Sorting and filtering fail; =ISNUMBER(A2) returns FALSE Text to Columns with column type Date and the right order (DMY or MDY)
DD/MM vs MM/DD 03/04 becomes 4 March or 3 April depending on your system Set the date order explicitly, never rely on auto-detection
Negatives in parentheses (125.00) pastes as text Find ( replace with -, find ) replace with nothing, then convert to number
Trailing minus or CR/DR 125.00- or 125.00 DR Strip the suffix and apply the sign with a helper formula
Thousands separators 1,250.00 or 1.250,00 read as text Use Text to Columns → Advanced to set decimal and thousands separators
Repeated page headers "Date Description Amount" appears every page Filter the Description column and delete those rows

Copy-paste is fine for ten transactions. For a few hundred, the cleanup takes longer than the paste, and every fix is a chance to introduce an error.

Method 3: Google Sheets

Google Sheets has no built-in PDF import. Opening the PDF in Google Docs and copying from there inherits every copy-paste problem above, often with columns reflowed.

The step everyone skips: checking the result

Whichever method you use, check the output before you rely on it. Most statements print a running balance after each transaction. That column is a built-in checksum.

Add a check column:

  1. Put the statement's opening balance in a cell, say F1.
  2. In the first transaction row, calculate the expected balance: =F1 + C2 - D2 (credit minus debit; adjust for your columns).
  3. In the next rows: =G2 + C3 - D3, and so on.
  4. Compare to the printed balance: =ROUND(G2 - E2, 2). Every value should be zero.

A non-zero difference points to the exact row where something went wrong: a missing transaction, a swapped sign, or a number that pasted as text. The reconciliation guide covers this in more detail.

Where Rowsafe fits

Rowsafe does the conversion and the check in one step, inside your browser.

The free plan converts 3 statements a day with CSV export and balance verification. Pro is $12/month and adds unlimited statements, batch conversion and the other export formats. See pricing.

Limitations, stated plainly: Rowsafe works on text-based PDFs, the kind you download from online banking. Scanned or photographed statements are not supported yet. Some unusual layouts need a manual column fix in the preview; the balance check tells you when that's the case.

A quick test for "text-based"

Open the PDF and try to select a single word with your cursor. If you can highlight and copy it, the PDF contains text and any of the methods above can work. If the whole page selects as one image, it's a scan, and you'll need OCR software first.

FAQ

Is it safe to use online PDF converters for bank statements? Most upload your file to their server. Whether that's acceptable depends on their retention policy and your obligations to clients.

Why are my dates wrong after converting? Usually a day/month order mismatch. A statement printed as DD/MM/YYYY, opened on a system set to MM/DD/YYYY, will swap day and month for any date where the day is 12 or under. Set the date format explicitly when importing.

Can I convert several months at once? In Power Query, load each file and append the queries. In Rowsafe, batch conversion and merging multiple PDFs is a Pro feature.

My statement has no running balance column. Can I still check it? Yes. Use the opening and closing balances from the statement summary: opening + total credits − total debits should equal closing.

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