Project Tracker in Excel — Build a Live Tracker with Progress Bars & RAG Status (2026)

A spreadsheet full of tasks is not a project tracker — a tracker tells you, at a glance, what is on track, what is slipping, and how far along the whole project is. In 45 minutes you’ll build a self-updating Excel tracker with a status dropdown, automatic RAG flags, in-cell progress bars, an effort-weighted completion percentage, and a one-click Gantt timeline. No add-ins, no macros, works in Excel 2016 through Microsoft 365.

Dr Waqas Rafique Dr Waqas Rafique · Founder & CTO · PhD, Statistical Machine Learning
· About

TL;DR

Build a flat task table → Ctrl+T to make it a Table named ProjectTasks. Add a Status dropdown (Data Validation), a Days Left column (=[@[Due Date]]-TODAY()), an automatic RAG column (nested IF), and in-cell progress bars (Conditional Formatting → Data Bars, Min 0 / Max 1). Track overall progress with =AVERAGE(ProjectTasks[% Complete]) or an effort-weighted SUMPRODUCT. Add a COUNTIF summary and a conditional-formatting Gantt to finish.

Contents

  1. What is a Project Tracker?
  2. Before You Start — Columns & Data Rules
  3. Step 1 — Design the Task Table
  4. Step 2 — Status Dropdown
  5. Step 3 — Duration & Days Left
  6. Step 4 — Automatic RAG Status
  7. Step 5 — In-Cell Progress Bars
  8. Step 6 — Overall Completion
  9. Step 7 — Automated Gantt Timeline
  10. Step 8 — Summary Dashboard
  11. Try It: Interactive Tracker
  12. Advanced Tips
  13. Common Errors & Fixes
  14. FAQ

What is a Project Tracker?

A project tracker is a structured spreadsheet that records every task in a project alongside its owner, dates, status, and completion, and then turns that raw list into an at-a-glance picture of project health. The difference between a to-do list and a tracker is calculation: a tracker derives new information — days remaining, overall progress, which tasks are overdue, how the workload is distributed — from the data you enter, and it keeps that information current automatically.

In Excel, a good project tracker rests on three pillars. The first is a clean task table: one row per task, consistent columns, no merged cells. The second is a layer of formulas that compute duration, days left, RAG status, and percent complete without you touching them. The third is a visual layer — in-cell data bars, conditional-formatting colours, and a Gantt timeline — that lets a stakeholder understand the project in five seconds without reading a single number.

The reason Excel remains the most popular project-tracking tool on earth, despite hundreds of dedicated apps, is flexibility. You can model any methodology — waterfall phases, sprints, a simple checklist — with the same building blocks. There are no per-seat licences, no rigid templates, and no learning curve for the people who will actually read the tracker. The trade-off is that Excel does not enforce structure for you: the moment someone types “in prog.” instead of “In Progress”, your counts break. This guide builds in the guard-rails — data validation, structured Tables, and formula-driven status — that keep a tracker reliable as it grows.

By the end you will have a tracker that updates its own status flags every morning, shows a live progress bar for the whole project, highlights overdue work in red automatically, and renders a Gantt timeline that redraws itself whenever a date changes. Everything is built with native Excel features, so it opens and works identically for anyone you share it with.

Before You Start — Columns & Data Rules

Five minutes of structure now saves hours of broken formulas later. Follow these rules before you type a single task.

Rule 1: One row = one task

Every row must describe a single, atomic piece of work. Resist the urge to write “Design & build & test the login page” in one row — split it into three. Atomic tasks are easier to assign, estimate, and mark complete, and they make your progress percentage meaningful.

Rule 2: Every column has a unique header, with no gaps

Put headers in row 1 with no blank header cells and no blank columns inside the data block. Excel Tables and formulas treat a blank column as the edge of your data, so a stray empty column will silently cut off half your tasks.

Rule 3: Dates must be real dates

Start Date and Due Date must be genuine Excel dates, not text. A quick test: select a date cell and look at the status bar or change the format to General — a real date becomes a 5-digit serial number like 45901. Text dates will not subtract, sort, or feed the Gantt. Fix text dates with Data → Text to Columns → Finish.

Rule 4: Use a number, not text, for % Complete

Store progress as a decimal between 0 and 1 (so 0.5 means 50%) and format the column as a percentage. Decimals let you average, weight, and feed data bars; the word “half done” cannot do any of those.

