I've downloaded dozens of expense tracker templates over the years. They're either too simple (just columns for date and amount) or too complex (50 tabs with formulas I don't understand and can't modify).
The best expense tracker is one you build yourself. Not because you're trying to prove something, but because when you build it, you understand it. When it breaks, you can fix it. When you want to add a feature, you know where it goes.
This tutorial walks you through building a functional expense tracker from scratch in under an hour. By the end, you'll have something that:
- Tracks transactions across multiple accounts
- Automatically categorizes expenses
- Shows spending by category
- Displays monthly trends
- Updates a dashboard in real-time
No prior spreadsheet experience needed. Just follow along.
What We're Building
Before diving in, here's the end result:
Three main sheets:
- Transactions - Where all your spending gets logged
- Categories - Your spending taxonomy
- Dashboard - Visual summary of your spending
Key features:
- Drop-down categories (no typos)
- Automatic calculations
- Month-to-date spending
- Spending by category
- Simple visual charts
We're keeping this deliberately simple. You can add complexity later. First, build something that works.
Step 1: Create Your Google Sheet (2 Minutes)
- Go to sheets.google.com
- Click "Blank" to create a new spreadsheet
- Rename it "Expense Tracker 2025" (click "Untitled spreadsheet" at the top)
- You'll see one sheet tab at the bottom called "Sheet1"
That's your starting point.
Step 2: Set Up the Transactions Sheet (10 Minutes)
Rename "Sheet1" to "Transactions":
- Right-click the "Sheet1" tab at the bottom
- Click "Rename"
- Type "Transactions"
- Press Enter
Add Column Headers
In row 1, create these headers:
A1: Date
B1: Description
C1: Category
D1: Amount
E1: Account
F1: Notes
Format the header row:
- Highlight row 1 (A1:F1)
- Click the Bold button (or Ctrl+B)
- Click the background color button and choose a light gray
- This makes your headers stand out
Format the Date Column
- Click the column letter "A" to select the entire column
- Go to Format → Number → Date
- This ensures dates display consistently
Format the Amount Column
- Click column "D" to select it
- Go to Format → Number → Currency
- Choose your currency (USD, EUR, etc.)
Now your sheet is ready to receive data.
Step 3: Create the Categories Sheet (5 Minutes)
Create a second sheet for your spending categories:
- Click the "+" button at the bottom left (next to the Transactions tab)
- A new sheet appears called "Sheet2"
- Rename it to "Categories"
Add Your Categories
In column A, starting at A2 (skip row 1 for now), list your spending categories:
A2: Housing
A3: Utilities
A4: Groceries
A5: Dining Out
A6: Transportation
A7: Healthcare
A8: Entertainment
A9: Shopping
A10: Personal Care
A11: Subscriptions
A12: Income
A13: Other
These are starter categories. Adjust based on your life.
Add a Header
A1: Category Name (bold this)
Your Categories sheet is done for now.
Step 4: Add Drop-Down Categories (5 Minutes)
Back in the Transactions sheet, make the Category column use drop-downs:
- Go to the Transactions sheet
- Click on cell C2
- Go to Data → Data validation
- Under "Criteria," select "List from a range"
- Click the range selector icon
- Go to the Categories sheet
- Select A2:A13 (your list of categories)
- Click OK
- Check "Show dropdown list in cell"
- Click "Save"
Now copy this drop-down to all future rows:
- Click on C2 (the cell with the drop-down)
- Copy it (Ctrl+C or Cmd+C)
- Click on C3
- Shift+Click on C100 (or however many rows you want)
- Paste (Ctrl+V or Cmd+V)
Now column C has drop-downs in every row. No more typos in category names.
Do the Same for Account Column
Repeat the process for column E (Account):
-
Go back to Categories sheet
-
In column B, add account types:
- B1: Account Type (header)
- B2: Checking
- B3: Savings
- B4: Credit Card
- B5: Cash
-
Create data validation in Transactions column E using Categories!B2:B5
Now your Account column has drop-downs too.
Step 5: Add Your First Transactions (5 Minutes)
Time to add some real data. In the Transactions sheet, starting in row 2:
Example entries:
| Date | Description | Category | Amount | Account | Notes |
|---|---|---|---|---|---|
| 10/15/2025 | Safeway | Groceries | $78.43 | Credit Card | Weekly shop |
| 10/16/2025 | Shell Gas | Transportation | $52.00 | Credit Card | |
| 10/17/2025 | Electric Bill | Utilities | $127.50 | Checking | |
| 10/18/2025 | Netflix | Subscriptions | $15.99 | Credit Card | |
| 10/19/2025 | Starbucks | Dining Out | $6.75 | Credit Card |
Enter at least 10-15 transactions to have data for the dashboard.
Tip: Enter expenses as positive numbers. We'll handle income differently later.
Step 6: Create the Dashboard Sheet (15 Minutes)
Create a third sheet:
- Click the "+" button at the bottom
- Rename to "Dashboard"
This is where the magic happens.
Set Up Dashboard Sections
A1: SPENDING DASHBOARD (make this big and bold) A3: Total Spent This Month A4: Number of Transactions A5: Average Transaction A7: Spending by Category
Calculate Total Spent
In cell B3 (next to "Total Spent This Month"):
=SUM(Transactions!D:D)
This adds up everything in the Amount column of your Transactions sheet.
Calculate Number of Transactions
In cell B4:
=COUNTA(Transactions!B:B)-1
This counts all entries in the Description column, minus 1 for the header.
Calculate Average Transaction
In cell B5:
=B3/B4
Total spent divided by number of transactions.
Format these cells:
- Highlight B3:B5
- Format → Number → Currency
Show Spending by Category
In cell A8:
Category
In cell B8:
Amount Spent
Bold these header cells.
Now, list categories starting in A9:
=Categories!A2
Drag this formula down to A20 (covers all your categories).
In cell B9 (next to the first category):
=SUMIF(Transactions!C:C, A9, Transactions!D:D)
What this does: Looks at the Transactions sheet, finds all rows where the category matches A9, and sums those amounts.
Drag this formula down to B20.
Now you see spending by category!
Add a Chart
Let's visualize spending:
- Highlight cells A8:B20 (your category table including headers)
- Go to Insert → Chart
- Chart type: Pie chart (or column chart, your choice)
- The chart appears on your Dashboard
- Drag it to position it nicely
- Click the three dots on the chart → Edit chart
- Under Customize → Chart title, name it "Spending by Category"
Boom. Visual dashboard.
Step 7: Add Date Filtering (10 Minutes)
Right now your dashboard shows ALL transactions ever. Let's make it show just this month.
Add Month/Year to Transactions
In the Transactions sheet:
-
Insert a new column between A and B:
- Right-click column B (Description)
- Click "Insert 1 column left"
-
New column B appears
-
In B1, type: "Month"
-
In B2, enter this formula:
=TEXT(A2,"MMM YYYY")
This converts the date to "Oct 2025" format.
- Drag this formula down to all rows with data
Filter Dashboard by Month
Back in the Dashboard sheet, we'll modify our formulas.
First, add a month selector:
D3: Current Month: E3: (dropdown - we'll make this)
Create a month list in Categories sheet:
- Go to Categories sheet
- In column D, starting at D2, list months:
- D1: Month (header)
- D2: Oct 2025
- D3: Nov 2025
- D4: Dec 2025
- etc.
Back to Dashboard:
- Click E3
- Data → Data validation
- List from range: Categories!D2:D13 (or however many months)
- Save
Now modify your dashboard formulas to filter by month:
Total Spent (B3):
=SUMIF(Transactions!B:B, E3, Transactions!D:D)
Number of Transactions (B4):
=COUNTIF(Transactions!B:B, E3)
Category spending (B9):
=SUMIFS(Transactions!D:D, Transactions!C:C, A9, Transactions!B:B, $E$3)
Drag this down to B20.
Now when you select a month in E3, your entire dashboard updates!
Step 8: Make It Look Good (5 Minutes)
Polish the appearance:
Transactions Sheet
- Freeze the header row: View → Freeze → 1 row
- Add filters: Data → Create a filter
- Adjust column widths by double-clicking the column borders
Dashboard Sheet
- Format the title (A1): Bigger font, different color
- Add borders around your sections:
- Highlight B3:B5
- Click the borders button
- Choose "All borders"
- Format negative numbers in red (optional)
Color Code Categories (Optional)
In the Categories sheet, add a color column:
- C1: Color
- C2: 🟦 (blue emoji)
- C3: 🟨 (yellow emoji)
- etc.
Use emojis as visual category markers.
Step 9: Test It (3 Minutes)
Add a new transaction:
- Go to Transactions sheet
- Add a new row with today's date
- Fill in description, category, amount, account
- Go to Dashboard
- Verify that:
- Total Spent increased
- Number of Transactions increased
- Category spending updated
- Chart updated
If all of this works, congratulations! You've built a functional expense tracker.
Step 10: Using Your Tracker Daily
Weekly Routine (5 minutes)
Option 1: Manual Entry
- Gather receipts/check bank transactions
- Open Transactions sheet
- Add each expense as a new row
- Use drop-downs for category and account
Option 2: CSV Import
- Download bank statement CSV
- Open it in Google Sheets
- Copy the relevant columns
- Paste into your Transactions sheet
- Map dates, descriptions, amounts
- Add categories using the drop-down
Monthly Review (10 minutes)
First of each month:
- Open Dashboard
- Review previous month's spending
- Note any surprises or overspending
- Adjust current month's budget accordingly
- Select the new month in your month drop-down
Common Issues and Fixes
Issue: Formula shows #REF! error
Fix: You deleted a column or sheet the formula references. Undo (Ctrl+Z) or rewrite the formula.
Issue: Drop-down doesn't work
Fix: Check your data validation range. Make sure it points to the right cells in Categories sheet.
Issue: Chart doesn't update
Fix: Click the chart → three dots → Refresh. Or delete and recreate the chart.
Issue: Dashboard shows $0
Fix: Check that your formulas reference the right columns. If you inserted columns, the letters shifted.
Issue: Can't find a transaction
Fix: Use Ctrl+F (or Cmd+F) to search the Transactions sheet.
Next Level: Adding Features
Once comfortable with the basics, add these:
Budget Tracking
In Categories sheet:
- Add column C: "Budget"
- Enter monthly budget for each category
- In Dashboard, compare actual vs budget
Income Tracking
- Add "Income" to your categories
- Enter income as negative numbers (so it subtracts from expenses)
- Or create a separate Income sheet
Multiple Month Comparison
- Create a second chart showing spending trends over 6 months
- Use a pivot table to summarize by month
Tags
- Add a "Tags" column to Transactions
- Use tags like "reimbursable," "tax-deductible," "vacation"
- Filter and sum by tag
Receipt Links
- Add a column for Google Drive links to receipt photos
- When reviewing expenses, click link to see the receipt
Why This Works Better Than Templates
You built it, so you understand it. When something breaks, you know how to fix it because you created the formulas.
It's exactly what you need. No extra features cluttering it up, no missing features you wish were there.
You can modify it. Want to track something different? Add a column. Need different categories? Change them.
You learned spreadsheet skills. SUMIF, data validation, charts—these are useful far beyond expense tracking.
From Basic to Advanced (Your Roadmap)
You now have a functional expense tracker. Here's how to evolve it:
Month 1: Use it as-is, get comfortable with daily entry
Month 2: Add CSV import workflow for faster data entry
Month 3: Add budget tracking to compare actual vs planned
Month 4: Create multi-month trends and year-over-year comparison
Month 5: Add AI categorization for automatic category suggestions
Month 6: Build custom reports for specific insights you want
Each month, add one feature. In six months, you'll have a sophisticated system that's completely tailored to your life.
The Real Value: Financial Awareness
The expense tracker itself isn't the point. The awareness it creates is the point.
When you actively categorize every transaction, you start noticing patterns:
- "I spent HOW MUCH on coffee last month?"
- "My subscriptions total $180/month?"
- "I eat out 23 times a month?"
These realizations change behavior. Not because you're forcing yourself to budget, but because you finally see where money goes.
That's worth more than any template or app.
Start Tracking Today
You've built an expense tracker from scratch. It took less than an hour. It costs nothing. And it's completely yours.
Now use it:
- Add today's expenses
- Set a reminder to add expenses every evening (or weekly, whatever works)
- Review your dashboard this weekend
- Adjust and improve next month
The tracker doesn't save money by itself. But it makes the invisible visible. And once you see your spending patterns clearly, better financial decisions follow naturally.
Your expense tracker is ready. Your financial clarity journey starts now.
Related Articles
Ready-Made Templates:
- Expense Tracker Google Sheets Template: Complete Setup Guide (2025)
- Ultimate Google Sheets Expense Tracker (2025)
Automation:
- How to Auto-Import CSV to Google Sheets (No Coding Required)
- Stop Manually Categorizing Bank Transactions: AI vs Formulas vs Manual
- From CSV to Insights: Complete Expense Tracking Automation in Google Sheets
Business Tracking:
Stop Manual Expense Tracking
Let AI categorize your transactions automatically. See exactly where your money goes.
Try Free AI Categorization