Free Google Sheets Group Trip Expense Template (Build It in 10 Minutes)
You don’t need an app to split expenses on a group trip. You need a spreadsheet with the right columns and three formulas. This post walks through building one from a blank Google Sheet — no template download, no add-ons, just copy-paste formulas you can adapt to your own trip in about 10 minutes.
Why a spreadsheet beats sticky notes (and where it stops working)
The baseline most groups start with is worse than a spreadsheet: a group text thread where someone says “I got dinner, y’all owe me $12 each,” and by day three nobody remembers who paid for what. A spreadsheet fixes the two core problems — it has one row per expense instead of a scattered chat log, and it can calculate who owes whom instead of making everyone do mental math after four drinks.
It’s also free, works offline once opened, and everyone already has a Google account. Compare that to Splitwise’s free plan limits, which now cap free users at a few expenses per day — a wall you’ll hit before dinner on a busy travel day.
The tradeoff: a spreadsheet only works if someone actually maintains it, and “someone” is usually you. More on that in the breakdown section below — but first, the build.
The template structure: two tabs
You need exactly two tabs. Resist the urge to add more until these two are solid.
Tab 1: Expenses
One row per purchase. Columns:
| Column | Field | Example |
|---|---|---|
| A | Date | 7/10/2026 |
| B | Description | Airbnb |
| C | Category | Lodging |
| D | Amount | 800 |
| E | Paid By | Alex |
| F | Split Between | Alex, Sam, Jordan, Riley |
Tab 2: Balances
One row per person, calculated automatically from the Expenses tab:
| Column | Field |
|---|---|
| A | Person |
| B | Total Paid |
| C | Total Owed |
| D | Net Balance |
That’s the whole structure. Everything else is formulas.
Step-by-step setup
1. Create the Expenses tab
Rename Sheet1 to “Expenses.” Put the header row in (Date, Description, Category, Amount, Paid By, Split Between) and freeze it: View → Freeze → 1 row. Format column D as currency: select the column, Format → Number → Currency.
2. Add the Paid By dropdown
Typos in a name column (“Sam” vs “sam” vs “Samantha”) will silently break every formula downstream, so lock it down with a dropdown. Select E2:E200, then Data → Data validation → Add rule → Dropdown, and list your trip’s names: Alex, Sam, Jordan, Riley.
3. Handle “Split Between” (two ways)
Option A — comma list (simplest). Just type names into column F separated by commas: Alex, Sam, Jordan, Riley. Works fine, but it’s manual and typo-prone for the same reason as Paid By.
Option B — checkbox columns (more reliable, one extra column per person). Add columns G, H, I, J labeled with each person’s name, select the range, and go to Insert → Checkbox. Then build the comma list automatically in column F with:
=TEXTJOIN(", ", TRUE, IF(G2,"Alex",""), IF(H2,"Sam",""), IF(I2,"Jordan",""), IF(J2,"Riley",""))
TEXTJOIN skips the empty strings, so unchecked people just don’t show up in the list. This is worth the extra columns once your group is checking boxes on a phone mid-trip instead of typing names carefully.
4. Build helper columns for the math
Two more columns on the Expenses tab, both hidden-in-plain-sight helpers the Balances tab will lean on:
- Column K — People in split (count):
=LEN(F2)-LEN(SUBSTITUTE(F2,",",""))+1
This counts commas and adds 1 — a standard trick for counting items in a comma-separated string.
- Column L — Per-person share:
=D2/K2
Drag both down for every row you expect to use (row 200 is a safe buffer).
5. Build the Balances tab
List every person’s name down column A. Then:
B2: =SUMIF(Expenses!$E:$E, A2, Expenses!$D:$D)
C2: =SUMPRODUCT(ISNUMBER(SEARCH(","&A2&",", ","&SUBSTITUTE(Expenses!$F$2:$F$200," ","")&","))*Expenses!$L$2:$L$200)
D2: =B2-C2
Fill down for each person.
The formulas, explained
Total paid (SUMIF) adds up every expense where the Paid By column matches this person’s name. Straightforward.
Per-person share (Amount / count of people in split) is what makes this an equal split — the standard default, though not the only fair method. If your group wants to split by day, by income, or itemize a shared grocery run differently than a bar tab, see this rundown of fair ways to split group trip costs — the formulas here still work, you’d just adjust column L’s calculation per row.
Total owed (SUMPRODUCT + SEARCH) is the formula people get stuck on, so here’s what it’s doing. First, SUBSTITUTE(...," ","") strips the spaces out of the split list, turning Alex, Sam, Jordan into Alex,Sam,Jordan so the separator is a bare comma. Then SEARCH(","&A2&",", ","&...&",") wraps both the person’s name and the normalized list in commas before searching — that stops “Sam” from matching inside “Samantha” if you ever add someone with a similar name. ISNUMBER(...) turns each match into TRUE/FALSE (1/0), and SUMPRODUCT multiplies that against the per-person share column and adds it up. No special array-formula keystrokes needed — Google Sheets handles the range inside SUMPRODUCT automatically. (One caveat: this assumes first names without spaces. “Mary Ann” would need a nickname.)
Net balance (Paid − Owed) is the number that matters. Positive means the group owes them money; negative means they owe the group.
Worked example: a 4-person weekend trip
Alex, Sam, Jordan, and Riley take a long weekend. Here’s the Expenses tab:
| Date | Description | Category | Amount | Paid By | Split Between |
|---|---|---|---|---|---|
| 7/10 | Airbnb | Lodging | $800 | Alex | Alex, Sam, Jordan, Riley |
| 7/10 | Groceries | Food | $120 | Sam | Alex, Sam, Jordan, Riley |
| 7/11 | Gas | Transport | $60 | Jordan | Alex, Sam, Jordan |
| 7/11 | Dinner out | Food | $200 | Riley | Alex, Sam, Jordan, Riley |
| 7/12 | Museum tickets | Activities | $81 | Alex | Sam, Jordan, Riley |
Note row 3: Riley didn’t drive, so Riley’s excluded from the gas split. Row 5: Alex paid for museum tickets but skipped the museum, so Alex is excluded from that split. This is exactly the kind of case the comma-list approach handles that a naive “split everything four ways” spreadsheet can’t.
Total spent: $800 + $120 + $60 + $200 + $81 = $1,261.
Per-person shares, expense by expense: Airbnb splits to $200 each; groceries to $30 each; gas to $20 each (Alex, Sam, Jordan only); dinner to $50 each; museum tickets to $27 each (Sam, Jordan, Riley only).
Running the Balances tab:
| Person | Total Paid | Total Owed | Net Balance |
|---|---|---|---|
| Alex | $881 | $300 | +$581 |
| Sam | $120 | $327 | −$207 |
| Jordan | $60 | $327 | −$267 |
| Riley | $200 | $307 | −$107 |
Sanity check: the negative balances sum to $207 + $267 + $107 = $581, which exactly matches Alex’s positive balance. That should always be true — if it isn’t, you’ve got a typo in a name somewhere, which is the single most common bug in this template.
Who pays who: minimizing transactions
In this example it’s simple: Alex fronted the big costs, so Sam, Jordan, and Riley each pay Alex directly ($207, $267, $107) and everyone’s at zero. Three Venmo requests, done.
It gets messier the moment more than one person is owed money. Say two people are positive and two are negative — the “obvious” approach of everyone just paying back whoever they personally bought things from creates way more transactions than necessary. The standard fix is a greedy settle-up: sort everyone by balance, have the biggest debtor pay the biggest creditor until one of them hits zero, and repeat until all balances clear. It’s not something a spreadsheet formula does for you out of the box — you’re doing that matching by hand, which is fine for 4 people and genuinely annoying for 8.
Where the spreadsheet breaks down
Be honest with yourself about these before you commit to running the whole trip on a Sheet:
- Mid-trip editing on a phone. Google Sheets’ mobile app is workable but fiddly for typing into the right cell of a 6-column row while standing in a taxi line.
- Nobody else fills it in. In practice one person (often the trip’s designated planner) ends up entering every expense from everyone’s texted receipts, because getting five people to open a spreadsheet and add a row correctly is its own coordination problem.
- Receipts disappear. The sheet has no place to attach a photo of the receipt, so disputes (“wait, was that $60 or $80?”) have no paper trail.
- Currencies. If the trip crosses borders, you’re manually converting every foreign-currency expense before typing in a dollar amount, and exchange rates from the day you paid aren’t always the rate you remember.
- No voting, no itinerary. The spreadsheet tracks money. It says nothing about which Airbnb the group picked or who’s in for the day hike.
None of these break the spreadsheet’s math — the formulas above will hold up. They break the workflow around it.
When to hand it off to something built for this
If your trip is small, short, and one person is willing to own the sheet, the template above is genuinely enough — don’t over-engineer it. But once you’re coordinating six-plus people across a week with shifting plans, the maintenance burden usually outweighs the setup savings.
Don’t want to babysit a spreadsheet mid-trip? TripSync is our free group trip planner — it imports your Google Sheet, friends log expenses from one shared link (no accounts needed), and settle-up is calculated for you. Try it free →