How to Track Expenses in Google Sheets (Complete Guide)
Build an expense tracker in Google Sheets: columns, dropdowns, SUMIFS monthly totals, a self-resetting dashboard, and fast ways to log from your phone.
In short
To track expenses in Google Sheets, make one Expenses tab with Date, Category, Amount and Notes columns, turn Category into a dropdown, and total each month with SUMIFS. Add a small dashboard for budget versus spent. The hard part is logging from your phone, so pick a capture method that takes seconds, not a minute.
To track expenses in Google Sheets, you need one tab where each row is a purchase (Date, Category, Amount, Notes), a dropdown for categories, and a SUMIFS formula that totals the current month. That takes about 15 minutes to build. The part most guides skip is logging from your phone, which is where most spreadsheet trackers die. This guide covers both.
You'll go from a blank sheet to a monthly dashboard that resets by itself on the 1st, then look at three realistic ways to add expenses on the go.
Why track expenses in Google Sheets instead of an app?
A budgeting app gives you a dashboard on day one. A spreadsheet takes a little set-up, but you get things in return that most apps don't offer:
- You own the data. It's a file in your Google Drive. No app can lock it behind a subscription or take it with them when they shut down.
- No bank connection. You record only what you choose to record. (If that matters to you, here's how to track expenses without linking your bank.)
- It's yours to shape. Want a column for "work trip" or a chart nobody else offers? Add it.
- It's shareable. A partner or accountant gets a link, not an export.
The trade-off is that you build it once and enter data yourself. Both are easier than they sound.
Step 1: Set up the columns
Create a new spreadsheet, rename the first tab Expenses, and add these headers in row 1:
| Column | Header | Format | Example |
|---|---|---|---|
| A | Date | Date (Format → Number → Date) | 10/12/2026 |
| B | Category | Dropdown | Food |
| C | Amount | Currency (Format → Number → Currency) | 12.50 |
| D | Notes | Plain text | Lunch with Sam |
| E (optional) | Payment | Dropdown | Card |
A few rules keep the sheet easy to calculate later:
- One expense per row. Never put two purchases in one row or a subtotal in the middle of the data.
- No blank rows or merged cells inside the table. Formulas read whole columns, and gaps cause confusion.
- Freeze the header row (View → Freeze → 1 row) so you always see the column names.
- Format the Amount column as currency and type only numbers. "$12.50" typed as text won't add up.
- Make sure dates are real dates. If a date sits on the left of its cell, Sheets is treating it as text. Re-enter it or fix the format.
Want an Income tab too? Use the same pattern: Date, Source, Type, Amount.
Step 2: Add category dropdowns
Free-typed categories drift. "Food", "food", "Groceries" and "Eating out" end up as four separate totals. A dropdown fixes that.
- Select the Category column (click the B header).
- Go to Insert → Dropdown. The data validation panel opens.
- Add your options, one per line. A good starting set: Food, Transport, Rent, Utilities, Health, Entertainment, Shopping, Other.
- Pick a color for each if you like. Colored chips make the sheet easier to scan.
- Under Advanced options, choose Reject the input so typos can't sneak in.
Repeat for the Payment column with Cash, Card and Transfer.
Keep it to 6–10 categories at first. Too many choices slow down every entry, and you can always split a category later. Dropdowns also pay off on mobile: some apps (Voice Sheet included) read your dropdown options and use them as the choices in their entry form.
Step 3: Total each month with SUMIFS
SUMIFS adds up the numbers that match every condition you give it. For a month, the conditions are "on or after the 1st" and "before the 1st of next month".
To avoid editing formulas every month, create a second tab called Settings that works out the current month for you:
| Cell | Label | Formula |
|---|---|---|
| B2 | Year | =YEAR(TODAY()) |
| B3 | Month | =MONTH(TODAY()) |
| B4 | Month start | =DATE($B$2,$B$3,1) |
| B5 | Next month start | =DATE($B$2,$B$3+1,1) |
DATE handles December for you: month 13 rolls over to January of the next year.
Now the total spent this month is:
=SUMIFS(Expenses!C:C, Expenses!A:A, ">="&Settings!$B$4, Expenses!A:A, "<"&Settings!$B$5)
And the total for one category (with the category name in cell A2) adds a third condition:
=SUMIFS(Expenses!C:C, Expenses!B:B, A2, Expenses!A:A, ">="&Settings!$B$4, Expenses!A:A, "<"&Settings!$B$5)
If a SUMIFS returns 0 when it shouldn't, the usual cause is dates stored as text. Test a cell with =ISNUMBER(A2). If it says FALSE, that date isn't a real date.
Want last month instead? Change B3 to =MONTH(TODAY())-1, or type any month number to look back.
Step 4: Build a simple budget dashboard
Add a third tab called Dashboard with one row per category:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Category | Budget | Spent | Remaining | Progress |
| 2 | Food | 400 | SUMIFS from Step 3 | =B2-C2 | =SPARKLINE(C2,{"charttype","bar";"max",B2}) |
| 3 | Transport | 120 | … | … | … |
Fill the formulas down for every category. Then add:
- A total row at the bottom:
=SUM(B2:B9)for the budget and=SUM(C2:C9)for spent. - Conditional formatting on the Remaining column (Format → Conditional formatting → "Less than 0", red fill) so overspending jumps out.
- Protection on the formula cells (Data → Protect sheets and ranges) so nobody overwrites them by accident.
Because every formula points at the Settings dates, the dashboard starts fresh on the 1st of each month without any editing. Last month's expenses stay untouched in the Expenses tab.
If you'd rather not build this yourself, Voice Sheet's free Personal Finances template comes with Expenses, Income and a Monthly Budget tab already wired up this way, and the budget dashboard shows budget versus spent per category. There are more free Google Sheets templates for other kinds of tracking, and the full template walkthrough is in our free Google Sheets expense tracker template guide.
How do you log expenses to Google Sheets from your phone?
This is where most trackers fail. The sheet works perfectly on a laptop, but you spend money standing in a shop with your phone in one hand. If adding a row takes a minute, you'll put it off, the receipts pile up, and by week three the sheet is abandoned.
There are three realistic options:
| Method | Time per entry | Set-up | Watch out for |
|---|---|---|---|
| Type into the Google Sheets app | 30–60 s | None | Tiny cells, keyboard covers the sheet, easy to type in the wrong row |
| Google Form linked to your sheet | 15–25 s | 10 minutes | Responses land in a separate tab with a Timestamp column; dropdowns must be maintained in two places |
| An app that adds rows for you | ~5 s by voice, 10–15 s by form | 2 minutes | Check where the app stores your data |
Option 1: Type directly in the Sheets app
It works and costs nothing. To make it bearable, keep the newest rows at the top or jump to the end with a filter view, and use your keyboard's dictation button to fill the Notes cell. Expect it to be slow. Every entry means scrolling, tapping a cell, typing, moving to the next cell and repeating.
Option 2: Use a Google Form
Create a form with questions matching your columns (Date, Category as a dropdown, Amount, Notes), then link it to your spreadsheet from the form's Responses tab. Save the form link to your home screen.
It's faster than typing in cells, and the form is easier to tap through. But responses go into a new "Form Responses" tab, not your Expenses tab, so your formulas need to point there. And whenever you add a category, you have to update both the sheet's dropdown and the form.
Option 3: An app that writes rows to your sheet
Some apps connect to your Google account and add rows to a sheet you choose. That's what Voice Sheet's expense tracker for Google Sheets does. It reads your column names and dropdown options and builds a phone-sized form from them. You can also say an entry, like "lunch 12.50 yesterday, card", and it fills Date, Category, Amount and Payment for you, then shows the form so you can check it before saving.
The row lands in your sheet like any other, so your SUMIFS and dashboard update straight away. There's no Voice Sheet database of your entries: the data lives on your phone and in your own Google Sheet. The form entry is free; voice entry, pasting a list of expenses, and the home screen widget are part of Premium.
Whichever you choose, the habit matters more than the tool: log it when you pay, then take two minutes in the evening to add anything you missed.
Share your expense tracker with a partner or accountant
A Google Sheet is easy to share, which makes it a natural choice for households and freelancers.
With a partner: click Share, add their email and give them Editor access. Add a Person column (a dropdown with both names) so you can see who spent what. Both of you can log from your own phones into the same sheet.
With an accountant or bookkeeper: give Viewer or Commenter access instead. They see the live data whenever they need it, and you never email another CSV. If they want a file, File → Download → Microsoft Excel (.xlsx) or CSV works too.
Keep personal and business separate: if you're self-employed, use a separate spreadsheet (or at least a separate tab) for business expenses, so you can share it without exposing your personal spending.
Common mistakes to avoid
- Too many categories. Start small. Splitting "Food" into "Groceries" and "Eating out" later is easy; merging fifteen categories is not.
- Text in the Amount column. "12.50 approx" breaks totals. Put comments in Notes.
- Catching up weekly from receipts. It feels efficient, but it's the main reason people quit. Log at the moment of payment.
- Rebuilding the sheet every month. Use the Settings-tab approach above instead of copying a new tab each month.
- Mixing currencies in one column. If you spend in several currencies, use one spreadsheet per currency or per trip, rather than adding numbers in different currencies together.
Start with the simplest version that works
You can track expenses in Google Sheets with four columns, one dropdown and one formula. Build that today, log every purchase for a week, and add the dashboard once you've seen what you actually spend. The spreadsheet is the easy part. A phone capture method fast enough to use at the till is what keeps it going past the first month.
Frequently asked questions
Can Google Sheets be used as an expense tracker?
Yes. A sheet with Date, Category, Amount and Notes columns, a category dropdown and a few SUMIFS formulas does everything a basic budgeting app does: monthly totals, spending by category and budget versus actual. It's free, works on any device, and the file stays in your Google Drive.
What columns should an expense tracker spreadsheet have?
Start with four: Date, Category, Amount and Notes. Add Payment method (cash, card, transfer) if you want to see how you pay, and Person if you share the sheet. Keep one expense per row and avoid merged cells or subtotals inside the data, so formulas can read every row.
How do I total expenses by month in Google Sheets?
Use SUMIFS with two date conditions: on or after the first day of the month, and before the first day of the next. For example, =SUMIFS(C:C, A:A, ">="&DATE(2026,10,1), A:A, "<"&DATE(2026,11,1)). Add a third condition on the Category column to get a total per category.
How do I add expenses to Google Sheets from my phone?
You can type into the Google Sheets app, submit a Google Form that writes to your sheet, or use an app that adds rows for you. Typing in cells is the slowest. Forms are quicker but need upkeep. Apps like Voice Sheet build a form from your columns and can fill it from a spoken sentence.
Is a Google Sheets expense tracker better than a budgeting app?
It's better if you want to own your data, customize everything and avoid linking a bank. A budgeting app is better if you want automatic imports and a ready-made dashboard with no set-up. Many people use a sheet for control and a capture app for speed.
