In Excel: put the cut-offs in a small table sorted ascending and use approximate-match VLOOKUP: =VLOOKUP(B2,$E$2:$F$6,2,TRUE).
On this page7
Build a two-column table: the lower bound of each band on the left, the label on the right.
Sort it ascending by the bound, and start it at zero so no score falls below the table.
Enter =VLOOKUP(B2,$E$2:$F$6,2,TRUE) beside the first score and fill down; the dollar signs keep the table fixed.
On Microsoft 365, use XLOOKUP with match mode -1 instead, which does not require the table to be sorted.
For plus and minus grades, add the extra rows to the table — the formula needs no change at all.
Need it as an auditable file?
Ships inside the linked template — formula-driven, unlocked, audit-ready.
What this does
Approximate-match lookup is built for banded conversions. Given a sorted table of lower bounds and their labels, VLOOKUP with TRUE as the last argument finds the largest bound not greater than the score and returns its label. Compared with a chain of nested IFs, the boundaries live on the sheet where anyone can see and change them, and adding a grade is a new row rather than a rewritten formula. Most people learn this as a sequence of clicks and forget it by next week; learning it as a pattern instead is what lets you apply it to the next, slightly different version of the problem without starting from scratch. That is the difference this page is trying to make. Treat “calculating grades in excel” as a small repeatable workflow rather than a one-off click you hope to remember next time. Use a small test block before the live file, so any surprise in the affected cells shows up while it is still harmless. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That turns a calculation you can defend to a CFO or an auditor into a method you can reuse, explain, and defend when the workbook leaves your screen.
A worked example
E2:F6 holds 0/F, 60/D, 70/C, 80/B and 90/A. A score of 87 in B2 with =VLOOKUP(B2,$E$2:$F$6,2,TRUE) returns B. The modern equivalent is =XLOOKUP(B2,$E$2:$E$6,$F$2:$F$6,,-1), where match mode -1 means exact match or the next smaller item. The cut-offs are the policy, and a lookup table puts them where they can be reviewed instead of burying them inside a formula nobody re-reads. One habit worth forming early: name the cells that hold your inputs, so the formula reads in plain language instead of a string of cell addresses. A reviewer — or you in three months — can then follow the logic without decoding what B7 and D2 were supposed to mean, which is most of what makes a sheet maintainable.
In Google Sheets
Some functions on this page are newer additions to Excel: they are in current Microsoft 365 and Excel for the web, while older perpetual Excel versions return #NAME?. Google Sheets maintains its own function list, so confirm each function exists there before relying on the same formula. Nothing on this page is behind a login or a download: the exact answer is at the top, and the detail below it is there for when you need it. That is the whole promise here — the answer first, and just enough context to make it stick. Here is the takeaway for “calculating grades in excel”: copy the answer if you are busy, but if you have a spare few minutes, rebuild the example in Excel yourself with the tool above open beside it. That single pass — type it, run it, watch the result move when you change an input — is what turns a formula you found into a technique you trust. Keep your inputs labelled and referenced, never hard-coded, and the same sheet stays correct and auditable as it grows. Done that way, you will not need to look this up again, and you will be the person others ask.
Common mistakes
- Leaving the cut-off table unsorted while using TRUE, which returns wrong grades with no error at all.
- Omitting the zero row, so any score below the lowest bound returns
#N/A. - Using FALSE for an exact match, which only ever matches a score that equals a cut-off exactly.
- Nesting IFs in the wrong order — testing >=60 before >=90 gives every high score a D.
Frequently asked questions
How do I write it with IF instead?
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",B2>=60,"D",TRUE,"F"). The tests must run from the highest boundary down.
How do I add plus and minus grades?
Add rows to the lookup table at 87, 83, 77 and so on. The formula is untouched.
What if the scores are percentages stored as text?
The lookup silently misbehaves. Convert them first with Data ▸ Text to Columns ▸ Finish, or wrap the lookup value in VALUE.
How do I grade on a weighted total first?
Compute the weighted score with =SUMPRODUCT(scores,weights)/SUM(weights), then feed that cell to the lookup.