The recommended column set

✗ A list, not a tracker
TaskDone?
Set up repoyes
Build login + test ithalf
Launch (asap)no
✓ A real tracker
TaskOwnerDue%
Set up repoAlex02/06100%
Build loginSam09/0660%
LaunchPriya20/060%
💡 Pro tip: Add an Effort column (estimated hours or story points) even if you never look at it directly. It is the key to a weighted completion percentage that does not let a five-minute task count the same as a two-week one — see Step 6.
1
2
3
4
5
6
7
8

1.Step 1 — Design the Task Table

Open a blank worksheet and type your headers in row 1. A dependable starting set is: Task ID, Task, Owner, Phase, Start Date, Due Date, Status, % Complete, Effort, and Notes. Enter three or four real tasks underneath so you have something to test against.

Now the single most important move in this whole tutorial: click any cell inside your data and press Ctrl+T. Tick “My table has headers” and click OK. In the Table Design tab, rename the table ProjectTasks. This converts your range into a structured Excel Table.

Why this matters so much: a Table makes every formula you write auto-fill down the entire column, lets you reference data by name (ProjectTasks[% Complete] instead of H2:H50), and — critically — grows automatically when you add a task, so your dashboard never misses new rows.

Add a Task ID you can reference

A short, stable Task ID (T-001, T-002…) is invaluable once you add dependencies. Type the first one, then in the next row use =ROW()-1 formatted to look like an ID, or simply fill a sequence. IDs let one task point to another (“blocked by T-004”) without relying on the task name, which often changes.

💡 Pro tip: Freeze the header row with View → Freeze Panes → Freeze Top Row. On a tracker that scrolls to dozens of tasks, a pinned header is the difference between a usable sheet and a confusing one.

2.Step 2 — A Status Dropdown with Data Validation

Free-text status fields are where trackers go to die. “In Progress”, “in prog”, “WIP”, and “ongoing” all mean the same thing to a human but four different things to COUNTIF. Lock the field down.

Select the entire Status column, then go to Data → Data Validation → Settings → Allow: List. In the Source box, type your statuses separated by commas:

Not Started, In Progress, Blocked, Complete

Click OK. Now every Status cell shows a dropdown arrow and rejects anything off the list. Your counts and colour-coding will stay reliable forever because the underlying values can only ever be one of four exact strings.

Colour the statuses

Select the Status column → Home → Conditional Formatting → Highlight Cells Rules → Text that Contains. Add one rule per status: green for Complete, blue for In Progress, red for Blocked, grey for Not Started. The colour now follows the dropdown automatically.

💡 Pro tip: Keep human-entered Status (what the owner reports) separate from the formula-driven RAG flag (what the dates say). They answer different questions: Status is intent, RAG is reality. A task can be “In Progress” and still be flagged Red because its due date has passed.

3.Step 3 — Duration and Days Left

These two columns turn static dates into live signals. Add a Duration column and, in the first data cell, type:

=[@[Due Date]]-[@[Start Date]]

Because you are inside a Table, the structured reference [@[Due Date]] means “the Due Date in this row”, and the formula fills down every row automatically. Format the result as a number, not a date, or Excel will show you a date in 1900.

Now add a Days Left column that compares each due date to today:

=[@[Due Date]]-TODAY()

A positive number is days remaining; zero is due today; a negative number means the task is overdue by that many days. Because TODAY() recalculates every time the file opens, this column is your tracker’s heartbeat — everything downstream (RAG status, overdue highlighting) depends on it.

Only count working days

If weekends should not count, swap the subtraction for NETWORKDAYS:

=NETWORKDAYS(TODAY(),[@[Due Date]])

Add a third argument pointing to a range of public-holiday dates — =NETWORKDAYS(TODAY(),[@[Due Date]],Holidays) — to exclude bank holidays too.

4.Step 4 — An Automatic RAG Status Column

RAG (Red / Amber / Green) is the universal language of project status. The trick is to derive it from data so it can never go stale. Add a RAG column with this nested IF:

=IF([@[% Complete]]=1,"Green",IF([@[Days Left]]<0,"Red",IF([@[Days Left]]<=3,"Amber","Green")))

