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().