IFS Function in Excel 2007, 2010, 2013 & 2016

The IFS function was officially introduced with Excel 2019, but thanks to Modern Functions Update (MFU) you can now run it on your Excel 2007, 2010, 2013 and 2016 versions. It works exactly as its original Microsoft counterpart.


Description

The IFS function checks whether one or more conditions are met, and returns a value that corresponds to the first TRUE condition. It is designed to replace complex, nested IF statements, making your formulas much easier to read, build, and maintain.

Before IFS existed, to test multiple conditions you had to write formulas like this:

=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","D")))

With IFS, the same logic is written in a simple, linear format:

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"D")

This is particularly useful for:

  • Grading systems: Assigning letter grades based on score ranges
  • Categorization: Grouping data into multiple categories based on conditions
  • Data cleansing: Mapping values to standardized outputs
  • Complex business logic: Handling multiple decision branches without the complexity of nested IF statements

Syntax

=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
ArgumentDescription
logical_test1Required. A condition that evaluates to TRUE or FALSE.
value_if_true1Required. The result to return if logical_test1 is TRUE.
logical_test2...Optional. Additional conditions to evaluate.
value_if_true2...Optional. Results for each corresponding condition.

You can include up to 127 condition/result pairs.


Examples

Example 1: Letter Grades

To assign grades based on scores (A: >=90, B: >=80, C: >=70, D: >=60, F: <60):

=IFS(A2>=90,"A", A2>=80,"B", A2>=70,"C", A2>=60,"D", TRUE,"F")

The formula checks each condition in order and returns the grade for the first one that is TRUE.

ifs-function-excel-2007-2010-2013-2016
IFS function in Excel 2007 thanks to MFU

Example 2: State Lookup

If you have cities in column A and want to return the corresponding state:

=IFS([@City]="Sydney","NSW", [@City]="Melbourne","VIC", [@City]="Brisbane","QLD", TRUE,"Not Found")

If none of the listed cities match, the final TRUE condition returns "Not Found".

Example 3: School Year to Age Group

To classify students by school year:

=IFS(A1<=2, "Under 11", A1<=4, "Under 13", A1<=6, "Under 15", TRUE, "15+")

This formula checks the school year number in A1 and returns the appropriate age group.

Example 4: Multiple City Mapping

For mapping multiple communities to their city:

=IFS(OR(C27={"Boykin Hills","Collins Cove","Night Harbor"}),"Chapin", OR(C27={"Bradford Meadows","Canopy of Oaks","Jackson Preserve"}),"Sumter", TRUE,"")

This uses OR with arrays to check if the community belongs to a city.


IFS vs Nested IF

FeatureIFSNested IF
Readability✅ Linear, easy to read❌ Complex, hard to follow
SyntaxIFS(test1,value1,test2,value2)IF(test1,value1,IF(test2,value2,...))
ParenthesesFewer, less error-proneMany, easy to lose track
Default/ElseUse TRUE as final testBuilt-in value_if_false
Error if no matchReturns #N/A (if no TRUE test)Returns FALSE

The “Catch-All” Default Value

One important difference from the traditional IF function is that IFS does not have a built-in value_if_false argument.

To specify a default result when none of your conditions are met, add a final TRUE as your last logical test:

=IFS(condition1, result1, condition2, result2, TRUE, default_result)

If you don’t include a TRUE catch-all and none of the conditions evaluate to TRUE, the function will return an #N/A error.


Important Notes

  • ✅ Fully tested – The implementation in Modern Functions Update works identically to Microsoft’s original function introduced in Excel 2019 and Microsoft 365.
  • ✅ The function is fully compatible with Excel 2007, 2010, and all later versions.
  • ⚠️ Order matters – Conditions are evaluated sequentially, and the function stops at the first TRUE condition. Test from highest to lowest (or lowest to highest) to avoid unexpected results.
  • ℹ️ Text values in the result arguments must be enclosed in double quotation marks.
  • ⚠️ If a logical test resolves to a value other than TRUE or FALSE, the function returns a #VALUE! error.
  • ℹ️ While you can use up to 127 conditions, performance may degrade with many tests, and alternative methods like VLOOKUP with a reference table might be more efficient.

See Also

  • XOR – Exclusive OR
  • IFNA – Handles #N/A errors gracefully

Leave a comment