How IFS works
IFS reads its arguments in pairs: a condition followed by a value. It checks the first condition, and if true, returns the first value. If false, it moves to the second pair, then the third, and so on. The first match wins, the rest are ignored.
Order matters. Test the most specific or highest-value conditions first. If you list a broad condition like B2 >= 0 before a narrow one like B2 >= 90, the broad one matches first and the narrow one never gets evaluated.
There's no else branch. If no condition is true, IFS returns #N/A. To set a default, end with a literal TRUE as the last condition - it always matches and runs the default value.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
| test1 | expression | ✓ Required | The first condition Excel checks. Anything that evaluates to TRUE or FALSE: a comparison like B2>=90, an equality test, or a function call. |
| value1 | any | ✓ Required | What Excel returns when test1 is TRUE. Can be text, number, cell reference, or formula. |
| test2, value2, ... | pairs | ✗ Optional | Additional condition/value pairs. Up to 127 pairs. Excel returns the value for the FIRST true condition and stops there. |
IFS for letter grades: cleaner than nested IFs
Convert quiz scores to A/B/C/D/F. The classic case for nested IFs becomes a clean ordered list with IFS. Test the highest band first so it wins before lower bands match.
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",B2>=60,"D",TRUE,"F")- •
B2>=90, "A"-> first pair: 90 or higher gets A - •
B2>=80, "B"-> second: 80-89 gets B (90+ already matched above) - •
B2>=70, "C"-> third: 70-79 gets C - •
B2>=60, "D"-> fourth: 60-69 gets D - •
TRUE, "F"-> the catch-all: TRUE always matches, so anything below 60 gets F - •
Order critical-> if you flipped the >=60 pair to first, every passing score would return D
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Grade | |
| 2 | Sarah Chen | 94 | A | ↓ drag down |
| 3 | James Miller | 85 | B | |
| 4 | Maria Santos | 78 | C | |
| 5 | David Brown | 62 | D | |
| 6 | Emma Davis | 47 | F | |
| 7 | Alex Kim | 91 | A | |
| 8 | Carlos Gomez | 73 | C | |
| 9 | Jenny Liu | 82 | B | |
| 10 | Mark Reilly | 55 | F | |
| 11 | Rachel Wood | 67 | D |
Performance review tiers
Year-end review distills a numeric rating (1-5) into a band: Exceeds, Meets, Improving, Below. IFS lets you write the rules in plain order with no nesting.
=IFS(C2>=4.5,"Exceeds",C2>=3.5,"Meets",C2>=2.5,"Improving",TRUE,"Below")- •
C2>=4.5-> first pair: exceptional rating - •
C2>=3.5-> second: solid contributor - •
C2>=2.5-> third: needs improvement - •
TRUE, "Below"-> catch-all for the rest - •
Defaults-> always end with TRUE so unmatched cases don't return #N/A
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Employee | Years | Rating | Band | |
| 2 | Sarah Chen | 5 | 4.8 | Exceeds | ↓ drag down |
| 3 | James Miller | 3 | 4.2 | Meets | |
| 4 | Maria Santos | 8 | 3.6 | Meets | |
| 5 | David Brown | 2 | 2.8 | Improving | |
| 6 | Emma Davis | 4 | 4.6 | Exceeds | |
| 7 | Alex Kim | 1 | 1.9 | Below | |
| 8 | Carlos Gomez | 6 | 3.8 | Meets | |
| 9 | Jenny Liu | 2 | 2.4 | Below | |
| 10 | Mark Reilly | 7 | 3.3 | Improving | |
| 11 | Rachel Wood | 4 | 4.5 | Exceeds |
IFS in a calculation: commission tiers
Branches don't have to be text. Each value can be a number, a formula, or a cell reference. Sales commission is the canonical case: 5% under $10k, 8% to $50k, 12% over $50k.
=IFS(B2>=50000,B2*0.12,B2>=10000,B2*0.08,TRUE,B2*0.05)- •
B2>=50000, B2*0.12-> first pair: top tier earns 12% - •
B2>=10000, B2*0.08-> middle tier earns 8% - •
TRUE, B2*0.05-> everyone else earns 5% - •
Test high first-> if you tested 10000 first, no one would ever hit the 50000 tier
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sales rep | Monthly revenue | Commission | |
| 2 | Sarah Chen | $14,200 | $1,136 | ↓ drag down |
| 3 | James Miller | $7,800 | $390 | |
| 4 | Maria Santos | $62,500 | $7,500 | |
| 5 | David Brown | $5,400 | $270 | |
| 6 | Emma Davis | $25,800 | $2,064 | |
| 7 | Alex Kim | $9,950 | $498 | |
| 8 | Carlos Gomez | $58,300 | $6,996 | |
| 9 | Jenny Liu | $11,750 | $940 | |
| 10 | Mark Reilly | $48,000 | $3,840 | |
| 11 | Rachel Wood | $72,400 | $8,688 |
Map status codes to readable labels
Imported data often arrives with single-letter or numeric status codes. IFS lets you turn them into human-readable strings without nesting.
=IFS(B2="A","Active",B2="P","Pending",B2="C","Cancelled",B2="X","Expired",TRUE,"Unknown")- •
B2="A", "Active"-> exact-match pairs - •
TRUE, "Unknown"-> catch-all keeps an undocumented code from breaking the column with #N/A - •
For fixed lookups-> consider SWITCH instead - it's slightly cleaner when every test is exact equality
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Ticket | Code | Status | |
| 2 | TKT-1001 | A | Active | ↓ drag down |
| 3 | TKT-1002 | P | Pending | |
| 4 | TKT-1003 | C | Cancelled | |
| 5 | TKT-1004 | A | Active | |
| 6 | TKT-1005 | X | Expired | |
| 7 | TKT-1006 | P | Pending | |
| 8 | TKT-1007 | A | Active | |
| 9 | TKT-1008 | Z | Unknown | |
| 10 | TKT-1009 | C | Cancelled | |
| 11 | TKT-1010 | A | Active |
IFS plus AND: bonus tier eligibility
Each IFS test is a boolean expression - so wrap multiple conditions in AND() or OR() and feed them in. Bonus tiers might require both years of service AND rating.
=IFS(AND(B2>=5,C2>=4.5),"Senior bonus",AND(B2>=3,C2>=4),"Standard bonus",TRUE,"Not yet")- •
AND(B2>=5,C2>=4.5)-> first tier: 5+ years AND rating 4.5+ - •
AND(B2>=3,C2>=4)-> second: 3+ years AND rating 4+ - •
TRUE, "Not yet"-> everyone else - •
Same with OR()-> wrap any combination of conditions in OR() if either should trigger the tier
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Employee | Years | Rating | Bonus tier | |
| 2 | Sarah Chen | 5 | 4.6 | Senior bonus | ↓ drag down |
| 3 | James Miller | 8 | 4.7 | Senior bonus | |
| 4 | Maria Santos | 4 | 4.2 | Standard bonus | |
| 5 | David Brown | 6 | 3.8 | Not yet | |
| 6 | Emma Davis | 3 | 4.0 | Standard bonus | |
| 7 | Alex Kim | 1 | 4.8 | Not yet | |
| 8 | Carlos Gomez | 7 | 4.4 | Standard bonus | |
| 9 | Jenny Liu | 2 | 4.5 | Not yet | |
| 10 | Mark Reilly | 10 | 4.9 | Senior bonus | |
| 11 | Rachel Wood | 4 | 3.9 | Not yet |
Where people go wrong
- Wrong order of conditions
Listing a broad condition (B2>=0) before a narrow one (B2>=90) means the broad one always matches first. Every score returns the broad value, the narrow value is never reached.
Fix: Test from most-specific to most-general. Highest threshold first. Catch-all (TRUE, defaultValue) last. - Forgetting the catch-all
If no condition matches, IFS returns #N/A. A single edge case slips through and the column displays errors.
Fix: End every IFS with TRUE as the last test and a default value. =IFS(..., TRUE, "Default") catches anything you didn't explicitly handle. - Using IFS on Excel 2016 or older
IFS was added in Excel 2019. On older versions the formula returns #NAME?. Sharing a workbook with someone on an older version may break.
Fix: If you need to support Excel 2016 or earlier, fall back to nested IF. For Excel 365 / 2019+ users, IFS is fine. - IFS where SWITCH would be cleaner
When every condition is "this cell equals exactly that value", IFS feels repetitive: =IFS(B2="A","Active",B2="B","Beta",B2="C","Cancelled"). SWITCH does the same thing in less syntax.
Fix: =SWITCH(B2,"A","Active","B","Beta","C","Cancelled","Unknown") is shorter for pure equality maps. Use IFS when the conditions are comparisons or ranges.
Notes
- IFS stops at the first TRUE condition. Subsequent pairs are not evaluated.
- Always end with TRUE as the last test plus a default value to avoid #N/A errors.
- IFS supports up to 127 condition/value pairs.
- Each condition can be a comparison (B2>=10), an equality (B2="yes"), or a function call (AND(...), OR(...), ISNUMBER(B2)).
- Values can be text, numbers, cell references, or formulas - not just static strings.
- Available in Excel 2019, Excel 2021, and Excel 365. Not in older versions.
- For pure equality maps (B2 equals X, B2 equals Y), SWITCH is usually shorter than IFS.
Now prove it
Reading about IFS is one thing.
Writing one for HR's eligibility logic when the rules just changed and the deadline is end-of-day is completely different.
These exercises put IFS in real workplace scenarios where the alternative is a five-deep nested IF.
Here's the thing about IFS.
You can read this page twice and still hesitate when the team lead drops a new tier system on you mid-week and asks for a working column by morning.
That gap, between knowing what IFS does and being able to write one cleanly under pressure, is exactly what CellSkill is built to close.
Not with more reading.
With practice on scenarios that look like your actual job.
Start practicing IFS for free →