What Is the IFS Function?
The IFS function lets you test multiple conditions in sequence and return the value that corresponds to the first condition that evaluates to TRUE. Think of it as a cleaner alternative to deeply nested IF statements. Instead of writing =IF(A1>90, "A", IF(A1>80, "B", IF(A1>70, "C", "F"))), you can lay out each condition-result pair on its own, making your formulas far easier to read and maintain.
Syntax
=IFS(condition1, value1, [condition2, value2, ...])
| Parameter | Description |
|---|---|
| condition1 | The first logical test to evaluate. |
| value1 | The value returned if condition1 is TRUE. |
| condition2, value2, ... | Additional condition-value pairs (optional). You can add up to 127 pairs. |
IFS evaluates each condition from left to right and stops at the first TRUE result. If no condition is met, the formula returns an error.
Basic Examples
Assigning Letter Grades
Suppose column B contains student scores:
| A | B | C (Formula) | C (Result) | |
|---|---|---|---|---|
| 1 | Name | Score | Grade | Grade |
| 2 | Ava | 92 | =IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",B2>=60,"D",TRUE,"F") | A |
| 3 | Ben | 74 | =IFS(B3>=90,"A",B3>=80,"B",B3>=70,"C",B3>=60,"D",TRUE,"F") | C |
| 4 | Clara | 55 | =IFS(B4>=90,"A",B4>=80,"B",B4>=70,"C",B4>=60,"D",TRUE,"F") | F |
Using TRUE as the final condition acts as a catch-all default, similar to an "else" clause.
Categorizing Order Sizes
| A | B (Formula) | B (Result) | |
|---|---|---|---|
| 1 | Units | Category | Category |
| 2 | 5 | =IFS(A2>=100,"Bulk",A2>=25,"Medium",TRUE,"Small") | Small |
| 3 | 48 | =IFS(A3>=100,"Bulk",A3>=25,"Medium",TRUE,"Small") | Medium |
| 4 | 200 | =IFS(A4>=100,"Bulk",A4>=25,"Medium",TRUE,"Small") | Bulk |
Status Flags Based on Dates
=IFS(A2="", "Not Started", A2<TODAY(), "Overdue", A2=TODAY(), "Due Today", TRUE, "Upcoming")
This checks whether a deadline cell is empty, past, today, or in the future.
Advanced Examples
Combining IFS with Other Functions
You can nest functions inside IFS to build more dynamic logic. For example, assigning commission tiers based on total sales across multiple columns:
=IFS(
SUM(B2:D2) >= 50000, SUM(B2:D2) * 0.10,
SUM(B2:D2) >= 20000, SUM(B2:D2) * 0.07,
SUM(B2:D2) >= 5000, SUM(B2:D2) * 0.05,
TRUE, 0
)
This calculates total sales first, then applies the matching commission rate.
Multi-Criteria Evaluation with AND
=IFS(
AND(B2="Full-Time", C2>=5), "Senior",
AND(B2="Full-Time", C2>=2), "Mid-Level",
B2="Full-Time", "Junior",
TRUE, "Contractor"
)
Here each condition combines employment type and years of experience to assign a role level.
Common Mistakes
- Forgetting the default condition. If none of your conditions evaluate to TRUE, IFS returns
#N/A. Always addTRUE, "your default"as the last pair to act as a fallback. - Putting conditions in the wrong order. IFS stops at the first TRUE match. If you check
B2>=70beforeB2>=90, a score of 95 would match the first condition and return the wrong grade. Always order conditions from most restrictive to least restrictive. - Mixing up arguments. Each condition must be immediately followed by its return value. Accidentally inserting an extra comma or skipping a value will shift all your pairs and produce unexpected results.
SheetAI Tip
Don't want to memorize this syntax? With SheetAI, just type what you need in plain English and the formula is generated for you. Install SheetAI to try it free.