How to Extract Transactions from Bank Statements (PDF to Excel, CSV or Google Sheets)

Extracting transactions from a bank statement means turning the transaction table in a PDF (dates, descriptions, debits, credits and balances) into rows and columns you can work with in Excel, Google Sheets or your accounting software.

The quickest way to do it is with a dedicated bank statement converter. Upload the PDF to Data River and download the transactions as CSV, Excel or Google Sheets a few seconds later. If you only have one short statement, or you'd rather do it by hand, this guide also covers the free manual methods, where each one breaks down, and how to check that your extracted data is complete.


Quick comparison: four ways to extract bank transactions

MethodBest forWorks on scanned PDFsTime per statementCost
Bank statement converter (Data River)Any volume, any layoutYesSecondsFree plan, then from $12/month
Copy and pasteOne short, digital PDFNo10 to 30 minutesFree
PDF table tools (Tabula, Power Query)Tech-comfortable users, simple layoutsNo5 to 20 minutesFree or included with software
Manual data entryLast resortYes30+ minutesFree, but costly in hours

The manual time estimates assume a typical 2 to 5 page statement and include cleanup. Long or messy statements take much longer. See bank statement converter vs manual data entry for a fuller comparison.


What data you can extract from a bank statement

Transaction-level fields

  • Transaction date: when the transaction happened
  • Posting date: when the bank recorded it (not every bank shows both)
  • Description: merchant name, payee, transfer reference or check number
  • Debit amount: withdrawals, payments and fees
  • Credit amount: deposits, refunds and interest
  • Running balance: the account balance after each transaction
  • Reference number: transaction ID or check number, where provided

Statement-level fields

  • Account holder and account number (usually masked)
  • Statement period
  • Opening and closing balances
  • Total debits and total credits

Don't skip the statement-level fields. The opening and closing balances are what you'll use to prove your extraction is complete (more on that below). If you're unsure what each section of a statement means, start with what is a bank statement?


Method 1: Use a bank statement converter (fastest and most accurate)

A bank statement converter is built for one job: reading the transaction table in a statement PDF and rebuilding it as structured data. Unlike a general PDF tool, it understands how statements are laid out, so it can handle the things that break manual methods, such as descriptions that wrap onto two lines, separate debit and credit columns, running balances that carry across page breaks, and scanned pages.

How to extract transactions with Data River

Data River's PDF bank statement converter tool

  1. Go to datariver.co and sign up for the free plan.
  2. Upload your PDF bank statement. Digital and scanned PDFs both work.
  3. Data River finds the transaction table on every page and extracts each row into consistent columns: date, description, amounts and balance.
  4. It checks that the opening balance plus transactions equals the closing balance, so extraction errors are caught before you download.
  5. Download the result as CSV, Excel or Google Sheets, then open it in a spreadsheet or import it into your accounting software.

Signed-in users can convert several files at once, which helps when you have a year of statements or a folder of client PDFs to work through.

Why people use Data River for transaction extraction

  • 4,200 banks and credit unions supported. Layouts differ between banks and even between account types at the same bank. Wide coverage means fewer files that need fixing by hand.
  • A built-in balance check on every file. You know the transactions add up before you start reconciling.
  • Consistent output. The same columns every time, so a 12-month batch merges cleanly into one sheet.
  • Pricing per file, not per page. One conversion is one statement PDF, so a 3-page statement and a 30-page statement cost the same.
  • Private by design. Data River runs its own model trained on bank statement layouts. Files are never sent to third-party AI APIs, they're deleted after processing, and they're never used to train AI models.
PlanPriceConversions included
Free$05 per day (signed in)
Starter$12/month450 per month
Pro$35/month1,100 per month
Business$60/month4,200 per month

See datariver.co/pricing for current plans. If you have a statement on hand, the free plan is enough to test the output against your own PDFs.

Best for: anyone extracting transactions more than occasionally, scanned statements, multi-page statements, and accountants or bookkeepers working across many banks.


Method 2: Copy and paste into a spreadsheet

This is free and works on simple, digital (text-based) PDFs. It doesn't work on scanned statements, because there is no text to select.

Steps

  1. Open the PDF in a viewer such as Adobe Reader, Preview or your browser.
  2. Select the transaction rows on the first page.
  3. Copy (Ctrl+C or Cmd+C).
  4. Paste into Excel or Google Sheets. In Excel, try Paste Special > Text to avoid odd formatting.
  5. Repeat for every page.
  6. Split the data into columns and clean it up (see below).

