HomeGoogle DocsSpreadsheetFree Google Sheets Fitness Tracker (Template + Dashboard)

Free Google Sheets Fitness Tracker (Template + Dashboard)

Tracking your workouts shouldn’t feel like a workout. This Google Sheets Fitness Tracker helps you log workouts, track progress, and visualize results—all in one place.

It’s a powerful yet easy-to-use workout tracker built entirely in Google Sheets, with no Apps Script required. More than just a basic log, this Google Sheets Fitness Tracker uses advanced functions like QUERY, HSTACK, and SCAN to create a dynamic dashboard that rivals dedicated fitness apps.

Why Use a Google Sheets Fitness Tracker?

There are plenty of fitness tracker apps available—both free and paid. However, a Google Sheets Fitness Tracker is:

  • Free to use
  • Fully customizable
  • Accessible across all your devices

More importantly, your workout data belongs to you. You can export it, back it up, or move it to another platform anytime without restrictions.

Zero Subscription Fees

There are no “Pro” tiers or hidden paywalls. Once you copy the template, it’s yours to use. Just make sure you follow the applicable copyright terms when sharing or redistributing it.

Download the Free Google Sheets Fitness Tracker

You can preview the template and make your own copy using the button below:

Template Preview & Download

How to Use the Google Sheets Fitness Tracker

The template includes four tabs:

  • Dashboard
  • Workout_Log
  • Exercise_List
  • Helper

Let’s understand the purpose of each tab and where you should enter your data.

Workout_Log: Logging Your Daily Workouts

The Workout_Log sheet in this Google Sheets Fitness Tracker helps you record and analyze your daily workouts efficiently.

Google Sheets fitness tracker workout log with date, exercise, sets, reps, and weight

Field Descriptions

Date
Enter the date of your workout.

✨ Day
Automatically generated from the Date. No manual input is required.

Workout Type
Select a workout type from the drop-down list.
If your desired type is not available, add it in the Exercise_List sheet (column B).

Exercise Name
Choose the exercise from the drop-down. Each exercise is prefixed with its workout type (e.g., “Strength: Bench Press“) to help you identify the correct exercise.

If you add a new workout type, enter the exercise name in column C of the Exercise_List sheet, prefixed with the workout type.

✨ Muscle Group
Automatically populated using a formula. Do not edit.
If you add a new workout type, update the muscle group in column D of Exercise_List.

Sets
Enter the number of sets.

Reps
Enter repetitions per set.

Weight
Enter weight for strength workouts.

  • Use 0 for exercises like Plank
  • Optionally include body weight for Pull-Ups

Duration
Enter duration for cardio exercises.

Calories
Enter the estimated calories burned for cardio exercises.

Notes
Add any additional comments.

Important Notes

  • Columns starting with “✨” contain formulas. Do not edit them.
  • To clear entries, delete only input columns and leave formula columns untouched.
  • Accurate data ensures the Google Sheets Fitness Tracker dashboard generates correct insights.

Exercise_List: Managing Workout Types and Exercises

The Exercise_List sheet powers the drop-downs in your Google Sheets Fitness Tracker.

Exercise list with workout types, exercise names, and muscle groups in Google Sheets

Fields

  • Workout Type
  • Exercise Name
  • Muscle Group

How to Add New Workouts

  • Add entries at the bottom
  • Enter values in columns B, C, and D
  • Prefix exercise names with workout type (e.g., Strength: Bench Press)

Important Note

  • The “Rest” entry represents a rest day
  • It intentionally has no exercise or muscle group—do not modify it

Helper Sheet: Where Background Calculations Happen

This sheet requires no manual changes.

It contains three helper tables that automatically generate:

  • Workout Frequency (by day)
  • Muscle Group Distribution
  • Daily Strength Volume

These power the charts in the Dashboard.

Helper sheet showing workout frequency, muscle distribution, and volume calculations

Dashboard: View Reports and Workout Insights

In the Dashboard sheet:

  • Enter the start and end dates in C2 and C3
  • Double-click these cells to select dates from the calendar popup
  • For better visualization, use a one-week date range to keep charts clear and uncluttered
  • For longer date ranges, you may need to adjust the chart width for better readability

Dashboard Overview

