sheetsmith

Templates › Personal goals

Fitness & Weight Log

Made for people training with a goal.

Record every workout and a weekly weigh in. The summary shows workouts per week, total training time and how your weight has moved. The summary carries a chart that redraws itself as you type.

Tabs
3
Columns
13
Fill themselves in
15

£7one 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 460 rows.

Workouts

One row per workout. Effort is how hard it felt on a scale of 1 to 10. Room for 400 rows.

ColumnTypeWorked out as
Datedate
Typechoice (list)
Duration (min)number
Effort (1 to 10)number
Week StartingdateIF(ISBLANK([date]), "", [date]-WEEKDAY([date],2)+1)
HoursnumberIF(ISBLANK([minutes]), "", ROUND([minutes]/60, 2))
Notestext

Body Log

One row per weekly weigh in. Enter the oldest first so the change column counts from your starting point. Room for 60 rows.

ColumnTypeWorked out as
Datedate
Weight (kg)number
Waist (cm)number
Chest (cm)number
Hips (cm)number
Change Since Start (kg)numberIF(ISBLANK([weight]), "", IFERROR(ROUND([weight]-INDEX([Body Log!weight], MATCH(MIN([Body Log!date]), [Body Log!date], 0)), 1), 0))

Summary

Your progress at a glance. Everything updates as you add rows.

MeasureWorked out as
Workouts this weekCOUNTIFS([Workouts!date], ">="&(TODAY()-WEEKDAY(TODAY(),2)+1), [Workouts!date], "<="&TODAY())
Workouts last weekCOUNTIFS([Workouts!date], ">="&(TODAY()-WEEKDAY(TODAY(),2)-6), [Workouts!date], "<"&(TODAY()-WEEKDAY(TODAY(),2)+1))
Average workouts per week (last 4 weeks)ROUND(COUNTIFS([Workouts!date], ">"&(TODAY()-28), [Workouts!date], "<="&TODAY())/4, 1)
Total workoutsCOUNT([Workouts!date])
Total training time (hours)ROUND(SUM([Workouts!minutes])/60, 1)
Training time this week (minutes)SUMIFS([Workouts!minutes], [Workouts!date], ">="&(TODAY()-WEEKDAY(TODAY(),2)+1), [Workouts!date], "<="&TODAY())
Average effortIFERROR(ROUND(AVERAGE([Workouts!effort]), 1), 0)
Starting weight (kg)IFERROR(INDEX([Body Log!weight], MATCH(MIN([Body Log!date]), [Body Log!date], 0)), 0)
Latest weight (kg)IFERROR(INDEX([Body Log!weight], MATCH(MAX([Body Log!date]), [Body Log!date], 0)), 0)
Weight change since start (kg)IFERROR(ROUND(INDEX([Body Log!weight], MATCH(MAX([Body Log!date]), [Body Log!date], 0))-INDEX([Body Log!weight], MATCH(MIN([Body Log!date]), [Body Log!date], 0)), 1), 0)
Lowest weight (kg)MIN([Body Log!weight])
Latest waist (cm)IFERROR(INDEX([Body Log!waist], MATCH(MAX([Body Log!date]), [Body Log!date], 0)), 0)