A shared Google Sheet can keep Palm Springs restaurant bills clear without making dinner feel like bookkeeping. Record each restaurant charge once, then record repayments separately.
The layout below is a reusable template. It uses Transactions, Transfers, and Summary tabs. Small groups can update it from their phones, then settle from one visible balance.
Choose the split method first
Decide how each meal will be divided before entering the first row. Equal splits use 1 and 0 flags, while custom splits use relative dollar amounts or percentages in the participant columns.
That distinction matters. Mixing a flag with a dollar amount in one row produces a number, but the result may not mean what you intended.
Enter the food subtotal, tax, and tip separately when the receipt provides them. The total formula will then show the full amount charged.
Set up the Transactions tab
Create a blank Google Sheet and rename the first tab Transactions. Add these headings in row 1.
| Column | Heading | What to enter |
|---|---|---|
| A | Date | Date of the meal |
| B | Restaurant | Restaurant name and, if useful, location |
| C | Paid By | Person who covered the bill |
| D | Food subtotal | Food and drinks before tax and tip |
| E | Tax | Tax shown on the receipt |
| F | Tip | Actual tip in dollars |
| G | Total | Formula adding D through F |
| H | Split type | Equal or Custom |
| I | Alex | 1, 0, a percentage, or a relative amount |
| J | Jordan | Same approach |
| K | Taylor | Same approach |
| L | Notes | Receipt details, shared items, or conversion notes |
Replace Alex, Jordan, and Taylor with the actual names in your group. Add more participant columns to the right when needed.
In G2, enter this formula and fill it down:
=IF(COUNTA(D2:F2)=0,"",SUM(D2:F2))
If a receipt shows only one total, put that amount in D, enter 0 in E and F, and label the split clearly. Use dollar amounts in the Tip column, not a percentage.
Add a sample Palm Springs dinner
Enter one clearly labeled example before adding your real history. For instance, a sample row could use March 15, 2026, a Palm Springs restaurant, Alex as the payer, $100 for the food subtotal, $8 tax, and $12 tip.
The total should show $120. Set the split type to Equal, then enter 1 under Alex, Jordan, and Taylor. Each person's initial share will be $40.
Use one row for each bill. Add a separate row for a shared appetizer or another charge when different people participated.
Freeze the header so the names stay visible: choose View > Freeze > 1 row. It helps once the group has logged several dinners.
Build the Summary tab
Add a second tab named Summary. Set up these headings:
| Column | Heading |
|---|---|
| A | Person |
| B | Paid for bills |
| C | Share of bills |
| D | Sent |
| E | Received |
| F | Net |
List each person's name in A2:A4. The formulas below use rows 2 through 1000 in the transaction log. Extend those ranges if your group needs more rows.
In B2, enter the amount Alex paid:
=SUMIF(Transactions!$C$2:$C$1000,$A2,Transactions!$G$2:$G$1000)
Copy that formula down for the other names.
For Alex's share of the bills, put this in C2:
=SUM(ARRAYFORMULA(IFERROR(Transactions!$G$2:$G$1000*Transactions!I$2:I$1000/(Transactions!$I$2:$I$1000+Transactions!$J$2:$J$1000+Transactions!$K$2:$K$1000),0)))
For Jordan, use the same formula in C3 but change the current participant column from I to J:
=SUM(ARRAYFORMULA(IFERROR(Transactions!$G$2:$G$1000*Transactions!J$2:J$1000/(Transactions!$I$2:$I$1000+Transactions!$J$2:$J$1000+Transactions!$K$2:$K$1000),0)))
For Taylor, use K in C4:
=SUM(ARRAYFORMULA(IFERROR(Transactions!$G$2:$G$1000*Transactions!K$2:K$1000/(Transactions!$I$2:$I$1000+Transactions!$J$2:$J$1000+Transactions!$K$2:$K$1000),0)))
The IFERROR portion keeps blank rows from creating division errors. A row with 1, 1, 1 divides the total equally. A row with 40, 25, 25 allocates the total in those proportions.
Track repayments on a Transfers tab
Create a third tab called Transfers with these columns:
| Column | Heading | What to enter |
|---|---|---|
| A | Date | Date the repayment was made |
| B | From | Person who sent money |
| C | To | Person who received money |
| D | Amount | Repayment amount |
| E | Note | Meal or bill being settled |
A sample row could read: March 17, 2026, Jordan, Alex, $40, dinner repayment.
Thing is, a repayment changes who holds the money. It does not create another restaurant expense, so don't add that $40 to Transactions.
In Summary!D2, calculate what Alex sent:
=SUMIF(Transfers!$B$2:$B$1000,$A2,Transfers!$D$2:$D$1000)
In E2, calculate what Alex received:
=SUMIF(Transfers!$C$2:$C$1000,$A2,Transfers!$D$2:$D$1000)
In F2, calculate the remaining balance:
=B2-C2+D2-E2
Copy D2:F2 down. A positive net means the group still owes that person. A negative net means that person owes the group.
With the $120 example, Alex starts at +$80, while Jordan and Taylor each show -$40. After Jordan sends Alex $40, Jordan reaches $0 and Alex drops to +$40; Taylor still owes $40.
Some single-tab templates label repayments as Reimbursement and use a 100%/0% allocation. That method only works when its formulas explicitly treat the row as a transfer, and templates differ on whether the percentage describes the sender or recipient. Keep repayments in Transfers for this layout.
Handle uneven orders, tax, and tip
The 1/0 method is simple and transparent. It isn't always fair when one person orders much more than everyone else.
| Situation | Participant entries |
|---|---|
| Everyone shared the meal | 1 for participants and 0 for everyone else |
| Different meal costs | Relative pre-tax amounts, such as 40, 25, and 25 |
| A shared appetizer | A separate row with 1 only for the people who shared it |
| Tax and tip | Put the actual amounts in E and F so G includes the full bill |
If the total is $90 and the custom entries are 40, 25, 25, the formula allocates $40, $25, and $25. That also spreads the tax and tip in proportion to each person's food amount.
For exact item-level accounting, use one row per item or category. Keep the same date and restaurant name, then mark only the people who shared that row.
Use one approach per row. Don't enter 1 for one friend and 25 for another unless you deliberately want those values treated as ratios.
This spreadsheet records the restaurant charge. It doesn't decide whether a meal is deductible or provide tax advice.
Share the sheet without losing control
Invite people by email when possible. Give Editor access only to friends who need to add bills or transfers, and use Viewer or Commenter access for anyone who only needs to check the record.
- Keep general link access restricted unless the group has a clear reason to use a broader link.
- Protect the Summary formulas and the header row from routine edits.
- Review names and amounts before settling a balance.
- Use File > Version history > See version history after an accidental change.
Google Sheets supports protected sheets and ranges, with permissions set by the owner. See Google's guidance on protecting sheets and ranges.
If you want a review flag for large bills, select G2:G1000, open Format > Conditional formatting, choose Custom formula is, and enter:
=G2>100
Choose a yellow fill or another visible style. Change the threshold to fit your group.
Mistakes that throw off the balance
The formulas are straightforward, but small input errors can spread through every total.
- Adding a repayment to
Transactionscounts the same money twice. - A misspelled name, extra space, or nickname can make
SUMIFmiss a payment. - Mixing percentages, dollar amounts, and
1/0flags in one row makes the split hard to audit. - Leaving out tax or tip understates the amount that people actually need to cover.
- If you add participant columns, update every Summary share formula to include them.
- For a friend paying in another currency, agree on the conversion method first and write the agreed amount and details in Notes.
To keep the file readable, filter by date or move settled history to an archive tab after checking that your Summary ranges still include the rows you need.
When a spreadsheet is enough
A sheet works well for occasional dinners and groups that want a visible record. To be honest, it may be all you need.
Consider a dedicated split-bill app when the group needs receipt scanning, item-level capture from photos, or built-in payment requests. Check whether it provides a usable export and clear privacy settings before making it the only record.
Set an update rule
Agree that the person who paid adds the row after each meal. Ask everyone else to check the participant flags within an agreed window, such as 48 hours.
For recurring Palm Springs meetups, review the Summary weekly and settle transfers on a schedule the group accepts. A simple reminder works: I added the dinner row. Please check your share and let me know about any correction before Friday.
Create the three tabs, enter one recent Palm Springs bill, and have everyone verify the flags before logging the next meal.