Stillpenny

How do you set up a zero-based budget in Google Sheets?

Make two tabs: a Budget tab with your income and one row per category, and a Transactions tab where you log spending. On the Budget tab, one cell computes "left to assign" as income minus the sum of all planned amounts; you keep assigning money until it shows 0. A SUMIFS formula pulls each category's spending from the Transactions tab, so you see what is left per category.

Updated 27 September 2026 · By the Stillpenny team

Step 1: Build the Transactions tab

Create a tab named Transactions with three columns: A Date, B Category, C Amount (spending as positive numbers). Format column A as a date (Format → Number → Date), otherwise the month filter below will not work.

Step 2: Build the Budget tab

Create a tab named Budget with this layout:

CellContentWhat it does
A1 / B1Month / =DATE(2026,10,1)First day of the month this tab covers
A2 / B2Income / 4200Money you expect this month (take-home)
A3 / B3Left to assign / =B2-SUM(B6:B30)Must reach exactly 0
Row 5Category · Planned · Carry-over · Spent · LeftHeaders for columns A to E
A6:A30Your categoriesOne per row
B6:B30Planned amountsTyped by you
C60 (or last month's Left, see step 5)Money carried into this month
D6=SUMIFS(Transactions!$C:$C, Transactions!$B:$B, $A6, Transactions!$A:$A, ">="&$B$1, Transactions!$A:$A, "<"&EDATE($B$1,1))Spending in this category and month
E6=B6+C6-D6What is left in the category

Copy C6:E6 down to row 30. The $ signs keep the Transactions columns and the month cell fixed while the category reference moves with each row. SUMIFS adds up amounts that match all conditions: the category, a date on or after the first of the month, and a date before the first of next month (EDATE adds one month).

Using a European locale? If your spreadsheet uses a comma as the decimal separator (for example Germany or France under File → Settings → Locale), Google Sheets expects semicolons between arguments: =SUMIFS(Transactions!$C:$C; Transactions!$B:$B; $A6; …).

Step 3: Add guard rails

Worked example: assigning $4,200

October income is $4,200. The first draft of planned amounts added up to $3,935, so B3 showed $265 left to assign. That $265 went to the emergency fund (+$200) and a gifts category ($65). Yearly costs are turned into monthly amounts: car repairs $900 a year = $75 a month, holidays $1,200 a year = $100 a month.

CategoryPlanned
Rent1,450
Groceries520
Utilities180
Phone and internet95
Transport160
Insurance140
Car repairs fund ($900 / 12)75
Holiday fund ($1,200 / 12)100
Debt minimum payments210
Extra debt payment250
Emergency fund (300 + 200)500
Eating out150
Fun money200
Subscriptions45
Personal care60
Gifts65
Total planned4,200
Left to assign (B3)0

By 10 October the Transactions tab has three grocery entries (84.30, 112.45 and 67.80) and one eating-out entry (38.00). The SUMIFS in the Groceries row returns 264.55, so Left shows 520 − 264.55 = 255.45. The eating-out entry is not counted in Groceries because its category does not match.

Check your own plan

Step 4: Use it every month

  1. Plan before the month starts. Enter expected income in B2, adjust planned amounts until B3 is 0.
  2. Log spending a few times a week. Or paste your bank's export into Transactions and fill in the category column.
  3. Move money, not the total. If Groceries runs out, lower another category by the same amount. B3 stays at 0 and the plan stays honest.

Step 5: Start a new month

Right-click the Budget tab → Duplicate, rename it (for example Nov 2026) and change B1 to =DATE(2026,11,1). For sinking funds such as car repairs, point the Carry-over cell to the previous tab, for example ='Oct 2026'!E12, so unspent money keeps building up. For everyday categories, leave Carry-over at 0 and give any leftover a new job when you plan the month.

Common mistakes

Follow-up questions

Is zero-based the same as spending everything? No. Savings, extra debt payments and sinking funds are categories too. Zero means every dollar has a job, not that every dollar is spent.

Does this work in Excel? Yes, SUMIFS, EDATE and the layout work the same in Excel. There too, European locales use semicolons between arguments.

Can I track income with actual payments too? Add an Income category to Transactions and replace B2 with a SUMIFS on that category, but then B3 changes as money arrives. Many people prefer a typed, conservative income figure.

Sources: Google Docs Editors Help on SUMIFS, EDATE and dropdowns. The example figures are illustrative.

Disclosure: Stillpenny makes a Budget Spreadsheet for Excel and Google Sheets (6.90 EUR, one-time purchase on Etsy). It is a workbook with the formulas already built in: 12 monthly tabs with budget vs. actual per category, a year dashboard, bills tracker, sinking funds and a debt payoff sheet; you open it in Google Sheets by uploading the .xlsx file. It is optional: the steps and calculator on this page are free.

General information, not financial advice.