How to get a bank statement PDF into Google Sheets
Google Sheets cannot read a bank statement PDF directly, but the route through CSV is quick and reliable. Here is the whole process, including the import settings that stop dates and amounts from being misread.
By Muhammad Sharif · October 2026 · 7 min read
Google Sheets is a good home for personal finance and small-business bookkeeping: it is free, it works in the browser, and several people can use the same file. What it lacks is any ability to read a PDF table. Opening a PDF in Google Drive gives you a viewer, and Docs' "Open with" feature turns it into a text document with unreliable structure. The dependable method is to convert the statement to a CSV or Excel file first, then import that file.
Step 1: convert the PDF to CSV or Excel
Use the StatementHarbor converter, which runs in your browser so the statement is not uploaded, drop the PDF in, and download CSV (or Excel). The CSV has four columns (Date, Description, Amount, Balance) with dates written year-month-day and plain numbers with no currency symbols, which is the friendliest shape for Sheets. If the converter reports nothing, see why a statement won't convert.
Step 2: import the file into Sheets
- Open a Google Sheet. For a new account, create a new spreadsheet.
- Choose File → Import → Upload and select the CSV (or Excel) file.
- In the import dialog, choose where to put the data. "Insert new sheet(s)" is the safest, and keeps each month on its own tab.
- For Separator type use Comma (or Detect automatically).
- Leave Convert text to numbers, dates, and formulas ticked if your locale matches the file. Because the CSV dates are in year-month-day form, Sheets reads them reliably in any locale.
- Click Import data.
Using an Excel (.xlsx) file instead keeps the value types and the column widths, and the import options are simpler. Either works.
Step 3: check what came in
- Dates should right-align and sort correctly, which shows they were recognised as dates rather than text.
- Amounts should right-align and total with SUM. Text amounts (left-aligned) were not recognised: look for leftover symbols or spaces.
- The sheet's locale (File → Settings → General) affects how dates and decimal separators are read, so set it to match your region if numbers look wrong. A locale that uses a comma as the decimal separator will misread 1234.56.
- Row count: compare with the statement.
Step 4: add the balance check
Put these cells above or beside the data. Assume amounts are in column C and balances in D, with the data starting at row 2.
| Cell label | Formula or value |
|---|---|
| Opening balance | Type from the statement summary |
| Sum of amounts | =SUM(C2:C) |
| Calculated closing | Opening balance cell + sum cell |
| Statement closing | Type from the statement summary |
| Difference | =ROUND(calculated - statement, 2), which should be 0 |
The same running-balance check works down the rows: in a helper column, =ROUND(D2+C3-D3,2) gives 0 on every row that follows the arithmetic. Details, and what to do when the difference is not 0, are in our reconciliation guide.
Step 5: organise by month
A simple structure is one tab per month named 2026-03, plus a Summary tab. To combine several tabs into one list for reporting, use =QUERY({'2026-01'!A2:D; '2026-02'!A2:D; '2026-03'!A2:D}, "select * where Col1 is not null"), which stacks the ranges. If your data has the header row on each tab, the range starts at row 2 so headers are not repeated.
Add a Category column and use a lookup rule, as in our categorisation guide. In Sheets, =IFERROR(INDEX(Rules!B:B, MATCH(TRUE, ARRAYFORMULA(REGEXMATCH(UPPER(B2), UPPER(Rules!A2:A))), 0)),"Uncategorised") performs the same keyword match, and wrapping it in ARRAYFORMULA fills the whole column at once. Test the formula on a few rows first, because array behaviour differs from Excel.
Step 6: summarise
Select the data and choose Insert → Pivot table. Use Category as Rows, a month as Columns and the sum of Amount as Values. If you only have dates, add a helper column =TEXT(A2,"yyyy-mm") to give the pivot a month field.
Privacy and sharing
Once the data is in Google Sheets, it lives on Google's servers and follows Google's sharing rules. Before you share the sheet, check who has access, and decide whether the Description column (merchant names, references, handles) should be included. For client work, consider anonymising or sharing only a summary tab. Keep the original PDF out of shared folders. If you want the conversion step itself to stay on your device, as it does with an in-browser converter, remember that the privacy boundary moves when you upload the result to Sheets.
Frequently asked questions
Can Google Drive convert the PDF for me?
Drive's "Open with Google Docs" runs text recognition and produces a document, not a table, and rows often break. It can be useful for a quick look, but it is not a dependable route to a spreadsheet. A converter that outputs CSV is much cleaner.
Why are my dates showing as numbers like 46082?
That is Sheets' internal serial number for a date. Select the column and choose Format → Number → Date, or Format → Number → Custom date and time to set the style you want.
Is there an add-on that does this automatically?
Some add-ons call an outside service to read PDFs, which means the statement leaves your device. If privacy matters, convert locally first and import the CSV, as described above.