GetNeatNumbers

How to make a monthly budget in Google Sheets from your bank CSV

Typing transactions by hand is why most budget spreadsheets get abandoned by February. This guide builds one that starts from your bank's own export: import, categorize with a lookup table, total by month, compare with your budget.

1. Download your statement as CSV

In your bank's website, open the account's transactions, look for Download, Export or Statements, pick a date range and choose CSV. Credit cards usually have the same option. Then in Google Sheets: File → Import → Upload, choose the file, and pick Insert new sheet(s). Rename that tab Transactions.

Every bank lays out its CSV differently. For this guide, arrange it so column A is the date, B the description and C the amount, with spending as negative numbers. If your bank has separate debit and credit columns, add a column with =credit - debit.

2. Add a month column

In D1 type Month, and in D2:

=ARRAYFORMULA(IF(A2:A = "", "", TEXT(A2:A, "yyyy-mm")))

One formula fills the whole column, including rows you import later. If the result shows the date unchanged, the dates came in as text (common with European formats); fix them with Data → Split text to columns or re-import with the right locale under File → Settings.

3. Categorize with a keyword table

Make a tab called Rules with a keyword in column A and a category in column B:

A: KeywordB: Category
TRADER JOEGroceries
SHELLTransport
NETFLIXSubscriptions

Back in Transactions, put Category in E1 and this in E2, then fill down:

=IFERROR(ARRAYFORMULA(INDEX(Rules!B$2:B$100, MATCH(1, ISNUMBER(SEARCH(Rules!A$2:A$100, B2)) * (Rules!A$2:A$100 <> ""), 0))), "Uncategorized")

It finds the first keyword that appears anywhere in the description (case-insensitive) and returns its category. The <> "" part stops empty rows in the Rules tab from matching everything. Sort by category, look at what's still Uncategorized, and add a keyword for each. After a month or two, almost everything categorizes itself.

4. Total spending by category and month

Make a Budget tab. Put your categories down column A (from A3), months across row 2 (from C2) like 2026-09, typed with a leading apostrophe ('2026-09) so Sheets keeps them as text instead of turning them into dates, and your monthly budget per category in column B. Then in C3:

=-SUMIFS(Transactions!$C:$C, Transactions!$E:$E, $A3, Transactions!$D:$D, C$2)

Fill it right and down. The minus sign turns spending (negative amounts) into positive totals. Each cell is now what you spent on that category in that month.

5. Highlight categories over budget

Select the totals (for example C3:N20), open Format → Conditional formatting, choose Custom formula is and enter:

=AND(C3 <> "", C3 > $B3)

Pick a red fill. Any month where a category went over its budget turns red, and you can see at a glance which categories run over every month (those budgets need raising, or the habit needs changing).

6. Each month after that

Download the new month's CSV and paste the rows under the existing ones in Transactions (same column order), then fill the category formula down. Watch for overlapping dates so you don't import a transaction twice.

Want it built already? The GetNeatNumbers Personal Budget is this whole system as a ready-made Google Sheet: paste your bank CSV as downloaded (it detects date and number formats and skips duplicates on re-import), around 100 built-in categorization rules, budget vs actual, recurring payment detection, a dashboard with charts and a cash-flow forecast. Or start with the free 50/30/20 budget calculator.