The Excel IFS function replaces towers of nested IF statements with a flat list: test, value, test, value. Excel walks the list top to bottom and returns the value for the first test that comes up TRUE. Grading scales, commission tiers, shipping bands — anything you’d once write as IF(IF(IF… reads twice as clearly with IF’s plural sibling.
TRUE, "F", is the catch-all “else”: without it, an unmatched score returns #N/A.
Syntax
| Argument | Description | |
|---|---|---|
logical_test1 | Required | The first condition to evaluate, e.g. B2>=90. |
value_if_true1 | Required | What to return when that test is TRUE. |
logical_test2, value_if_true2, … | Optional | Up to 127 test/value pairs in total. Excel checks them in order and stops at the first TRUE. |
Available in: Excel 2019 and later, Excel for Microsoft 365, and Excel for the web. Excel 2016 and earlier show #NAME? — there, fall back to nested IF.
There is no built-in “else” branch. The idiom every IFS user should memorize: end the list with TRUE, fallback. TRUE always matches, so it catches everything the earlier tests missed.
Tiered grading in one formula
Scores in B2:B5, grades in C2 copied down. Order matters — the 93 matches B2>=90 first and never reaches the later tests:
| A | B | C | |
|---|---|---|---|
| 1 | Name | Score | Grade |
| 2 | Avery | 93 | A |
| 3 | Blake | 81 | B |
| 4 | Casey | 74 | C |
| 5 | Drew | 58 | F |
Compare the nested-IF version of the same logic and the appeal is obvious:
Values can be calculations too — a tiered commission, for instance:
Try it: interactive IFS demo
Drag the score and watch IFS walk its tests top to bottom — the first TRUE row lights up and supplies the grade.
The TRUE catch-all — and when IFS is the wrong tool
What happens when no test is TRUE? IFS returns #N/A. The fix is the catch-all pair — and because tests run in order, it must come last:
If you’d rather detect the unmatched case than swallow it, leave the catch-all off and wrap with IFNA:
Picking the right tool: IFS shines when each branch tests something different (>=, <, different cells). If every branch just compares one expression against an exact value — A2=1, A2=2, A2=3 — SWITCH says it with less repetition. And if the tier table lives on a sheet, an approximate-match XLOOKUP beats hard-coding tiers into a formula.
Errors & common pitfalls
#N/A — no test matched. Every condition came up FALSE and there’s no catch-all. End the argument list with TRUE, "fallback", or wrap the IFS in IFNA.
#NAME? — older Excel. IFS needs Excel 2019 or later (or Microsoft 365). In Excel 2016 and earlier, rewrite as nested IF.
#VALUE! — a test isn’t logical. Every odd-numbered argument must evaluate to TRUE or FALSE. A stray text value or an unpaired argument list (test without a value) raises this error.
Pitfall: tiers in the wrong order. The first TRUE wins, so =IFS(B2>=70,"C", B2>=90,"A", …) grades a 95 as “C” — the >=70 test fires first. Always order range tests from most restrictive to least.
Pitfall: putting the catch-all first. TRUE matches everything, so a leading TRUE, "F" grades the whole class F. Catch-all goes last, always.
Practice workbook
Frequently asked questions
How do I add an "else" to IFS?
TRUE: =IFS(B2>=90,"A", B2>=80,"B", TRUE,"F"). TRUE always matches, so it behaves exactly like an else branch — as long as it comes last.Why does IFS return #N/A?
Which Excel versions have IFS?
What's the difference between IFS and SWITCH?
>=, <>, different cells). SWITCH compares one expression against a list of exact values — less typing when every branch is an equality check, but it can’t do greater-than or less-than.Does IFS evaluate all the tests or stop at the first TRUE?
Master functions like this in one day
This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class