Proper Spreadsheets

Templates › Plans and occasions

Christmas Budget & Gift Planner

Made for anyone who wants Christmas without the January shock.

Set an overall Christmas budget, plan what to spend on each person, log every gift and every other cost, and see at a glance what is spent, what is left and who still needs a present. The summary carries a chart that redraws itself as you type.

Tabs
5
Columns
21
Fill themselves in
19

£4.99one payment, yours to keep

  • Opens in Excel, Google Sheets and Numbers
  • Delivered straight away
  • No macros, nothing to install
  • Change it free before you buy

Payment is handled by Stripe. Your card details go to them and never to us. Sales are final, which is why every tab, column and calculation is shown on this page first.

The workbook's summary and the table behind it
A row typed into the real file. Every figure that changes is the spreadsheet's own arithmetic.
The summary page, every figure calculated from the tables
The chart, drawn from the totals in the table beside it
What is inside: the tabs, the columns and what fills itself in
Where you type, and the shaded columns that work themselves out
The guide sheet that opens first and explains the file
Everything included in the download

Everything inside, before you pay

This is the whole design: every tab, every column and how each calculated one is worked out. White cells are yours to fill in; the shaded ones work themselves out and are locked so a formula cannot be overwritten by accident. There is room for 380 rows.

Budgets

Your overall Christmas budget and a budget for each other cost. Put one row for Overall Christmas, then one for each category you want to watch. Room for 20 rows.

ColumnTypeWorked out as
Budgetchoice (list)
Budget Amountcurrency
Spent So FarcurrencyIF(ISBLANK([line]), "", IF([line]="Overall Christmas", SUM([Gifts!cost])+SUM([Other Costs!cost]), SUMIF([Other Costs!category], [line], [Other Costs!cost])))
Left to SpendcurrencyIF(OR(ISBLANK([line]), ISBLANK([budget])), "", [budget]-[spent])
StatustextIF(OR(ISBLANK([line]), ISBLANK([budget])), "", IF([spent]>[budget], "Over budget", "Within budget"))

People

Everyone you are buying for and what you plan to spend on each. Room for 60 rows.

ColumnTypeWorked out as
Nametext
Planned Spendcurrency
Spent So FarcurrencyIF(ISBLANK([name]), "", SUMIF([Gifts!recipient], [name], [Gifts!cost]))
Left to SpendcurrencyIF(OR(ISBLANK([name]), ISBLANK([planned])), "", [planned]-SUMIF([Gifts!recipient], [name], [Gifts!cost]))
Gifts BoughtnumberIF(ISBLANK([name]), "", COUNTIF([Gifts!recipient], [name]))
StatustextIF(ISBLANK([name]), "", IF(COUNTIF([Gifts!recipient], [name])=0, "Still to buy", "Bought"))

Gifts

Every gift you buy, who it is for and whether it is wrapped yet. Room for 150 rows.

ColumnType
Date Boughtdate
Forchoice (from People › name)
Gifttext
Where Fromtext
Costcurrency
Wrappedbool

Other Costs

Food, decorations, cards, postage and anything else that is not a gift. Room for 150 rows.

ColumnType
Datedate
Categorychoice (list)
What Fortext
Costcurrency

Summary

What you have spent, what is left and who still needs a present.

MeasureWorked out as
Overall Christmas budgetSUMIF([Budgets!line], "Overall Christmas", [Budgets!budget])
Spent on giftsSUM([Gifts!cost])
Spent on other costsSUM([Other Costs!cost])
Total spentSUM([Gifts!cost])+SUM([Other Costs!cost])
Left in overall budgetSUMIF([Budgets!line], "Overall Christmas", [Budgets!budget])-SUM([Gifts!cost])-SUM([Other Costs!cost])
Am I over budget?IF(SUMIF([Budgets!line], "Overall Christmas", [Budgets!budget])=0, "Set an overall budget", IF(SUM([Gifts!cost])+SUM([Other Costs!cost])>SUMIF([Budgets!line], "Overall Christmas", [Budgets!budget]), "Yes, over budget", "No, within budget"))
Planned spend on giftsSUM([People!planned])
Budget usedIFERROR((SUM([Gifts!cost])+SUM([Other Costs!cost]))/SUMIF([Budgets!line], "Overall Christmas", [Budgets!budget]), 0)
People still to buy forCOUNTIF([People!status], "Still to buy")
People over their gift budgetCOUNTIF([People!remaining], "<0")
Gifts still to wrapCOUNTIF([Gifts!wrapped], FALSE)
Cost categories over budgetCOUNTIFS([Budgets!status], "Over budget", [Budgets!line], "<>Overall Christmas")