Logical

IFS Function in Excel

Checks multiple conditions and returns a value corresponding to the first TRUE condition.

Syntax

  • =IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)

Arguments

  • logical_test1 (required): First condition to evaluate
  • value_if_true1 (required): Value to return if first condition is TRUE
  • logical_test2 (optional): Second condition to evaluate
  • value_if_true2 (optional): Value to return if second condition is TRUE

Examples

  • =IFS(A1>=90, "A", A1>=80, "B", A1>=70, "C", TRUE, "F") - Grade assignment - Result: Letter grade
  • =IFS(B1="Gold", 0.2, B1="Silver", 0.1, TRUE, 0) - Discount by membership - Result: Discount rate

Excel IFS function documentation

  • IFS is a Logical function in Excel 2016+ that checks multiple conditions and returns the value for the first TRUE condition.
  • Syntax: =IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], …).
  • Cleaner replacement for deeply nested [IF](/functions/if/) formulas with three or more outcomes.
  • Related: [SWITCH](/functions/switch/) for exact-value matching, [IF](/functions/if/) for single tests.

IFS syntax and catch-all pattern

  • Each pair is condition then result — IFS evaluates top to bottom and stops at the first TRUE.
  • No final "else" argument exists; add TRUE as the last condition for a default: …, TRUE, "Other").
  • All conditions must be logical tests returning TRUE/FALSE — not values to match like SWITCH.
  • Example: =IFS(A2>=90,"A", A2>=80,"B", A2>=70,"C", TRUE,"F").

Step-by-step: migrate nested IF to IFS

  • Step 1 — List each branch: condition → result on paper or in a comment column.
  • Step 2 — Order from most specific or highest threshold to lowest.
  • Step 3 — Rewrite =IF(A2>=90,"A",IF(A2>=80,"B","C")) as IFS pairs.
  • Step 4 — Add TRUE catch-all if every row must get a label.
  • Step 5 — Compare old vs new columns with =EXACT(old,new) to verify parity.

IFS vs IF vs SWITCH

  • IF — one test, two outcomes; fine for simple pass/fail.
  • IFS — multiple ordered conditions; best for tiers, grades, and status bands.
  • SWITCH — one expression matched against exact values — cleaner for region codes (East, West).
  • Compare: [IF vs IFS](/compare/if-vs-ifs/) · [IF function guide](/functions/if/).

Worked examples to copy

  • Grade bands: =IFS(score>=90,"A", score>=80,"B", score>=70,"C", TRUE,"F").
  • Shipping tier: =IFS(weight<=1,"Standard", weight<=5,"Express", TRUE,"Freight").
  • Status flag: =IFS(days_late>30,"Critical", days_late>7,"Warning", TRUE,"OK").
  • With cell refs: =IFS(A2>=$F$1,"Pass", TRUE,"Fail") when threshold lives in F1.

People also ask

  • IFS #N/A error? — No condition matched and no TRUE catch-all was provided.
  • IFS vs nested IF limit? — IFS supports up to 127 condition pairs; easier to read than deep IF.
  • Can IFS return numbers and text? — Yes. Each value_if_true can be any type.
  • IFS with AND inside? — Yes: =IFS(AND(A2>0,B2="Open"),"Yes", TRUE,"No").

Common errors

  • #N/A when no condition is TRUE (use TRUE as last condition)
  • #VALUE! with invalid logical test

Use cases

  • Multiple condition testing
  • Grade calculations
  • Tiered pricing
  • Status assignments