Fitness tracker dashboard with charts for workouts, volume trends, and muscle group distribution

KPI Cards

  • Total Exercises
  • Total Volume (kg)
  • Current & Longest Streaks
  • Cardio Calories
  • Cardio Duration (min)
  • Strength & Cardio Sessions

Visual Trends

  • Workouts per Day (Column Chart)
  • Daily Strength Volume (Line Chart)

Distribution

  • Muscle Group Distribution (Pie Chart)

Key Features of This Google Sheets Fitness Tracker Template

Automated Progress Calculations

This Google Sheets Fitness Tracker automatically calculates workout frequency, volume, streaks, and muscle distribution.

Dynamic Charts and Dashboard

All charts update automatically based on your selected date range.

Customizable Workout Categories

Easily add new workout types, exercises, and muscle groups.

How to Create This Google Sheets Fitness Tracker

Follow the steps below to build your own Google Sheets Fitness Tracker from scratch.

Create a new sheet: https://sheets.new/

Rename it (e.g., Fitness Tracker) and create four tabs:

  • Dashboard
  • Workout_Log
  • Exercise_List
  • Helper

Step 1: Create the Workout_Log Sheet

In the Workout_Log sheet, enter the following field labels in cells B4:L4:

Date
✨ Day
Workout Type
Exercise Name
✨ Muscle Group
Sets
Reps
Weight
Duration
Calories
Notes

Next, convert this range into a table:

Step 2: Set Up the Exercise_List Sheet

Navigate to the Exercise_List sheet.

Enter the following field labels in B4:D4:

Workout Type
Exercise Name
Muscle Group

Now, enter your data below these headers.

Example:

  • Workout Type: Strength
  • Exercise Name: Strength: Bench Press
  • Muscle Group: Chest

When adding exercise names, always prefix them with the workout type (e.g., “Strength: “).
This approach eliminates the need for dependent drop-down lists. Since all exercises appear in a single drop-down, the prefix helps you quickly identify and select the correct exercise—especially as the list grows larger.

Keep the Sheet Clean

  • Select rows 51 to 1000 and delete them to remove unnecessary empty rows.

Add Drop-Down Lists in Workout_Log

Go back to the Workout_Log sheet.

  • Select D5:D1000
    • Click Insert → Drop-down
    • Choose Drop-down (from a range)
    • Select the range Exercise_List!B5:B50
  • Select E5:E1000
    • Insert a drop-down as above
    • Select the range Exercise_List!C5:C50

Add Formulas

  • In cell C5, enter the following formula to generate the day of the week:
=ArrayFormula(IF(Workout_Log[Date], TEXT(Workout_Log[Date], "DDDD"),))

This is an array formula, so you don’t need to drag it down—it will automatically apply to the entire column.

  • In cell F5, enter the following formula to fetch the muscle group from the Exercise_List sheet:
=ArrayFormula(IFNA(VLOOKUP(Workout_Log[Exercise Name], Exercise_List!$C$5:$D, 2, FALSE)))

This completes the setup for the Workout_Log sheet. In the next step, you can continue building the remaining parts of the tracker.

Step 3: Use Formulas to Track Progress

In the Helper sheet, you will create three helper tables that power the dynamic charts in the Dashboard of the fitness tracker template.

Before proceeding, go to the Dashboard sheet and enter the start date and end date in cells C2 and C3, respectively. These dates are required because the formulas in the Helper sheet use them to filter data from the Workout_Log sheet.

Workout Frequency

In cell A2, enter the following QUERY formula to generate workout frequency:

