Proper Spreadsheets

Templates › Personal

Student Grade & Assignment Tracker

Made for students at school, college or university.

Keep track of your modules, every assignment's deadline and hand in status, the marks you get back, and your running average. The summary carries a chart that redraws itself as you type.

Of the 16 columns, you fill in 9 and the other 7 work themselves out, and all 10 figures on the summary do too. There is room for 100 rows of your own.

£4.99one 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.

Already have a spreadsheet of your own? Check it for mistakes, free.

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. What the film shows, in order:
  1. A new row is typed into the Assignments tab, one cell at a time, in the white cells a person fills in.
  2. The shaded cells in that row fill themselves in.
  3. The figures on the Summary tab change to include the new row.
  4. The chart, Assignments by status, recounts with it.
The chart, drawn from the totals in the table beside it. See it full size
Where you type, and the shaded columns that work themselves out. See it full size

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 100 rows. Open any tab to see its columns.

Modules

6 columns

One row per module you are taking, with its credits. Averages fill in as marks come back. Ready for 20 rows, every one with its formulas in place.

ColumnWhat goes in itWorked out as
ModuleType any text.
CodeType any text.
CreditsType a number.
Weight MarkedHow much of this module's assessment has been marked so far.Fills itself in.

The total of Worth on Assignments where Module matches this row's Module and Mark is not blank.

The formulaIF(ISBLANK([module]), "", SUMIFS([Assignments!weight], [Assignments!module], [module], [Assignments!mark], "<>"))
Average So FarWeighted average of the marks you have received in this module.Fills itself in.

Worked out from this row's Module, using Weighted Mark, Module, Worth and Mark on Assignments.

The formulaIF(ISBLANK([module]), "", IFERROR(SUMIFS([Assignments!weighted], [Assignments!module], [module]) / SUMIFS([Assignments!weight], [Assignments!module], [module], [Assignments!mark], "<>"), ""))
Credit PointsCredits multiplied by the module average. Used for your overall credit weighted average.Fills itself in.

Worked out from this row's Module, Credits and Average So Far.

The formulaIF(OR(ISBLANK([module]), ISBLANK([credits])), "", IFERROR([credits] * [module_average], ""))

Assignments

10 columns

One row per piece of assessed work. Set the status as you go and enter the mark when it comes back. Ready for 80 rows, every one with its formulas in place.

ColumnWhat goes in itWorked out as
AssignmentType any text.
ModulePick one of the Module entries on Modules.
WorthShare of the module grade this assignment is worth, e.g. 25%.Type a percentage, like 20%.
DeadlineType a date.
StatusPick one: Not started, In progress, Handed in or Marked.
MarkEnter as a percentage, e.g. 68%.Type a percentage, like 20%.
Days LeftNegative means the deadline has passed.Fills itself in.

Worked out from this row's Deadline and Status.

The formulaIF(OR(ISBLANK([deadline]), [status]="Handed in", [status]="Marked"), "", [deadline] - TODAY())
DueFills itself in.

Worked out from this row's Deadline and Status.

The formulaIF(ISBLANK([deadline]), "", IF(OR([status]="Handed in", [status]="Marked"), "Done", IF([deadline] < TODAY(), "Overdue", IF([deadline] - TODAY() <= 7, "Due this week", "Upcoming"))))
Outstanding DeadlineOnly shows a date for work not yet handed in.Fills itself in.

Worked out from this row's Deadline and Status.

The formulaIF(OR(ISBLANK([deadline]), [status]="Handed in", [status]="Marked"), "", [deadline])
Weighted MarkWhat this mark adds to the module grade.Fills itself in.

The Mark times the Worth.

The formulaIF(OR(ISBLANK([mark]), ISBLANK([weight])), "", ROUND([mark] * [weight], 4))

Summary

10 figures

What is due soon and how your grades are going.

FigureWorked out as
Due in the next 7 days

The number of rows on Assignments where Due is “Due this week”.

The formulaCOUNTIF([Assignments!due_flag], "Due this week")
Overdue

The number of rows on Assignments where Due is “Overdue”.

The formulaCOUNTIF([Assignments!due_flag], "Overdue")
Earliest outstanding deadlineThe soonest deadline for work you have not handed in yet.

The smallest Outstanding Deadline on Assignments.

The formulaIF(COUNT([Assignments!pending_deadline]) = 0, "", MIN([Assignments!pending_deadline]))
Still to hand in

Worked out from Status on Assignments.

The formulaCOUNTIF([Assignments!status], "Not started") + COUNTIF([Assignments!status], "In progress")
Handed in, awaiting mark

The number of rows on Assignments where Status is “Handed in”.

The formulaCOUNTIF([Assignments!status], "Handed in")
Average mark so farSimple average of every mark received.

The average of Mark on Assignments.

The formulaIFERROR(AVERAGE([Assignments!mark]), 0)
Weighted average so farBigger assignments count for more.

Worked out from Weighted Mark, Worth and Mark on Assignments.

The formulaIFERROR(SUM([Assignments!weighted]) / SUMIFS([Assignments!weight], [Assignments!mark], "<>"), 0)
Credit weighted averageEach module's average weighted by its credits, counting only modules with marks back.

Worked out from Credit Points, Credits and Weight Marked on Modules.

The formulaIFERROR(SUM([Modules!credit_points]) / SUMIFS([Modules!credits], [Modules!marked_weight], ">0"), 0)
Highest mark

The largest Mark on Assignments.

The formulaIFERROR(MAX([Assignments!mark]), 0)
Total credits

The total of Credits on Modules.

The formulaSUM([Modules!credits])