IFS

IFS handles multi-branch logic without the nested-IF tangle. List condition/value pairs in order, Excel returns the value for the first true condition. The clean way to write grade scales, tax brackets, and tier rules.

LogicIntermediate
Purpose
Test multiple conditions in order and return the value for the first one that's true.
Returns
Whichever value matches the first true condition (text, number, anything)
Syntax
=IFS(test1, value1, [test2, value2], ...)
Excel version
Excel 2019 and Excel 365

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.

= IFS(test1, value1, [test2, value2], ...)

Arguments

ArgumentTypeRequiredDescription
test1expression✓ RequiredThe first condition Excel checks. Anything that evaluates to TRUE or FALSE: a comparison like B2>=90, an equality test, or a function call.
value1any✓ RequiredWhat Excel returns when test1 is TRUE. Can be text, number, cell reference, or formula.
test2, value2, ...pairs✗ OptionalAdditional 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
C2
fx
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",B2>=60,"D",TRUE,"F")
ABCD
1StudentScoreGrade
2Sarah Chen94A↓ drag down
3James Miller85B
4Maria Santos78C
5David Brown62D
6Emma Davis47F
7Alex Kim91A
8Carlos Gomez73C
9Jenny Liu82B
10Mark Reilly55F
11Rachel Wood67D
Formula entered in cell C2. Drag down to fill the rest of the column - B2 becomes B3, B4, etc. for each row.
Same logic as a nested IF, but the conditions read top to bottom in plain order instead of disappearing into closing parentheses. Easier to scan, easier to edit.
Compare to the nested-IF version: =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C",IF(B2>=60,"D","F")))). IFS drops four nested calls and four trailing parentheses.

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
D2
fx
=IFS(C2>=4.5,"Exceeds",C2>=3.5,"Meets",C2>=2.5,"Improving",TRUE,"Below")
ABCDE
1EmployeeYearsRatingBand
2Sarah Chen54.8Exceeds↓ drag down
3James Miller34.2Meets
4Maria Santos83.6Meets
5David Brown22.8Improving
6Emma Davis44.6Exceeds
7Alex Kim11.9Below
8Carlos Gomez63.8Meets
9Jenny Liu22.4Below
10Mark Reilly73.3Improving
11Rachel Wood44.5Exceeds
Formula entered in cell D2. Drag down to fill the rest of the column.
Three Exceeds (4.5+), three Meets (3.5-4.49), two Improving (2.5-3.49), two Below (under 2.5). Each band picked by the first matching condition top-down.

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
C2
fx
=IFS(B2>=50000,B2*0.12,B2>=10000,B2*0.08,TRUE,B2*0.05)
ABCD
1Sales repMonthly revenueCommission
2Sarah Chen$14,200$1,136↓ drag down
3James Miller$7,800$390
4Maria Santos$62,500$7,500
5David Brown$5,400$270
6Emma Davis$25,800$2,064
7Alex Kim$9,950$498
8Carlos Gomez$58,300$6,996
9Jenny Liu$11,750$940
10Mark Reilly$48,000$3,840
11Rachel Wood$72,400$8,688
Formula entered in cell C2. Drag down so each rep gets the tier their revenue qualifies for.
Three reps cleared the $50,000 bar (Maria, Carlos, Rachel) at 12%. Four sit in the middle band $10k-50k at 8%. Three fall under $10k at 5%. The cliff at each threshold is the trade-off of a tiered system - reps at $9,950 vs $10,000 earn very different commissions on nearly identical revenue.
When tiers stack like this, write them top-down by threshold value. Highest first. Lowest catch-all (TRUE) last.

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
C2
fx
=IFS(B2="A","Active",B2="P","Pending",B2="C","Cancelled",B2="X","Expired",TRUE,"Unknown")
ABCD
1TicketCodeStatus
2TKT-1001AActive↓ drag down
3TKT-1002PPending
4TKT-1003CCancelled
5TKT-1004AActive
6TKT-1005XExpired
7TKT-1006PPending
8TKT-1007AActive
9TKT-1008ZUnknown
10TKT-1009CCancelled
11TKT-1010AActive
Formula entered in cell C2. Drag down to translate every code in the column.
Four codes map to Active, two each to Pending and Cancelled, one to Expired. Row 8 has an undocumented code (Z) - the TRUE catch-all turns that into Unknown instead of #N/A.

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
D2
fx
=IFS(AND(B2>=5,C2>=4.5),"Senior bonus",AND(B2>=3,C2>=4),"Standard bonus",TRUE,"Not yet")
ABCDE
1EmployeeYearsRatingBonus tier
2Sarah Chen54.6Senior bonus↓ drag down
3James Miller84.7Senior bonus
4Maria Santos44.2Standard bonus
5David Brown63.8Not yet
6Emma Davis34.0Standard bonus
7Alex Kim14.8Not yet
8Carlos Gomez74.4Standard bonus
9Jenny Liu24.5Not yet
10Mark Reilly104.9Senior bonus
11Rachel Wood43.9Not yet
Formula entered in cell D2. Drag down so each row gets its bonus tier.
Three Senior bonuses: 5+ years AND rating 4.5+ (Sarah, James, Mark). Three Standard: 3+ years AND rating 4+ (Maria, Emma, Carlos). Four Not yet - they fail at least one criterion. Alex has a 4.8 rating but only 1 year; Carlos has 7 years but only 4.4 rating, so he drops to Standard.

Where people go wrong

  1. 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.
  2. 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.
  3. 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.
  4. 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 →
Free account . No credit card . Cancel anytime
Practice IFS
IFS in Excel: The Cleaner Alternative to Nested IFs · CellSkill