=QUERY(Workout_Log[[#ALL],[Date]],
"select Col1, count(Col1)
where Col1 >= date '" & TEXT(Dashboard!C2, "yyyy-mm-dd") & "'
and Col1 <= date '" & TEXT(Dashboard!C3, "yyyy-mm-dd") & "'
group by Col1
label count(Col1) 'Workouts'", 1)

Muscle Group Distribution

In cell D2, use the following QUERY formula to create the muscle group distribution:

=QUERY(
HSTACK(Workout_Log[✨ Muscle Group], Workout_Log[Date]),
"select Col1, count(Col1)
where Col1 is not null
and (Col2 >= date '" & TEXT(Dashboard!C2, "yyyy-mm-dd") & "'
and Col2 <= date '" & TEXT(Dashboard!C3, "yyyy-mm-dd") & "')
group by Col1
label Col1 'Muscle Group', count(Col1) 'Sessions'"
)

Daily Strength Volume

Creating daily strength volume requires two formulas.

Step 1: Generate a Date Sequence

In cell G3, enter the following formula to generate a sequence of dates between the selected start and end dates:

=SEQUENCE(DAYS(Dashboard!C3, Dashboard!C2)+1, 1, Dashboard!C2)

This will return numeric values. Select the range and apply:
Format → Number → Date

Step 2: Calculate Volume

In cell H3, enter the following formula to calculate daily strength volume:

=ArrayFormula(
IFNA(
VLOOKUP(
G3:G,
QUERY(
HSTACK(Workout_Log[Sets]*Workout_Log[Reps]*Workout_Log[Weight], Workout_Log),
"select Col2, sum(Col1)
where Col4 = 'Strength'
and (Col2 >= date '" & TEXT(Dashboard!C2, "yyyy-mm-dd") & "'
and Col2 <= date '" & TEXT(Dashboard!C3, "yyyy-mm-dd") & "')
group by Col2"
),
2,
FALSE
)
)
)

This completes the helper table setup. These calculations will automatically update and feed data into the charts in the Dashboard, enabling dynamic tracking of your fitness progress.

Step 4: Automated Fitness Dashboard

You are now in the final stage of creating the Dashboard report.

This sheet uses several formulas to generate key insights. Let’s go through them one by one.

Key Metrics

Total Logged Days C5

=COUNTUNIQUEIFS(Workout_Log[Date], ISBETWEEN(Workout_Log[Date], $C$2, $C$3), TRUE)

Total Volume (kg) – F5

=SUMPRODUCT(
ISBETWEEN(Workout_Log[Date], $C$2, $C$3),
Workout_Log[Workout Type]="Strength",
Workout_Log[Sets],
Workout_Log[Reps],
Workout_Log[Weight]
)

Total Exercises I5

=COUNTUNIQUEIFS(Workout_Log[Exercise Name], ISBETWEEN(Workout_Log[Date], $C$2, $C$3), TRUE)

Current and Longest Streak – L5

=LET(
udt, UNIQUE(FILTER(Workout_Log[Date], Workout_Log[Workout Type]<>"Rest", ISBETWEEN(Workout_Log[Date], $C$2, $C$3))),
streak, SCAN(0, SEQUENCE(COUNT(udt)),
LAMBDA(acc, val,
LET(
prv, IFERROR(CHOOSEROWS(udt, val-1)),
cur, CHOOSEROWS(udt, val),
IF(cur-prv>1, 0, acc+1)
)
)),
cs, (CHOOSEROWS(streak, -1)+1) *
IF(XLOOKUP(C3, Workout_Log[Date], Workout_Log[Workout Type], "Rest", -1, -1)="Rest", 0, 1),
ls, MAX(streak)+1,
IFERROR(
JOIN(CHAR(10),
VSTACK(
ls & IF(ls>1, " days", " day"),
cs & IF(cs>1, " days", " day")
)
),
"-"
)
)

Note

Seeing 0 days as the current streak?
If you perform light activities such as stretching or walking on rest days, consider logging them as Mobility or Active Recovery in the Workout_Log sheet to maintain your streak.

Additional Metrics

Strength Sessions C7

=COUNTIFS(
Workout_Log[Workout Type], "Strength",
ISBETWEEN(Workout_Log[Date], $C$2, $C$3), TRUE
)

Cardio Sessions – F7

=COUNTIFS(
Workout_Log[Workout Type], "Cardio",
ISBETWEEN(Workout_Log[Date], $C$2, $C$3), TRUE
)

Cardio Duration – I7

=SUMIFS(
Workout_Log[Duration],
Workout_Log[Workout Type], "Cardio",
Workout_Log[Date], ">=" & $C$2, Workout_Log[Date], "<=" & $C$3
)

Cardio Calories – L7

=SUMIFS(
Workout_Log[Calories],
Workout_Log[Workout Type], "Cardio",
Workout_Log[Date], ">=" & $C$2, Workout_Log[Date], "<=" & $C$3
)

Create Charts

Build three charts using data from the Helper sheet:

To create charts:

  1. Go to the Helper sheet
  2. Select the relevant table
  3. Click Insert → Chart

Once created, copy and paste the charts into the Dashboard, and then remove them from the Helper sheet if needed.

Top 5 Exercise Frequency

Finally, in cell K27 of the Dashboard, enter the following formula to display the top 5 most performed exercises:

=IFERROR(
SORTN(
QUERY(
HSTACK(Workout_Log[Exercise Name], Workout_Log[Date]),
"select Col1, count(Col1)
where Col1 <> ''
and (Col2 >= date '" & TEXT(C2, "yyyy-mm-dd") & "'
and Col2 <= date '" & TEXT(C3, "yyyy-mm-dd") & "')
group by Col1
order by count(Col1) desc
label count(Col1) ''"
),
5, 1, 2, 0
),
"-"
)

This completes the Dashboard setup. Your Google Sheets Fitness Tracker Template will now automatically generate insights, trends, and visual reports based on your workout data.

Who Should Use This Google Sheets Fitness Tracker?

This Google Sheets Fitness Tracker is ideal for:

  • Fitness Beginners – Build consistency
  • Gym Enthusiasts – Track strength and volume
  • Home Workout Users – Log bodyweight routines
  • Cardio Users – Track duration and calories
  • Data-Driven Users – Analyze trends and progress

Frequently Asked Questions (FAQ)

Does this fitness tracker require coding or Apps Script?

No, this tracker does not require any coding or Apps Script. It is built entirely using built-in Google Sheets functions like QUERY, ARRAYFORMULA, and VLOOKUP.

Can I track both strength and cardio workouts?

Yes, this Google Sheets Fitness Tracker supports both strength and cardio workouts. You can log sets, reps, and weight for strength training, as well as duration and calories for cardio sessions.

How does the dashboard update automatically?

The dashboard updates automatically using formulas that pull data from the Workout_Log and Helper sheets. Once you enter your workout data, charts and metrics adjust instantly based on the selected date range.

Conclusion

My goal with this post is to provide a free yet premium Google Sheets Fitness Tracker that is both powerful and easy to customize.

Whether you’re a beginner or an advanced user, you can start using this template right away. All formulas are already built in, so you don’t need to worry about breaking anything.

If you haven’t already, now is the perfect time to make a copy of the Google Sheets Fitness Tracker and start tracking your workouts today.

Your feedback is valuable—try the template and share your thoughts in the comments.

Looking for more tools like this? Check out our Premium Google Sheets Templates (Fully Automated & Dynamic) library.

Prashanth K V
Prashanth K V
Your Trusted Google Sheets and Excel Expert Prashanth K V is a Diamond Product Expert in Google Sheets, officially recognized by Google for his contributions to the Docs Editors Help Community and featured in the Google Product Experts Directory. Explore his blog to learn advanced formulas, automation tips, and problem-solving techniques to elevate your spreadsheet skills.

Top Discussions

More like this

Sheetogram: Free Nonogram Game for Google Sheets (10×10 Puzzle Template)

Recently, I built Sheetogram, a Nonogram game for Google Sheets, as a passion project....

How to Generate Unique 10×10 Nonogram Puzzles in Google Sheets

Creating nonogram puzzles in Google Sheets is surprisingly easy. All you need is a...

How to Build a Dynamic Nonogram Clue Generator in Google Sheets

Over the past few months, I've built a couple of games in Google Sheets,...

2 COMMENTS

  1. I’m looking forward to trying this template for a few weeks. Can you explain what the term “Total Volume” refers to? Is this the total amount of weight I have lifted? Will the calculations still work if I am using pounds (USA) instead of kilograms?

    • Thanks for trying the template.

      Yes, Total Volume means the total load lifted during your selected date range for strength workouts. It is calculated as:

      Sets × Reps × Weight

      » Sets = how many rounds you perform an exercise
      » Reps = how many repetitions in each round

      For example, 3 sets of 10 reps at 100 lb = 3,000 lb total volume.

      And yes, it works perfectly with pounds too. If you enter weight in lb, the Total Volume will also be in lb (you can rename the label if needed).

      You can also check the Helper tab to see the daily breakdown of Total Volume.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.