# Free Budget Spreadsheet Template for Statement Data

- Author: CheapBankConvert (https://cheapbankconvert.com)
- Published: 2026-10-17
- Category: Budgeting from your statements
- Canonical: https://cheapbankconvert.com/blog/free-budget-spreadsheet-template

> A free budget spreadsheet template built for statement rows: paste the CSV, map categories, and see spending against plan in Excel or Sheets.
A free budget spreadsheet template that works with bank statements needs three tabs: one for raw transaction rows, one that maps payees to categories, and one that compares each category's spending with its plan. Paste a statement CSV into the first tab and formulas fill the rest, in Excel or Google Sheets.

## What goes in a free budget spreadsheet template for statement rows?

A statement-ready budget template holds three tabs: Transactions, Categories and Budget. Transactions stores the rows exactly as the bank printed them. Categories turns a payee name into a spending group. Budget adds up each group for the month and sets it beside the amount you planned. Nothing else is required.

Most downloadable templates are built for typing. They give you a neat grid of categories and expect you to enter each purchase by hand. That design falls apart the first time you have 140 card purchases in a month. A template meant for statement data starts from the other end: the rows already exist, so the sheet only has to sort them.

The layout below is the whole template. Column letters are suggestions, not rules.

| Tab | Columns | What fills it |
| --- | --- | --- |
| Transactions | A Date, B Description, C Amount, D Balance, E Category, F Month | A to D pasted from the statement; E and F are formulas |
| Categories | A Payee text, B Category | You type each payee once |
| Budget | A Category, B Planned, C Actual, D Difference | A and B typed; C and D are formulas |

Keep the tabs in that order. The flow then reads left to right: raw rows, rules, result. When something looks wrong on the Budget tab, you trace it back one tab at a time.

## The Transactions tab: pasting statement CSV rows into the template

The Transactions tab takes a statement export with one row per transaction and four columns: date, description, amount and balance. Paste the rows starting in cell A2, under a header row you never overwrite. Spending should appear as negative amounts and deposits as positive amounts, so one column carries both directions.

If your bank lets you download transactions as CSV, use that file. If it only gives you a PDF statement, you need a conversion step first. Copying text out of a PDF tends to merge columns or split one purchase across two lines, and fixing that by hand takes longer than the budget itself. A converter that outputs date, description, amount and balance columns drops straight into this tab. If you are weighing a desktop program against paying per file, the comparison of [PDF to CSV converter software licenses and per-file pricing](/blog/pdf-to-csv-converter-software) works through the costs over several years.

Two formula columns sit beside the pasted data:

- **Category (column E)** looks up the payee and returns a group name. The next section shows the formula.
- **Month (column F)** turns the date into a label such as 2026-09 with `=TEXT(A2,"yyyy-mm")`. The Budget tab filters on this label.

Fill both formulas down far past the last row, to row 2000 or so. Empty rows simply return blanks, and next month's paste lands in rows that already have the formulas.

Check one thing after every paste: click an amount and look at the alignment. Numbers sit on the right of the cell by default. Text that looks like a number sits on the left, and formulas ignore it. If your amounts sit on the left, select the column and use Data, Text to Columns, Finish, which converts them in place.

## The Categories tab and the payee lookup in the budget template

The Categories tab is a two-column list: a piece of payee text in column A and a category in column B. The Transactions tab searches each description for those pieces of text and returns the first match. You type a payee once, and every later statement row from that merchant gets its category automatically.

Use short, distinctive fragments rather than full descriptions. Banks add store numbers, dates and city names to card purchases, so "KROGER #0412 COLUMBUS OH" and "KROGER #0388 DUBLIN OH" are different strings. The fragment "KROGER" matches both.

In Excel 365 or Excel 2021, this formula in Transactions!E2 does the matching:

```
=IFERROR(INDEX(Categories!$B$2:$B$300, MATCH(TRUE, ISNUMBER(SEARCH(Categories!$A$2:$A$300, B2)), 0)), "Uncategorized")
```

SEARCH looks for each fragment inside the description and ignores case. MATCH finds the first fragment that appears. INDEX returns that fragment's category. Anything with no match reads "Uncategorized", which is your to-do list each month.

Choosing the groups themselves is a separate decision. A list built from real statements, with advice on which groups to merge, is in the [budget categories list built from real statements](/blog/budget-categories-list). For a deeper version of the lookup, including XLOOKUP and a catch-all check for new merchants, see how to [categorize bank transactions in Excel with free rules](/blog/categorize-bank-transactions-in-excel).

Order matters when two fragments could both match. Put the more specific one higher in the list. "AMAZON PRIME" should sit above "AMAZON" if you want the subscription in its own group.

## The Budget tab: plan against actual formulas in the template

The Budget tab lists each category once, with the amount you plan to spend in column B. Column C adds up the matching statement rows for the month you choose, and column D subtracts one from the other. A single cell at the top holds the month label, so changing it from 2026-09 to 2026-10 recalculates the whole tab.

Put the month you want to review in cell B1, typed as text such as 2026-09. Then, in C4 (with categories starting in row 4):

```
=-SUMIFS(Transactions!$C:$C, Transactions!$E:$E, A4, Transactions!$F:$F, $B$1)
```

The leading minus sign flips spending from negative to positive, so a $412 grocery month shows as 412 rather than -412. That makes the comparison with the plan easier to read.

Column D is `=B4-C4`. A positive number means money left in that category. A negative number means you spent more than planned.

Add two check rows under the category list:

1. **Uncategorized total**, using the same SUMIFS with "Uncategorized" as the category. If it is not zero, some rows still need a payee rule.
2. **Statement total**, `=-SUMIFS(Transactions!$C:$C, Transactions!$F:$F, $B$1, Transactions!$C:$C, "<0")`, which adds every outgoing row for the month. It should equal the sum of column C, unless you deliberately left a category off the Budget tab.

That second check is what makes the template trustworthy. If the two totals disagree, a row is either miscategorized or missing from the tab.

## Worked example: one month of example rows through the budget spreadsheet template

The example below follows six made-up statement rows and four categories through the template for September 2026. Every figure is illustrative. It shows how a pasted row becomes a category total and then a difference against plan, and how the check rows catch a row with no rule.

Rows pasted into the Transactions tab:

| Date | Description | Amount | Category (formula) |
| --- | --- | --- | --- |
| 2026-09-02 | KROGER #0412 COLUMBUS OH | -86.40 | Groceries |
| 2026-09-03 | SHELL OIL 57442 | -48.10 | Fuel |
| 2026-09-09 | KROGER #0388 DUBLIN OH | -112.75 | Groceries |
| 2026-09-15 | PAYROLL ACME CO | 2,150.00 | Income |
| 2026-09-18 | NETFLIX.COM | -15.49 | Subscriptions |
| 2026-09-22 | BLUE DOOR CAFE | -23.80 | Uncategorized |

Result on the Budget tab with B1 set to 2026-09:

| Category | Planned | Actual | Difference |
| --- | --- | --- | --- |
| Groceries | 250.00 | 199.15 | 50.85 |
| Fuel | 60.00 | 48.10 | 11.90 |
| Subscriptions | 20.00 | 15.49 | 4.51 |
| Eating out | 40.00 | 0.00 | 40.00 |
| Uncategorized | | 23.80 | |
| Statement total | | 286.54 | |

Eating out shows nothing spent, and Uncategorized shows $23.80. The café has no rule yet. Add "BLUE DOOR" to the Categories tab with Eating out as its category, and the $23.80 moves across. Uncategorized drops to zero, and the statement total still equals the sum of the category lines.

Notice that the payroll deposit never reaches the spending total. The statement-total check only counts negative amounts, so income stays out of it without a separate filter.

## Does the budget template work the same in Google Sheets?

The template works in Google Sheets with the same three tabs and almost the same formulas. SUMIFS, TEXT, INDEX, MATCH and SEARCH all exist there. The one difference is the category lookup: Sheets needs the array formula wrapped so it evaluates every fragment, not just the first one.

In Google Sheets, write the category formula as:

```
=IFERROR(INDEX(Categories!$B$2:$B$300, MATCH(TRUE, ARRAYFORMULA(ISNUMBER(SEARCH(Categories!$A$2:$A$300, B2))), 0)), "Uncategorized")
```

Two smaller differences are worth knowing:

- **Pasting a CSV.** In Sheets, File, Import lets you append a CSV to the current sheet. That avoids the copy step and keeps numbers as numbers. In Excel, opening the CSV and copying the rows across works fine.
- **Locale.** Sheets reads dates according to the spreadsheet's locale setting. If your statement uses day-first dates and your sheet is set to a month-first locale, 03/09 becomes March 9 instead of September 3. Check File, Settings before the first import.

Excel files open in Sheets and the other way round, so you can build the template in one and use it in the other. Older Excel versions without dynamic arrays may need the category formula entered with Ctrl+Shift+Enter.

## Budget template mistake: pasting a new statement over last month's rows

The most common way to break this template is to paste October's rows on top of September's. The Budget tab then loses September completely, and any comparison between months goes with it. The fix is to paste each new statement below the last row of the previous one, so the Transactions tab grows month by month.

Appending works because of the Month column. The Budget tab only counts rows whose month label matches cell B1, so a tab holding a full year of rows still produces a clean single-month view.

Appending creates its own risk: overlap. Statement periods do not always end on the last day of the month. A statement covering September 15 to October 14 shares no rows with the next one. A CSV you download by date range from online banking might, if you pick dates that overlap. Before you paste, check the first date of the new file against the last date already in the tab. If they overlap, delete the duplicate rows from the new file first.

Three more habits keep the template healthy:

1. **Never sort only one column.** Sort the whole table together, or descriptions end up beside the wrong amounts.
2. **Keep the header row frozen.** View, Freeze Panes stops you pasting over it by accident.
3. **Save a copy before the first paste of each year.** A dated copy costs nothing and gives you a clean starting point if a formula gets damaged.

If your bank only offers PDF statements, CheapBankConvert turns one into rows with date, description, amount and balance columns ready for the Transactions tab. It is in early access now, and you can [get started](/get-started) to hear when it opens. The first 2 pages of any statement preview free.