Read it top to bottom: if the task is 100% complete it is Green (done is done). Otherwise, if it is past its due date it is Red. Otherwise, if it is due within three days it is Amber. Everything else is Green. The logic mirrors how an experienced PM scans a plan — finished, late, or about-to-be-late.

A smarter, progress-aware RAG

The version above only looks at dates. A more sophisticated flag compares expected progress (how far through the schedule we are) against actual progress. Add an Expected % helper:

=MIN(1,MAX(0,(TODAY()-[@[Start Date]])/[@[Duration]]))

Then flag Red when actual lags expected by more than 15 points: =IF([@[% Complete]]>=[@[Expected %]]-0.15,"Green","Red"). This catches tasks that are technically on-date but quietly falling behind.

Turn the word into a colour

Select the RAG column → Home → Conditional Formatting → Highlight Cells Rules → Text that Contains. Add “Red” (red fill), “Amber” (yellow fill), and “Green” (green fill). Or use an Icon Set of traffic lights driven by a numeric version (1/2/3) of the RAG.

⚠ Watch out: Nested IF evaluates left to right and stops at the first TRUE. Order matters — the “100% complete = Green” test must come first, otherwise a finished task whose due date has passed would wrongly show Red.

5.Step 5 — In-Cell Progress Bars

Numbers tell; bars show. A column of percentages is far easier to scan when each cell also contains a little bar. Select the % Complete column (data cells only), then go to Home → Conditional Formatting → Data Bars → Solid Fill. Pick a colour that matches your theme.

By default Excel scales the bars to the largest value in the range, which means a 40% task can look “full” if it is the highest. Fix the scale: go to Conditional Formatting → Manage Rules → Edit Rule, and set Minimum to Number 0 and Maximum to Number 1 (use 100 if your values are whole percentages). Now a 50% bar always fills exactly half the cell, and bars are comparable across rows.

Show the bar only

In the same Edit Rule dialog, tick Show Bar Only to hide the number and leave a clean visual gauge — useful on a dashboard where the precise figure is shown elsewhere. Untick it on the working sheet where people need the exact value.

💡 Pro tip: Data bars are dynamic — they redraw the instant the underlying value changes. Combined with the fixed 0–1 scale, they give you a live, animated progress column for free, no charts required.

6.Step 6 — Overall Project Completion

Stakeholders want one number: how done is the whole thing? The naive answer averages every task’s percentage:

=AVERAGE(ProjectTasks[% Complete])

This is fine when tasks are roughly equal in size. But it lies when they are not: finishing ten trivial tasks while the one enormous task sits at 0% would report “91% complete” even though most of the real work remains. The honest figure weights each task by its effort:

=SUMPRODUCT(ProjectTasks[% Complete],ProjectTasks[Effort])/SUM(ProjectTasks[Effort])

SUMPRODUCT multiplies each task’s completion by its effort, sums those products, then divides by total effort — the textbook formula for a weighted average. This is the number you should put on the dashboard, because it tracks how much of the work, not the task count, is finished.

Count tasks by status

Pair the headline percentage with status counts so people see the shape of the work:

=COUNTIF(ProjectTasks[Status],"Complete")

Repeat for “In Progress”, “Blocked”, and “Not Started”, and add =COUNTIFS(ProjectTasks[% Complete],"<1",ProjectTasks[Due Date],"<"&TODAY()) for a live count of overdue tasks.

7.Step 7 — An Automated Gantt Timeline

A Gantt timeline shows when each task happens. You can build a chart, but the lightest method uses conditional formatting and lives right next to your table. To the right of your data, create a row of dates (one column per day or week) starting at your project start. Put the first date in, say, K1, then fill across with =K1+7 for weekly buckets.

Select the empty grid under those date headers (the same number of rows as your tasks), then add a new conditional-formatting rule → Use a formula → enter:

=AND(K$1>=$E2,K$1<=$F2)

Here $E2 is Start Date and $F2 is Due Date for the task in that row. The mixed references (K$1 locks the row, $E2 locks the column) make the rule shade a cell whenever its column’s date falls inside that task’s window. Pick a fill colour and Excel paints a bar across the calendar for every task at once — and redraws it the moment any date changes.

Shade progress within the bar

Add a second rule that uses a darker shade where the date is also before Start + Duration × % Complete, giving you a Gantt bar that visually fills as work is done. For a true chart-based Gantt with milestones and dependencies, see our dedicated Gantt chart in Excel tutorial.