Frequently asked questions

  • What is IFS and how is it different from IF? IFS tests multiple conditions without nesting. Instead of =IF(A1>90,"A",IF(A1>80,"B",IF(A1>70,"C","F"))), use =IFS(A1>90,"A",A1>80,"B",A1>70,"C",TRUE,"F"). IFS is cleaner and easier to read for multiple conditions.
  • How do I add a default value in IFS? Use TRUE as the last condition: =IFS(condition1, value1, condition2, value2, TRUE, default_value). TRUE always evaluates as true, so it acts as an 'else' clause. Without this, IFS returns #N/A if no condition matches.
  • Is IFS available in all Excel versions? IFS is available in Excel 2019, Excel 365, and Excel for Mac 2019+. For older versions, use nested IF statements or consider upgrading. Google Sheets also supports IFS.
  • What is the maximum number of conditions in IFS? IFS supports up to 127 condition/value pairs (254 arguments total). However, if you need that many conditions, consider using VLOOKUP, INDEX/MATCH, or a lookup table instead for better maintainability.
  • Why is IFS returning #N/A? IFS returns #N/A when none of the conditions evaluate to TRUE. Always include TRUE as your last condition to provide a default value: =IFS(..., TRUE, "Default"). This ensures you always get a result.

Editorial review

  • Reviewed by Excel.Directory Editorial Team. Updated May 2026.

When to use IFS

  • Multiple condition testing — common Logical scenario for IFS.
  • Grade calculations — common Logical scenario for IFS.
  • Tiered pricing — common Logical scenario for IFS.
  • Status assignments — common Logical scenario for IFS.

IFS in the Logical category

  • Browse all Logical functions at /categories/logical/ for related formulas.
  • IFS syntax: =IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
  • logical_test1 (required): First condition to evaluate
  • value_if_true1 (required): Value to return if first condition is TRUE
  • logical_test2 (optional): Second condition to evaluate
  • value_if_true2 (optional): Value to return if second condition is TRUE
  • Confirm IFS arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.

Formula checklist before you copy down

  • Confirm IFS arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.
  • If results look wrong, check for text stored as numbers and invisible spaces with TRIM.
  • Spot-check three known input rows manually against expected output.

Related Excel functions

  • IF (/functions/if/): Returns one value if a condition is TRUE and another value if it's FALSE.
  • SWITCH (/functions/switch/): Evaluates an expression against a list of values and returns the result corresponding to the first matching value.
  • CHOOSE (/functions/choose/): Returns a value from a list of values based on an index number.
  • AND (/functions/and/): Returns TRUE if all arguments are TRUE; returns FALSE if any argument is FALSE.
  • OR (/functions/or/): Returns TRUE if any argument is TRUE; returns FALSE only if all arguments are FALSE.

Comparisons involving this function

  • IF vs IFS (/compare/if-vs-ifs/): Use IF for one condition with two outcomes. Use IFS when you need three or more ordered conditions without building a hard-to-read nested IF chain.

Errors to watch for

  • #N/A when no condition is TRUE (use TRUE as last condition) — review causes on linked error pages in the directory.
  • #VALUE! with invalid logical test — review causes on linked error pages in the directory.

Copy-paste audit workflow

  • Enter IFS on three test rows with known expected output documented on a QA tab.
  • Fill down only after absolute references are locked on lookup tables and rate tables.
  • Compare against manual calculation or a calculator for financial and statistical functions.
  • Search this directory for comparison guides when choosing between similar functions in the same category.

IFS worked examples to copy

  • =IFS(A1>=90, "A", A1>=80, "B", A1>=70, "C", TRUE, "F") — Grade assignment. Expected result: Letter grade.
  • =IFS(B1="Gold", 0.2, B1="Silver", 0.1, TRUE, 0) — Discount by membership. Expected result: Discount rate.

IFS reference summary for crawlers and offline review

  • IFS belongs to the Logical category in Excel. Checks multiple conditions and returns a value corresponding to the first TRUE condition.
  • Full syntax: =IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...). Open /functions/ifs/ for parameters, FAQs, and related pages.
  • Common mistakes: #N/A when no condition is TRUE (use TRUE as last condition); #VALUE! with invalid logical test
  • Pair this function with comparison guides when another Excel formula might fit the same task better.
  • Review fix-excel-formula-errors when unexpected errors appear after upgrading Excel or sharing across locales.