Cleaning up pasted data

Pasted statement data usually lands in a single column. To split it:

  • Excel: select the column, go to Data > Text to Columns, choose Delimited and split on spaces, or Fixed width if the columns line up.
  • Google Sheets: select the column, then Data > Split text to columns.

Then fix the usual problems:

  • Descriptions split across several columns. Rejoin them with =TEXTJOIN(" ", TRUE, B2:E2).
  • Amounts stored as text. Use =VALUE(SUBSTITUTE(SUBSTITUTE(F2,"$",""),",","")) to strip currency symbols and thousands separators.
  • Repeated headers and page footers. Filter the date column for anything that isn't a date and delete those rows.
  • Wrapped descriptions on a second line. Merge the second line into the row above, then delete the extra row.

Where it breaks down

  • It's slow: every page needs its own copy, paste and cleanup.
  • Wrapped descriptions and separate debit and credit columns often paste out of order.
  • It's easy to miss a row at a page break and not notice.
  • It won't work on scanned or image-based PDFs.

Method 3: Use a PDF table extraction tool

Desktop tools can detect tables in text-based PDFs and export them.

Options

  • Tabula: free and open source. You draw a box around the table on each page.
  • Excel Power Query: in Excel for Microsoft 365, go to Data > Get Data > From File > From PDF, pick the tables and load them.
  • Adobe Acrobat Pro: export the PDF to Excel. Results vary depending on how the statement was generated.

Process

  1. Open the PDF in the tool.
  2. Select the transaction table, or let the tool detect it.
  3. Check the preview and adjust the column boundaries if needed.
  4. Export to Excel or CSV.
  5. Combine the pages and clean up as in Method 2.

Limitations

  • Needs a text-based PDF. Scans need OCR first.
  • General table tools don't understand bank statements, so they often treat each page as a separate table, split wrapped descriptions into extra rows, or mix the balance into the amount column.
  • You still have to check and clean everything yourself.

Power Query is a good choice if you get the same statement format every month and are willing to build a reusable query. If your statements come from many banks, a dedicated converter will save more time. For more on why, see OCR vs AI for bank statement processing.


Method 4: Manual data entry

Typing transactions into a spreadsheet by hand works on any statement, including paper copies and poor scans. It's also the slowest and most error-prone option. A transposed digit or a skipped line won't show up until reconciliation fails. Use it only when nothing else will read the document, and always run the balance check below afterwards.


Handling different statement layouts

Banks lay out transactions in different ways, and the layout decides how hard extraction will be. For bank-specific walkthroughs, see our guides to converting statements by bank.

Single amount column with signs

01/15  AMAZON MKTPLACE PMTS          -49.99   1,450.01
01/16  DIRECT DEPOSIT ACME PAYROLL  2,500.00  3,950.01

One amount column, with negatives for money out. Keep the sign when you extract, or split it into debit and credit columns with =IF(C2<0,-C2,"") and =IF(C2>0,C2,"").

Separate debit and credit columns

Date   | Description         | Debit  | Credit   | Balance
01/15  | AMAZON MKTPLACE     | 49.99  |          | 1,450.01
01/16  | DIRECT DEPOSIT      |        | 2,500.00 | 3,950.01

This is cleaner, but empty cells cause trouble: copy and paste often shifts the credit value into the debit column. Spot-check a few rows of each type.

Wrapped descriptions

01/18  ONLINE TRANSFER TO SAVINGS
       REF 88213 CONF 4471          200.00   3,750.01

The description runs over two lines and the amount sits on the second one. Manual methods usually turn this into two rows. A bank statement converter keeps it as one transaction.

Grouped sections

Some banks, especially for business accounts, group transactions into sections such as "Deposits", "Withdrawals" and "Checks", each with its own subtotal. Add a column that records the section, then sort everything by date once it's combined. Remove the subtotal rows so they aren't counted as transactions.

Multi-page statements add another problem: headers repeat and balances carry forward on every page. See how to handle multi-page bank statements.


The step most people skip: check that it balances

However you extract your transactions, check the result before you use it. The test is simple:

Opening balance + total credits − total debits = closing balance

In a spreadsheet with debits in column C and credits in column D:

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

Compare the result with the closing balance printed on the statement. If they match to the cent, you have every transaction. If they don't:

  • Off by exactly one transaction amount: a row is missing or duplicated, usually at a page break.
  • Off by double an amount: a debit was recorded as a credit, or the other way round.
  • Off by a power of ten: a decimal point was misread, a common OCR error.
  • Off by a small, odd amount: a digit was misread, such as 8 for 3 or 1 for 7.