💡 Pro tip: Add a vertical “today” marker by giving the date-header cell that equals TODAY() a bold border via its own conditional-formatting rule (=K$1=TODAY()). It instantly shows which tasks should be underway right now.

8.Step 8 — A Summary Dashboard

Put the headline numbers on their own clean area — a separate sheet or the top of your tracker. The essentials are: the weighted completion percentage as a large KPI, a progress bar driven by that cell, the status counts from Step 6, and the overdue count. Drive a big visual progress bar from the completion cell by merging a few cells and applying a single-cell data bar, or use a bar chart with one series.

If your data is in a Table, add a slicer (Table Design → Insert Slicer) on Owner or Phase. Slicers give stakeholders one-click filtering: click “Sam” and the whole table — and any PivotTables you have connected — narrows to Sam’s tasks. Connect a slicer to multiple PivotTables via Report Connections so one click filters the entire dashboard.

Roll up multiple projects

If you added a Project column, a portfolio view is just SUMIFS and COUNTIFS by project. Build a small table listing each project with its weighted completion (SUMPRODUCT with a project filter via an extra criteria array) and overdue count. One flat table, one dashboard, every project — no copy-paste between sheets.

Try It: Interactive Project Tracker

This is exactly what your Excel tracker behaves like. Use the and + buttons to change each task’s completion in 10% steps. Watch the per-task progress bars fill, the RAG badges flip between Green, Amber, and Red based on progress and due date, and the overall effort-weighted completion at the top recalculate live — the same way SUMPRODUCT and conditional formatting work in the real sheet.

Live Project Tracker (effort-weighted)

Click − / + to adjust progress. RAG status and overall completion update automatically.

0%
Overall completion — weighted by effort

Advanced Project Tracker Tips

Model dependencies

Add a Depends On column holding the Task ID a task waits for. Then compute an earliest-start with XLOOKUP to pull the predecessor’s due date: =XLOOKUP([@[Depends On]],ProjectTasks[Task ID],ProjectTasks[Due Date])+1. Flag a scheduling conflict when a task’s start is earlier than its dependency allows.

Auto-sort by urgency

In Microsoft 365, build a live, self-sorting view with SORT and FILTER on a separate sheet: =SORT(FILTER(ProjectTasks[[Task]:[Days Left]],ProjectTasks[% Complete]<1),5,1) returns all unfinished tasks sorted by Days Left ascending — the most urgent work floats to the top automatically.

Highlight the whole overdue row

Select all task rows, add a formula rule =AND($H2<1,$F2<TODAY()) (H = % Complete, F = Due Date), and choose a subtle red fill. Now an overdue task lights up its entire row, not just one cell — impossible to miss in a long list.

Push it to a live dashboard

When the tracker outgrows a single editor — you need real-time collaboration, scheduled email updates, or a shareable link for clients — upload the same spreadsheet to DataHub Pro. It reads your existing columns and produces a live status dashboard with automatic refresh, so you keep planning in Excel and stop rebuilding charts by hand.

Common Errors & Fixes

Duration shows a date like “05/01/1900”

Excel inherited the date format from the cells you subtracted. Select the Duration column and set the number format to General or Number. The 5 means five days.

Days Left never changes

Calculation is probably set to Manual. Go to Formulas → Calculation Options → Automatic, or press F9 to force a recalculation. TODAY() only updates on recalculation or file open.

Data bars look wrong / one bar is always full

The scale is still automatic. Edit the rule and pin Minimum to 0 and Maximum to 1 (or 100). Without a fixed maximum, Excel scales to the biggest value in view, so comparisons across rows become meaningless.

COUNTIF returns zero for an obvious match

Almost always a stray space or inconsistent capitalisation in the Status column — the exact reason Step 2 uses Data Validation. Re-apply the dropdown and re-select the offending cells from the list.

Stop Rebuilding Status Reports by Hand

DataHub Pro turns your project spreadsheet into a live dashboard in under 60 seconds — RAG status, progress bars, and a shareable link that updates itself. Upload your tracker, pick your columns, and send stakeholders a URL instead of a screenshot.

Try DataHub Pro free →

Frequently Asked Questions

