A workout tracker spreadsheet needs eight columns and two formulas. Both formulas are already written into the file below, on every row, so estimated 1RM and set volume appear the moment you type a weight and a rep count. Download it, open it in Google Sheets or Excel, and start logging.
No signup, no email. 123 rows, formulas included, in kg or lb.
Filled in, a session looks like this:
| Date | Exercise | Set | Weight | Reps | RPE | Est. 1RM | Volume |
|---|---|---|---|---|---|---|---|
| 2026-01-06 | Bench Press (Barbell) | 1 | 80 | 5 | 8 | 93.3 | 400 |
| 2026-01-06 | Bench Press (Barbell) | 2 | 80 | 5 | 8.5 | 93.3 | 400 |
| 2026-01-06 | Bench Press (Barbell) | 3 | 80 | 4 | 9 | 90.7 | 320 |
| 2026-01-06 | Overhead Press (Barbell) | 1 | 45 | 8 | 8 | 57.0 | 360 |
| 2026-01-06 | Overhead Press (Barbell) | 2 | 45 | 8 | 8.5 | 57.0 | 360 |
| 2026-01-06 | Overhead Press (Barbell) | 3 | 45 | 7 | 9 | 55.5 | 315 |
One row per set, not per exercise. It is more typing than a notes-app log, and it is the only layout that lets a spreadsheet chart anything, because every number you want on an axis has to live in its own cell.
Opening it#
Google Sheets#
The fastest route is the Open in Google Sheets button above — it prompts you to make your own copy of the template, formulas already live. If you would rather import the CSV yourself:
- Create a new blank spreadsheet.
- Go to File → Import, choose Upload, and pick the CSV.
- Set import location to Replace spreadsheet.
- Leave Convert text to numbers, dates, and formulas checked. This is the box that turns the formula text into live formulas — if you uncheck it you will get 123 rows of literal
=IF(...)text.
Excel and Numbers#
Open the file. That is the whole procedure — both read CSV formulas natively. In Excel, save it as .xlsx afterwards so your formatting survives, and if your regional settings use a comma as the decimal separator, use Data → From Text/CSV and set the delimiter to comma instead of double-clicking.
What each column does#
| Column | What goes in it | Formula |
|---|---|---|
| Date | One date per session, repeated on every set of that session | — |
| Exercise | Spelled identically every time — this is what you will filter and chart by | — |
| Set | Working set number. Warm-ups are not worth a row | — |
| Weight | Load for that set. The download comes in kg or lb — pick one unit and never mix them | — |
| Reps | Reps completed, not reps planned | — |
| RPE | Effort, 6–10. Optional, and the first column people drop | — |
| Est. 1RM | Epley estimate for that set | =ROUND(D2*(1+E2/30),1) |
| Volume | Load moved in that set | =D2*E2 |
Both formula columns are wrapped in a guard so empty rows stay visually empty rather than showing 0 or #DIV/0!:
=IF(OR(D2="",E2=""),"",ROUND(D2*(1+E2/30),1))
Epley is one of several 1RM formulas and it drifts high above about 10 reps — it is a comparison tool for top sets, not a max you should attempt. The one-rep max calculator runs the same estimate against several other formulas if you want to see the spread.
Charting it#
Two charts are worth the five minutes it takes to build them:
- Weekly volume. Add a helper column with
=IF(A2="","",WEEKNUM(A2)), then insert a pivot table with the week as rows andSUMof Volume as values. A rising line means you are doing more work than last month, which is worth knowing before you conclude a program has stopped working. - Top-set 1RM per lift. Filter to one exercise, pivot with date as rows and
MAXof Est. 1RM as values, and chart it. This is the only line that answers “am I getting stronger” without arguing about how you felt.
If you want weekly sets per muscle rather than total load moved, that is a different count and the training volume calculator does it without a pivot table.
Spreadsheet or app: the honest comparison#
A spreadsheet is not a worse version of a workout app. It is a different tool that wins on things an app cannot offer, and loses on things a spreadsheet cannot do.
| Spreadsheet | App | |
|---|---|---|
| Total control of the layout | Yes — add any column, any formula | No, you get the fields the app has |
| Owns the file outright | Yes, it is a file on your drive | Export gets you a copy, not the original |
| Cost | Free forever | Free tier, or a subscription for the extras |
| Analysis you invent yourself | Anything you can write a formula for | Only the charts that ship |
| Logging speed between sets | Slow — cells, decimals, tiny keyboard | Fast, built for one thumb |
| Charts and PRs | You build and maintain them | Automatic |
| Rest timer | No | Yes |
| Formula upkeep after a year | Ranges, sorts, and pivots to keep straight | None |
| Recovering a lost or overwritten file | Version history, if you noticed | Synced to an account |
The split is fairly clean in practice. If you like the numbers and you log at the kitchen table after training, a spreadsheet is genuinely the better tool and will cost you nothing for as long as you keep it. If you log between sets on a phone, the friction is the deciding factor and it is the reason most spreadsheets die around month four — not because they were bad, but because filling six cells with 90 seconds of rest left is annoying.
When you outgrow the sheet#
The good news is that the sheet is not wasted work. It is the cleanest possible input for an import: structured rows, consistent exercise names, real dates.
Upload it to Gript's AI import — the CSV, an exported copy, or just the pasted text — and it reads the sessions, maps your exercise names onto real exercises, and shows you the full list of what it found before anything is saved. A few hundred rows takes a couple of minutes. Names it is unsure about are yours to confirm or correct, and duplicate sessions are skipped rather than doubled. It is free, and your file stays exactly where it is.
Then the estimated 1RM column you built by hand updates itself, and so does every chart you would have had to maintain.