Planning meals saves money, but only if the grocery list is painless. Here's a two-tab sheet where you pick meals for the week and the shopping list (with an estimated cost) fills itself in.
Tab 1: Recipes
One row per ingredient, per recipe:
| A: Recipe | B: Ingredient | C: Qty | D: Unit | E: Cost per unit |
|---|---|---|---|---|
| Chili | Ground beef | 1 | lb | 4.50 |
| Chili | Kidney beans | 2 | can | 0.89 |
| Tacos | Ground beef | 1 | lb | 4.50 |
Tab 2: Week
- A2:A8: Monday to Sunday.
- B2:B8: dinner. Add a dropdown with Data > Data validation > Dropdown (from a range) pointing at
=UNIQUE(Recipes!A2:A).
The grocery list
In Week!D2, list every ingredient needed this week, combined:
=QUERY(
FILTER(Recipes!B2:E, COUNTIF(B2:B8, Recipes!A2:A)),
"select Col1, sum(Col2), Col3 group by Col1, Col3 label sum(Col2) 'Qty'", 0)
COUNTIF(B2:B8, Recipes!A2:A) returns how many nights each recipe row is planned. FILTER treats that count as true or false, so chili twice in a week still shows the ingredients only once. To scale for repeats, swap to the version below.
Scaling for repeat meals
Add a helper column F in Recipes:
=ARRAYFORMULA(IF(A2:A="",, C2:C * COUNTIF(Week!B2:B8, A2:A)))
Then point the QUERY at Recipes!B2:F and sum Col5 instead of Col2.
Estimated cost
=SUMPRODUCT(Recipes!E2:E, Recipes!F2:F)
That's your weekly grocery estimate, and you can compare it against your food budget line.
Done
Change the dropdowns each Sunday and the list rebuilds.
If you'd rather grab a ready-made version, I make templates as Financely Templates (disclosure: these are my products):
- Free budget starter: https://financely15.gumroad.com/l/hebytt
- Bundle of 7 templates including the meal planner, pay what you want ($0 works): https://financely15.gumroad.com/l/yfcbno
- Same bundle at the regular price: https://financely15.gumroad.com/l/okzjiw
Top comments (0)