How do I create a project tracker in Excel?
Start with a flat task table — one row per task, with columns for Task, Owner, Start Date, Due Date, Status, and % Complete. Press Ctrl+T to convert it to an Excel Table so formulas auto-fill and the range expands as you add tasks. Add a Status dropdown via Data Validation, a Days Left column using =[Due Date]-TODAY(), a RAG status column with a nested IF, and in-cell progress bars via Conditional Formatting → Data Bars. Finish with an overall completion cell using AVERAGE or SUMPRODUCT and a COUNTIF summary. The whole build takes under 45 minutes.
How do I calculate percent complete for a whole project in Excel?
For a simple average, use =AVERAGE(ProjectTasks[% Complete]), which treats every task as equally important. For a more accurate figure, weight by effort or estimated hours with =SUMPRODUCT(ProjectTasks[% Complete],ProjectTasks[Effort])/SUM(ProjectTasks[Effort]). The weighted version stops a five-minute task counting the same as a two-week task. Format the result as a percentage and drive a progress bar or a large KPI number from it on your dashboard.
How do I add a progress bar inside a cell in Excel?
Select your % Complete column, then go to Home → Conditional Formatting → Data Bars → Solid Fill. Open Manage Rules → Edit Rule and set the Type to Number with Minimum 0 and Maximum 1 (or 100 if your values are whole percentages). This fixes every bar to the same scale so a 50% task always fills exactly half the cell. Tick ‘Show Bar Only’ to hide the number and show only the bar.
How do I make a RAG (Red Amber Green) status automatically in Excel?
Add a RAG column with a nested IF that reads progress and dates: =IF([@[% Complete]]=1,"Green",IF([@[Days Left]]<0,"Red",IF([@[Days Left]]<=3,"Amber","Green"))). Then apply Conditional Formatting → Highlight Cells Rules → Text that Contains for each colour, or use an icon set. The status updates itself every time you open the file because Days Left depends on TODAY(), removing the manual judgement that makes most trackers go stale.
How do I build a Gantt chart from my project tracker in Excel?
The fastest method uses conditional formatting rather than a chart. Create a row of date headers across the top, then select the grid to the right of your task table and add a Conditional Formatting rule with a formula like =AND(K$1>=$E2,K$1<=$F2), where E is the start date and F the due date. Excel shades each task’s bar across the calendar automatically and the timeline recalculates whenever dates change. For a chart-based Gantt with milestones, see our dedicated Gantt chart tutorial.
How do I highlight overdue tasks in Excel?
Select your task rows, go to Home → Conditional Formatting → New Rule → Use a formula, and enter =AND($H2<1,$F2<TODAY()) where H is % Complete and F the Due Date. Choose a red fill. This highlights any task that is not yet 100% complete and whose due date has already passed. Because it references TODAY(), the highlighting refreshes automatically each day.
Should I use an Excel Table for my project tracker?
Yes — almost always. Pressing Ctrl+T converts your range to a structured Table, which gives you three big advantages: formulas written in one cell auto-fill down the column, structured references like ProjectTasks[% Complete] are far more readable than A2:A50, and the range expands automatically when you add a task so your dashboard formulas never miss new rows. Tables also give you one-click filtering and a built-in Total row.
What columns should a project tracker in Excel have?
A solid minimum set is Task ID, Task Name, Owner, Phase or Category, Start Date, Due Date, Status, % Complete, and Notes. Useful additions include Priority, Estimated Effort (for weighted completion), Dependency (the Task ID this task waits on), and Days Left. Avoid merged cells and keep one row per task — pre-aggregated or grouped rows break the formulas and any pivot tables you build on top.
Can I track multiple projects in one Excel file?
Yes. Add a Project column to the same flat task table rather than splitting tasks across many sheets. With everything in one Table you can use a slicer or a PivotTable to view one project at a time, and a portfolio dashboard with SUMIFS and COUNTIFS to roll up status across all projects. One table, many views is far easier to maintain than one sheet per project.
Is Excel good enough for project management, or should I use dedicated software?
Excel is excellent for small to mid-sized projects, one-off plans, and teams that already live in spreadsheets — it is flexible, free of per-seat costs, and infinitely customisable. Its limits show with real-time collaboration, automatic notifications, dependency-aware scheduling across hundreds of tasks, and audit history. A common pattern is to plan and track in Excel, then push the data into a reporting tool like DataHub Pro for live dashboards and automated status updates without rebuilding the spreadsheet.

Related Tutorials