π Lesson 7.2: Project β A Task Tracker with a Mini-Dashboard
In the last project you built a tracker that calculates. In this one you'll build one that
communicates. We'll create a task list that anyone could run a small team or a busy life from β tasks with
owners, due dates, status and priority β then teach it to flag overdue work by itself, summarize the whole picture with
COUNTIFS and a PivotTable, and finally assemble a small dashboard with
charts and sparklines. This is where the course model tips into its last two stages: Analysis β Visualization β
Dashboard. The dashboard mindset you build here is exactly what the capstone asks for.
π What You'll Learn
By the end of this lesson, you will be able to:
- Build a task Table (Task, Owner, Due Date, Status, Priority) with dropdowns for Status and Priority
- Detect overdue and due-soon tasks automatically with
IFandTODAY - Highlight status and deadlines with conditional formatting
- Summarize tasks by status and count overdue items with
COUNTIFS, and summarize by owner with a PivotTable - Add charts and sparklines and assemble a mini-dashboard of the key numbers and visuals
β±οΈ Estimated Time: 60 minutes
π― Project: A finished Task Tracker workbook with a task Table, dropdowns, overdue logic, COUNTIFS summaries, a PivotTable by owner/status, charts and sparklines, and a small dashboard panel.
In This Lesson
What a Dashboard Really Is
A dashboard is not a fancy chart or a colorful sheet. It's an answer to a question, delivered in the time it takes to glance. A car's dashboard doesn't show you the engine β it shows you speed, fuel, and warning lights, because those are the things you need to decide what to do next. A good spreadsheet dashboard is the same: it hides the raw rows and surfaces the handful of numbers and pictures that let someone act. For a task tracker, the questions are obvious β How many tasks are left? How many are overdue? Who's overloaded? Are we on track?
Here's the key insight that separates a dashboard from a data dump: a dashboard reads from your data, it doesn't contain it. You keep one tidy task Table as the single source of truth, and the dashboard is a collection of formulas, a PivotTable, and charts that all point back at that table. Change a task's status and every dashboard number and chart updates itself β because none of them hold a copy of the data, they just summarize it live. That's the whole idea, and it's exactly the pattern the capstone will scale up.
the single source of truth"] --> B["π¦ Overdue logic
IF and TODAY"] A --> C["π’ COUNTIFS summaries
by status and priority"] A --> D["π PivotTable
owner by status"] C --> E["π Mini-dashboard
numbers, charts, sparklines"] D --> E B --> E
Notice every arrow points from the task Table outward. That one-way flow β data in one place, summaries and visuals reading from it β is the design principle behind every dashboard you'll ever build. Get it right here on a small scale and the capstone in Lesson 8.3 is just "more of the same, wired to a control cell."
π§ Mindset
As you build, keep asking "what decision does this help someone make?" If a number or chart doesn't help a real decision, it doesn't belong on the dashboard β it's clutter. The discipline of a great dashboard is subtraction: show the few things that matter, and let the full table live one click away for when someone wants the detail.
Step 1 β The Task Table with Dropdowns
Open a new workbook and make two worksheets: Tasks and Dashboard. On the Tasks
sheet, set up the columns and enter this starter data beginning at A1. Today's date for this example is
assumed to be around 2026-09-15, so some tasks are past due on purpose β that's what makes the overdue
logic worth building:
Tasks sheet
A B C D E
1 Task Owner Due Date Status Priority
2 Draft Q3 report Ana 2026-09-10 In Progress High
3 Book venue for offsite Ben 2026-09-12 Not Started Medium
4 Fix login bug Carla 2026-09-14 In Progress High
5 Update onboarding docs Ben 2026-09-20 Not Started Low
6 Review budget numbers Ana 2026-09-16 Not Started High
7 Ship newsletter Carla 2026-09-08 Done Medium
8 Prepare demo Ben 2026-09-18 In Progress High
9 Archive old files Ana 2026-09-30 Not Started Low
10 Renew SSL certificate Carla 2026-09-13 Not Started High
11 Plan team lunch Ben 2026-09-25 Not Started Low
Convert the range to a Table with Ctrl+T and name it tblTasks on the Table Design
tab. Make sure Due Date is formatted as a real date, not text β the overdue logic depends on Excel
treating those values as dates it can compare against today.
Add the Status and Priority dropdowns
Just like the budget tracker, consistency matters: "Done," "Done " (with a trailing space), and "Complete" would each be counted separately by
COUNTIFS (capitalization alone is forgiven β "done" still counts as "Done" β but stray spaces and
synonyms are not). Lock the values down with data validation (Lesson 3.2). Because these lists are short and fixed,
you can type the choices straight into the Source box β no separate list needed:
Select the Status column βΈ Data βΈ Data Validation βΈ Allow: List
Source: Not Started,In Progress,Done
Select the Priority column βΈ Data βΈ Data Validation βΈ Allow: List
Source: High,Medium,Low
Now Status and Priority can only be one of the allowed words, which means every summary you build on top will be accurate. This is the same "clean data first" principle from the budget project β a dashboard is only as trustworthy as the table it reads from, and dropdowns are the cheapest possible insurance against messy data.
π‘ Tip β a comma list vs a range
For a handful of stable options (statuses, priorities, yes/no), typing them into the Source box as
High,Medium,Low is quick and self-contained. For a list that changes often β like the budget
categories last lesson, or a growing list of owners β point the Source at a Table column or named range instead, so
the dropdown updates when the list does. Choose based on how often the options change.
Step 2 β Overdue Logic with IF & TODAY
The single most useful thing a task tracker can do is tell you what's late without you checking dates by
hand. TODAY() returns the current date and re-evaluates every day the file opens, so any formula built on it
stays current forever. Add a calculated column to the Table β put the header Flag in column F and enter
this in the first data row (Table structured references fill the whole column automatically):
Tasks sheet β Flag column (F)
F2 =IF([@Status]="Done", "Done",
IF([@Due Date]<TODAY(), "OVERDUE",
IF([@Due Date]<=TODAY()+3, "Due soon", "On track")))
Read it as a little decision tree, top to bottom: if the task is already Done, say so and stop. Otherwise, if its due
date is before today, it's OVERDUE. Otherwise, if it's due within the next three days, it's "Due soon."
Everything else is "On track." Nested IF works through the conditions in order and stops at the first one
that's true β so order matters (we check Done first so a finished-but-late task doesn't scream OVERDUE).
You could write the same thing more readably with IFS (Lesson 4.3), which avoids the pile of closing
parentheses:
F2 (same logic, IFS style β Microsoft 365 / web)
=IFS([@Status]="Done", "Done",
[@Due Date]<TODAY(), "OVERDUE",
[@Due Date]<=TODAY()+3, "Due soon",
TRUE, "On track")
β οΈ TODAY() changes β that's the point, and the catch
TODAY() recalculates to the real current date, so a task that's "Due soon" today may read "OVERDUE"
next week even though nothing else changed. That's the intended behavior for a live tracker. Just be aware that a
screenshot or a printout captures a moment in time β and if you ever want to freeze a date (like "date logged"),
type it as a value rather than using TODAY(). IFS is a modern function; on older perpetual
Excel use the nested IF version above.
Light it up with conditional formatting
Now make the flags impossible to miss. Select the Flag column and add conditional formatting rules based on the text:
| When the flag says⦠| Format | So the eye reads⦠|
|---|---|---|
| OVERDUE | Red fill, bold dark-red text | Deal with this now |
| Due soon | Amber/yellow fill | Coming up β plan for it |
| On track | Light green fill | Fine, ignore for now |
| Done | Gray text / strikethrough feel | Finished, de-emphasize |
Use Home β Conditional Formatting β Highlight Cells Rules β Text that Contains for each word. You can also
add a rule to the whole row: select the Table body, add a formula rule =$F2="OVERDUE", and give it a red
fill so the entire row of an overdue task glows. Row-level formatting like that is a small touch that makes a
tracker feel professional.
Step 3 β Summaries with COUNTIFS
Time to start the dashboard. Switch to the Dashboard sheet and build a small block of headline
numbers using COUNTIFS β the counting cousin of SUMIFS. It counts rows that match one or more
criteria. Enter these:
Dashboard sheet β status summary (starting A1)
A B
1 STATUS Count
2 Not Started =COUNTIFS(tblTasks[Status], "Not Started")
3 In Progress =COUNTIFS(tblTasks[Status], "In Progress")
4 Done =COUNTIFS(tblTasks[Status], "Done")
5 TOTAL =COUNTA(tblTasks[Task])
Key numbers (starting A7)
A B
7 Overdue =COUNTIFS(tblTasks[Flag], "OVERDUE")
8 Due soon =COUNTIFS(tblTasks[Flag], "Due soon")
9 High priority =COUNTIFS(tblTasks[Priority], "High")
10 Open & High =COUNTIFS(tblTasks[Priority], "High", tblTasks[Status], "<>Done")
A couple of things worth noticing. COUNTA(tblTasks[Task]) counts non-empty task names for the total, which
grows automatically as you add rows. And the last one β "<>Done" β uses the "not equal to" operator as a
criterion, counting High-priority tasks that aren't finished. Combining criteria like that is where
COUNTIFS earns its keep: "Open AND High" is precisely the number a manager cares about most.
These few cells are already a legitimate mini-dashboard: someone can glance at "4 overdue, 5 high-priority open" and
know exactly where to look. Everything else we add β the PivotTable and charts β makes the same information easier to
see, but the honest, decision-ready numbers come from these COUNTIFS formulas.
π SUMIFS vs COUNTIFS β same shape, different job
You met SUMIFS in the budget project: it adds a number column for matching rows. COUNTIFS
counts matching rows β no value column, just "how many." Both take pairs of (range, criterion) and both accept
operators in the criterion (">0", "<>Done", ">="&A1). Learn one and
you've learned the family.
Step 4 β A PivotTable by Owner & Status
COUNTIFS is perfect when you know exactly which questions you'll ask. But when you want to slice the data
every which way β by owner, then by status, then re-arranged in seconds β a PivotTable (Lesson 5.1) is the
right tool. It answers "who has how many of what?" without a single formula.
Click any cell in tblTasks, then Insert β PivotTable. Place it on the Dashboard sheet (or a new
sheet). In the PivotTable Fields pane, drag fields into these areas:
| Area | Field | Result |
|---|---|---|
| Rows | Owner | One row per person |
| Columns | Status | Not Started / In Progress / Done across the top |
| Values | Task (Count of) | How many tasks each owner has in each status |
In a few clicks you get a grid showing exactly how the workload is distributed β who has the most open tasks, who's cleared their plate. Drag Priority into the Filters area and you can instantly narrow the whole pivot to just High-priority work. That fluid rearranging is the PivotTable's superpower: the same underlying table, reshaped to answer whatever question comes up next.
β οΈ PivotTables refresh β they don't auto-update
A PivotTable is a snapshot taken when you last refreshed it. Add or change tasks and the pivot won't move until you right-click it β Refresh (or Data β Refresh All). This trips up everyone once. PivotTables work on Excel for the web and desktop, though the desktop app has more layout and calculation options. On the web you can create and refresh them; some advanced pivot features are desktop-only β an honest gap worth remembering.
Step 5 β Charts, Sparklines & the Dashboard
Numbers tell; pictures show. Now turn your summaries into visuals and arrange everything into one tidy dashboard area. A picture isn't decoration here β a bar of "tasks per owner" reveals an overloaded teammate faster than any table.
Add a couple of charts
Charts (Lesson 5.2) read from a range, so point them at your summary blocks:
- Status doughnut or bar: select the STATUS summary (
A1:B4) and Insert β Chart. A doughnut chart of Not Started / In Progress / Done gives an instant sense of overall progress. - Tasks per owner column chart: select your PivotTable (or a small owner-count block) and insert a clustered column chart. This is the "who's overloaded?" picture.
A chart built from a PivotTable is called a PivotChart and updates with the pivot when you refresh. Keep charts small and clean β a clear title, no chart-junk. On a dashboard, restraint reads as professionalism.
Add sparklines
Sparklines are tiny in-cell charts (Lesson 5.2) β perfect for a dashboard because they fit right next to a number. Suppose you keep a small block of "tasks completed per week":
Dashboard sheet β mini trend for a sparkline (starting D1)
D E F G H I
1 Completed 1 3 2 4 5
Select a cell (e.g. D2) βΈ Insert βΈ Sparklines βΈ Line
Data Range: E1:I1
β a tiny trend line appears inside D2
One cell, one glanceable trend β "completions are climbing." Sparklines are fully supported in the desktop app; on the web, sparkline support has varied over time (as Lesson 5.2 noted), so if you don't see the option, add it on the desktop or skip it. A Line sparkline for trends and a Column sparkline for counts are the two you'll reach for most.
Assemble the dashboard area
Finally, arrange it. Put the headline numbers (Total, Overdue, High-priority open) in big, bold cells
across the top β these are the warning lights. Place the status chart and the tasks-per-owner
chart below them, the PivotTable to the side, and a sparkline next to a trend
number. Give the area a title, hide gridlines (View β Gridlines off) for a clean look, and you have a real
mini-dashboard: one screen that answers "how's the work going?" at a glance, all of it reading live from
tblTasks.
π‘ This is the capstone in miniature
What you just built β one source table, formula summaries, a PivotTable, charts, sparklines, and headline numbers, all arranged for a glance β is the shape of the capstone dashboard in Lesson 8.3. The capstone adds interactivity (a control cell that filters everything at once) and more polish, but the architecture is exactly this. Nail the mindset here and the capstone feels familiar.
π― Project: Build the Task Tracker
Build the whole tracker end to end using the starter data (or your own real tasks β even better). Work top to bottom and check each piece before moving on. Aim for a dashboard someone could actually run their week from.
ποΈ Build your Task Tracker & mini-dashboard
Objective: A working task Table with dropdowns and overdue logic, COUNTIFS summaries, a PivotTable by owner/status, at least two charts, a sparkline, and an assembled dashboard area.
Instructions (about 45 minutes):
- (7 min) Create the workbook with Tasks and Dashboard sheets; enter the task data and convert it to
tblTasks; format Due Date as a date. - (6 min) Add Status and Priority dropdowns via Data Validation.
- (8 min) Add the Flag column with the
IF/TODAYoverdue logic, and apply conditional formatting (OVERDUE red, Due soon amber, On track green). - (7 min) On the Dashboard, build the
COUNTIFSstatus summary and the key numbers (Overdue, Due soon, High & open). - (8 min) Insert a PivotTable with Owner in Rows, Status in Columns, Count of Task in Values.
- (9 min) Add a status chart and a tasks-per-owner chart, add one sparkline, and arrange everything into a clean dashboard area with headline numbers on top.
π‘ Hint β the core formulas in one place
-- Tasks: Ctrl+T --> name tblTasks
Status dropdown βΈ Source: Not Started,In Progress,Done
Priority dropdown βΈ Source: High,Medium,Low
Flag column (F2, fills down):
=IF([@Status]="Done","Done",
IF([@Due Date]<TODAY(),"OVERDUE",
IF([@Due Date]<=TODAY()+3,"Due soon","On track")))
Dashboard COUNTIFS:
Not Started =COUNTIFS(tblTasks[Status],"Not Started")
In Progress =COUNTIFS(tblTasks[Status],"In Progress")
Done =COUNTIFS(tblTasks[Status],"Done")
Total =COUNTA(tblTasks[Task])
Overdue =COUNTIFS(tblTasks[Flag],"OVERDUE")
Due soon =COUNTIFS(tblTasks[Flag],"Due soon")
High & open =COUNTIFS(tblTasks[Priority],"High", tblTasks[Status],"<>Done")
PivotTable: Rows=Owner, Columns=Status, Values=Count of Task
Sparkline: Insert βΈ Sparklines βΈ Line, data = your weekly-completed row
If a COUNTIFS returns 0 when you expect more, check the Status/Priority text matches the dropdown exactly and that Due Date is a real date, not text. Remember to refresh the PivotTable after editing tasks.
β Project Completion Checklist
- A
tblTasksTable with Status and Priority dropdowns - A Flag column that auto-labels OVERDUE / Due soon / On track / Done using
TODAY() - Conditional formatting so overdue and due-soon tasks stand out
- A
COUNTIFSstatus summary plus overdue and High-&-open counts - A PivotTable of Owner by Status (Count of Task)
- At least two charts, one sparkline, and everything arranged into a clean dashboard area with headline numbers
π― Quick Quiz
Question 1: Why does the Flag column check [@Status]="Done" before it
checks whether the due date is in the past?
Question 2: You added three new tasks, but the PivotTable still shows the old counts. What's the most likely reason?
Best Practices for Dashboards
β Do's
- Keep one source table and make every summary, pivot, and chart read from it. Never keep a second copy of the data.
- Put the warning lights on top. Overdue count and high-priority-open belong where the eye lands first.
- Refresh PivotTables after editing data β or set them to refresh on open (desktop: PivotTable Options β Refresh data when opening the file).
- Use dropdowns for anything you'll count. Consistent Status/Priority text is what keeps COUNTIFS and the pivot honest.
β Don'ts
- Don't crowd the dashboard. If a chart doesn't help a decision, cut it. Restraint is the skill.
- Don't hard-code counts like "5 overdue" in a cell β it goes stale instantly. Always use
COUNTIFSor the pivot. - Don't forget dates can be text. A Due Date typed as text won't compare against
TODAY()β check the column is truly a date.
π‘ Pro Tips
- Sort or filter the task Table by the Flag column to pull all OVERDUE items to the top in one click.
- Add a Slicer to the PivotTable (Insert β Slicer) for click-to-filter buttons by Owner or Priority β a taste of the interactivity the capstone builds on.
- Name your headline cells (e.g.
OverdueCount) so charts and text can reference them by meaningful names, not addresses.
π Learning Journal
Keep a learning journal as you work through this course β a separate document, a note, or even a second worksheet right in the workbook you're building. After each lesson, take a few minutes to write down:
- Key concepts you learned
- Techniques that clicked for you
- Questions or confusion points to revisit
- Ideas you want to try with your own data
- Your progress and feelings about learning this β including where your confidence grew
βοΈ This lesson's prompt: A dashboard is "the few things that help you decide." For a tracker in your own life β work tasks, chores, a project, study β what would your three headline numbers be? Sketch your ideal dashboard in words, then note which piece (COUNTIFS, PivotTable, chart, or sparkline) you'd reach for to show each one. Thinking in "decisions, not data" is the mindset that carries straight into the capstone.
π Lesson Summary
π Key Takeaways
- A dashboard reads from one source table; it doesn't hold its own copy of the data. Change the table and everything updates β that one-way flow is the core design idea.
- Dropdowns on Status and Priority keep the data consistent so
COUNTIFSand the PivotTable count correctly. IFwithTODAY()makes tasks flag themselves as OVERDUE / Due soon / On track; order the conditions carefully (check Done first).COUNTIFSanswers fixed questions ("how many overdue, how many High & open"); a PivotTable answers flexible ones ("owner by status") and reshapes in seconds β but it must be refreshed.- Charts and sparklines turn those counts into a glanceable picture; arranging headline numbers on top yields a real mini-dashboard β the capstone in miniature.
π What You've Accomplished
You built a task tracker that flags its own overdue work, summarizes itself with formulas and a PivotTable, and shows the whole picture in charts and sparklines arranged as a dashboard. More importantly, you internalized the dashboard mindset: one source of truth, summaries that read from it, and a layout built around the decisions people actually make. That mindset is the through-line into the capstone.
β Common Questions at This Stage
My overdue count looks wrong β some past-due tasks aren't flagged. Why?
The usual cause is that the Due Date is stored as text rather than a real date, so
[@Due Date]<TODAY() can't compare it. Select the column and check the number format; if a date shows
left-aligned it's probably text. Re-enter it or use Data β Text to Columns to convert. Also confirm the
Status text exactly matches "Done" β a completed task with a typo'd status can slip through the logic.
Do PivotTables and charts work on free Excel for the web?
Yes. You can create and refresh PivotTables and insert charts on Excel for the web; sparkline support on the web has varied over time, so check your version (the desktop app always has them). Some advanced pivot options, calculated fields, and a few chart types are richer or desktop-only β we flag those as honest gaps β but everything in this project works on the free web version.
When should I use COUNTIFS instead of a PivotTable?
Use COUNTIFS for a fixed headline number you always want visible (like "Overdue: 3") β it
lives in a cell, updates live, and can feed a chart or text. Use a PivotTable when you want to explore
β slice by owner, then status, then priority, rearranging as questions come up. Most dashboards use both: COUNTIFS for
the fixed warning lights, a pivot for the flexible breakdown.
π Looking Ahead
In the next lesson β Lesson 7.3: Project β A Data Cleanup & Analysis Workflow β we tackle the messy
reality of real-world data. You'll start from an imported dataset full of inconsistent case, extra spaces, split names, and
duplicates, clean it with TRIM, PROPER, TEXT, and Flash Fill (with Power Query as the
repeatable option), then structure and analyze it with a PivotTable and dynamic arrays β the true analyst workflow of clean β
structure β analyze β conclude.
β Before the Next Lesson
- Finish your Task Tracker and confirm the dashboard updates when you change a task
- Try adding an overdue task and a due-soon task, and watch the flags and counts react
- Write your Learning Journal entry for this lesson
π Additional Resources
- Microsoft Excel Help & Learning (Microsoft Support)
- Microsoft to-do & planner templates (create.microsoft.com)
- microsoft365.com β open Excel for the web
π Encouragement for the Journey
You just built something that talks back β a sheet that tells you what's late, who's busy, and how the work is going, all on its own. That's the leap from spreadsheet-user to dashboard-builder. One project stands between you and the capstone, and you're carrying the exact mindset it needs. Onward. π