Logical Excel Functions

Make decisions and test conditions

Decision formulas

  • Single test → [IF](/functions/if/)
  • Many branches → [IFS](/functions/ifs/) or [SWITCH](/functions/switch/)
  • Combine tests → [AND](/functions/and/) and [OR](/functions/or/) inside IF
  • Compare → [IF vs IFS](/compare/if-vs-ifs/)

Functions in this category

  • IF: Returns one value if a condition is TRUE and another value if it's FALSE.
  • IFS: Checks multiple conditions and returns a value corresponding to the first TRUE condition.
  • SWITCH: Evaluates an expression against a list of values and returns the result corresponding to the first matching value.
  • AND: Returns TRUE if all arguments are TRUE; returns FALSE if any argument is FALSE.
  • OR: Returns TRUE if any argument is TRUE; returns FALSE only if all arguments are FALSE.
  • NOT: Reverses the logic of its argument. Returns FALSE if argument is TRUE, and TRUE if argument is FALSE.
  • IFERROR: Returns a specified value if a formula evaluates to an error; otherwise, returns the result of the formula.
  • TRUE: Returns the logical value TRUE.
  • FALSE: Returns the logical value FALSE.
  • XOR: Returns TRUE if an odd number of arguments are TRUE (exclusive OR).
  • IFNA: Returns a value you specify if a formula returns #N/A; otherwise returns the formula result.
  • LET: Assigns names to calculation results, allowing you to store intermediate calculations and reuse them.
  • LAMBDA: Creates custom, reusable functions that can be called by a friendly name.
  • MAP: Returns an array formed by mapping each value in the array(s) to a new value using a LAMBDA.
  • REDUCE: Reduces an array to an accumulated value by applying a LAMBDA to each value.
  • SCAN: Scans an array by applying a LAMBDA to each value and returns an array of intermediate values.
  • BYROW: Applies a LAMBDA to each row and returns an array of results.
  • BYCOL: Applies a LAMBDA to each column and returns an array of results.
  • MAKEARRAY: Returns a calculated array of specified row and column size by applying a LAMBDA.

Mastering Logical functions end-to-end

  • Make decisions and test conditions — use this category page as a map before diving into individual function syntax pages.
  • Functions indexed here: IF, IFS, SWITCH, AND, OR, NOT, IFERROR, TRUE, FALSE, XOR, IFNA, LET and more.
  • Pick one function per week for your team, copy the examples into a practice workbook, and spot-check against manual math.
  • When functions in this category feed lookups or aggregates, read the related comparison and problem guides linked from function pages.
  • Small categories still matter in specialized models — document which niche functions your template depends on for auditors.
  • Confirm Excel version requirements: dynamic array and cube functions may not open in Excel 2019 even if other category members do.

Category troubleshooting patterns

  • #NAME? often means a niche function name typo or a locale mismatch — compare spelling to this English directory.
  • #VALUE! in specialized functions usually means wrong argument type — review each parameter description on the function page.
  • When results differ from documentation, verify regional settings, unit assumptions, and whether the workbook opened in compatibility mode.
  • Cross-link to fix-excel-formula-errors when multiple function types in this category fail after a bulk find-replace.

Function deep dives in this category

  • IF (/functions/if/): Returns one value if a condition is TRUE and another value if it's FALSE. Syntax: =IF(logical_test, value_if_true, [value_if_false]).
  • IFS (/functions/ifs/): 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], ...).
  • SWITCH (/functions/switch/): Evaluates an expression against a list of values and returns the result corresponding to the first matching value. Syntax: =SWITCH(expression, value1, result1, [value2, result2], ..., [default]).
  • AND (/functions/and/): Returns TRUE if all arguments are TRUE; returns FALSE if any argument is FALSE. Syntax: =AND(logical1, [logical2], ...).
  • OR (/functions/or/): Returns TRUE if any argument is TRUE; returns FALSE only if all arguments are FALSE. Syntax: =OR(logical1, [logical2], ...).
  • NOT (/functions/not/): Reverses the logic of its argument. Returns FALSE if argument is TRUE, and TRUE if argument is FALSE. Syntax: =NOT(logical).
  • IFERROR (/functions/iferror/): Returns a specified value if a formula evaluates to an error; otherwise, returns the result of the formula. Syntax: =IFERROR(value, value_if_error).
  • TRUE (/functions/true/): Returns the logical value TRUE. Syntax: =TRUE().