If the statement shows a running balance, you can find the exact row that's wrong by recalculating it: =E1 + D2 - C2 in each row, then look for the first place your figure differs from the bank's.

Data River runs this opening and closing balance check automatically on every conversion, so you don't have to build it yourself. For a full list of extraction problems and fixes, see common errors in bank statement conversion.


Tips for cleaner extraction

Before you start

  • Download the original PDF from online banking. A digital PDF is much easier to read than a scan of a printed copy.
  • Remove password protection. Most tools can't open protected PDFs. Open the file, then print or save it as a new PDF without a password.
  • Check you have every page and every month you need. Gaps are easier to fix before you begin.

After extraction

  • Run the balance check above.
  • Use one date format throughout, such as YYYY-MM-DD, especially when combining US (MM/DD) and UK or Australian (DD/MM) statements.
  • Keep amounts as numbers, not text, so formulas and imports work.
  • Keep the original PDFs alongside the spreadsheet for audit purposes. See how to prepare bank statements for audit.

Extracting transactions from many statements

When you're working through a year of statements or several clients' accounts, the steps that matter are:

  1. Name files consistently, for example clientname_bank_2026-01.pdf.
  2. Convert in batches. On Data River, sign in and convert several files at once. Each statement counts as one conversion regardless of length.
  3. Check each statement balances before combining anything.
  4. Add a source column recording the account and statement period for each row.
  5. Merge into one sheet and remove any duplicates where statement periods overlap. See how to merge multiple bank statements into one spreadsheet.

For repeat monthly work, see how to automate monthly bank statement processing and how accountants process multiple bank statements.


What to do with the extracted data

Once your transactions are in a spreadsheet, you can:


Frequently asked questions

How do I extract transactions from a bank statement PDF? The fastest way is to upload the PDF to a bank statement converter such as Data River and download the transactions as CSV, Excel or Google Sheets. For one short, digital PDF you can copy and paste into a spreadsheet and clean it up with Text to Columns, or use Tabula or Excel Power Query.

What data can be extracted from bank statements? Transaction dates, posting dates, descriptions, debits, credits, running balances and reference numbers, plus statement details such as the account number, statement period, and opening and closing balances.

Can I extract transactions from scanned bank statements? Yes, but you need OCR, because a scan is an image with no selectable text. Copy and paste and most PDF table tools won't work. Data River reads both scanned and digital PDFs. For scan-specific tips, see how to convert scanned bank statements to CSV.

How do I check that extracted transactions are correct? Confirm that the opening balance plus credits minus debits equals the closing balance. If it doesn't, something was missed, duplicated or misread. Data River runs this check automatically on every conversion.

Is it safe to upload bank statements to an online converter? It depends on the tool. Check whether files are stored, whether they're sent to third-party AI services, and whether they're used for training. Data River runs its own model, never sends files to third-party AI APIs, deletes uploads after processing, and never trains on customer data. See best practices for bank statement data security.

How much does it cost? Manual methods are free but slow. Data River has a free plan with 5 conversions per day, and paid plans at $12, $35 and $60 per month for 450, 1,100 and 4,200 conversions. One conversion is one statement PDF, however many pages it has. Compare options in free vs paid bank statement converters.


Extract your transactions in seconds

Copy and paste is fine for a single short statement. For anything more (scanned PDFs, multi-page statements, a year of history or a stack of client files), a dedicated converter gets you clean, balanced data much faster.

Try Data River free: upload one of your own statements and download the transactions as CSV, Excel or Google Sheets. No sales call and no setup, and your file is deleted after processing.


Sandra Vu

About Sandra Vu

Sandra Vu is the founder of Data River and a financial software engineer with experience building document processing systems for accounting platforms. After spending years helping accountants and bookkeepers at enterprise fintech companies, she built Data River to solve the recurring problem of converting bank statement PDFs to usable data—a task she saw teams struggle with monthly.

Sandra's background in financial software engineering gives her deep insight into how bank statements are structured, why they're difficult to parse programmatically, and what accuracy really means for financial reconciliation. She's particularly focused on the unique challenges of processing statements from different banks, each with their own formatting quirks and layouts.

At Data River, Sandra leads the technical development of AI-powered document processing specifically optimized for financial documents. Her experience spans building parsers for thousands of bank formats, working directly with accounting teams to understand their workflows, and designing systems that prioritize accuracy and data security in financial automation.