How to use the SWITCH function
What is the SWITCH function?
The SWITCH function returns a given value determined by an expression and a list of values. If the expression matches one of the values in the list the corresponding result value is returned. If no value matches an optional default value is returned by the function.
Table of Contents
1. Introduction
When to use the SWITCH function?
The SWITCH function is particularly useful in several scenarios:
- Multiple condition mapping: When you need to map multiple input values to specific output values, especially when there are several conditions to check. It's often cleaner and more efficient than nested IF statements for such cases.
- Categorization tasks: When you need to categorize data based on specific criteria or values. For example, assigning departments based on employee codes, or product categories based on SKUs.
- Lookup operations: While VLOOKUP or INDEX-MATCH are often used for lookups, SWITCH can be more straightforward for simple, exact-match lookups with a limited number of conditions.
- Simplifying complex IF-THEN logic: If you find yourself writing nested IF statements with many conditions, SWITCH can often simplify the formula and make it more readable.
- Performance optimization: For multiple condition checking, SWITCH is generally faster and more efficient than nested IF statements, especially when dealing with large datasets.
- Default value handling: When you need a specific output for any input that doesn't match your defined conditions, SWITCH allows you to easily specify a default value.
- Text-based conditions: SWITCH works well with text-based conditions, making it useful for tasks like converting full month names to abbreviations, or mapping codes to full descriptions.
- Numerical range mapping: The SWITCH uses exact matching, I demonstrate a workaround in section 4 below. You can also use the MATCH and INDEX function. How to return a value if lookup value is in a range
SWITCH is most beneficial when you have a clear, finite set of input values to check against, each corresponding to a specific output. If you need more complex logic, partial matching, or have a very large number of conditions, other functions or combinations of functions might be more appropriate.
What is the greatest disadvantage using the SWITCH function?
You need to use hard-coded values in the formula, other techniques allow you to use a table that maps values to corresponding values based on a lookup value. This is not possible with the SWITCH function.
2. Syntax
SWITCH(expression, value1, result1, [default or value2, result2],…[default or value3, result3])
expression | Required. This argument determines which value to be returned. If it matches the value argument the corresponding value in the result argument is returned. |
value1 | Required. If this value matches the expression the corresponding result argument is returned. |
result1 | Required. The value to be returned. |
[value2] | Optional. Up to 125 additional arguments. |
[result2] | Optional. Up to 125 additional arguments. |
[default] | Optional. This is the value to be returned if no other value matches, this must be the last argument in the function. |
This feature is only available for Excel 2019 and later Excel versions.
3. Example
This example demonstrates how to use the SWITCH function. The first argument changes when you copy the formula to cells below, ther remaining arguments are "hardcoded" meaning they don't change.
Formula in cell D3:
The last argument lets you specify a value that is returned if no other value is matching.
This SWITCH function works as follows:
- It evaluates the value in column B (B3 through B8) for each row.
- It then compares this value to a series of specified options:
- If the value is "A", it returns "Q1"
- If the value is "B", it returns "Q2"
- If the value is "C", it returns "Q3"
- If the value is "D", it returns "Q4"
If none of these conditions are met, it returns the default value "No match".
Let's explain the results we see in the image above:
- Row 3: "A" matches, so it returns "Q1"
- Row 4: "F" doesn't match any condition, so it returns "No match"
- Row 5: "C" matches, so it returns "Q3"
- Row 6: "D" matches, so it returns "Q4"
- Row 7: "J" doesn't match any condition, so it returns "No match"
- Row 8: "B" matches, so it returns "Q2"
This SWITCH function is essentially mapping letters to quarters, with "A" representing Q1, "B" representing Q2, and so on. Any letter not in the A-D range results in "No match".
4. Example 2 - how to use logical operators like larger than and smaller than
The SWITCH function is made for exact matches, however, there is a workaround to use larger than and smaller than characters.
The value1 argument lets you also create a test expression, if it matches the expression argument the result1 argument is returned. The following formula demonstrates this technique.
Keep in mind that the order of arguments is important in some cases.
Formula in cell C3:
This example covers every possible number, the last argument is not necessary.
Explaining formula
SWITCH(expression, value1, result1, [default or value2, result2],…[default or value3, result3])
Step 1 - Expression argument in cell C3
If any of the value arguments match the expression argument the corresponding result argument is returned.
TRUE is a boolean value that is often used in Excel formula, every logical test returns TRUE or FALSE or their numerical equivalents.
TRUE - 1
FALSE - 0 (zero)
Step 2 - First logical test (value1 argument)
The less than character lets you check if a number is smaller than another number, the result is a boolean value TRUE or FALSE.
B3<5
becomes
10<5
and returns FALSE. 10 is not smaller than 5.
Step 3 - Second logical test (value2 argument)
The equal sign lets you compare value to value, the result is either TRUE of FALSE, this is not a case sensitive comparison. Use the EXACT function for case-sensitive comparisons.
B3=5
becomes
10 = 5
and returns FALSE. 10 is not equal to 5.
Step 4 - Third logical test (value3 argument)
The larger than character is also a logical operator, the result is TRUE or FALSE like the other two described above.
B3>5
becomes
10>5
and returns TRUE. TRUE matches the first argument expression, the formula will now evaluate the corresponding result argument.
Step 5 - Third result3 argument
SWITCH(TRUE,B3<5,"Less than 5",B3=5,"Equal to 5",B3>5,"Larger than 5")
becomes
SWITCH(TRUE, FALSE, "Less than 5", FALSE, "Equal to 5", TRUE, "Larger than 5")
and returns "Larger than 5" in cell C3.
5. Function not working
The SWITCH function returns
- #N/A! error if no value match.
- #NAME? error if you misspell the function name.
- propagates errors, meaning that if the input contains an error (e.g., #VALUE!, #REF!), the function will return the same error.
5.1 Troubleshooting the error value
When you encounter an error value in a cell a warning symbol appears, displayed in the image above. Press with mouse on it to see a pop-up menu that lets you get more information about the error.
- The first line describes the error if you press with left mouse button on it.
- The second line opens a pane that explains the error in greater detail.
- The third line takes you to the "Evaluate Formula" tool, a dialog box appears allowing you to examine the formula in greater detail.
- This line lets you ignore the error value meaning the warning icon disappears, however, the error is still in the cell.
- The fifth line lets you edit the formula in the Formula bar.
- The sixth line opens the Excel settings so you can adjust the Error Checking Options.
Here are a few of the most common Excel errors you may encounter.
#NULL error - This error occurs most often if you by mistake use a space character in a formula where it shouldn't be. Excel interprets a space character as an intersection operator. If the ranges don't intersect an #NULL error is returned. The #NULL! error occurs when a formula attempts to calculate the intersection of two ranges that do not actually intersect. This can happen when the wrong range operator is used in the formula, or when the intersection operator (represented by a space character) is used between two ranges that do not overlap. To fix this error double check that the ranges referenced in the formula that use the intersection operator actually have cells in common.
#SPILL error - The #SPILL! error occurs only in version Excel 365 and is caused by a dynamic array being to large, meaning there are cells below and/or to the right that are not empty. This prevents the dynamic array formula expanding into new empty cells.
#DIV/0 error - This error happens if you try to divide a number by 0 (zero) or a value that equates to zero which is not possible mathematically.
#VALUE error - The #VALUE error occurs when a formula has a value that is of the wrong data type. Such as text where a number is expected or when dates are evaluated as text.
#REF error - The #REF error happens when a cell reference is invalid. This can happen if a cell is deleted that is referenced by a formula.
#NAME error - The #NAME error happens if you misspelled a function or a named range.
#NUM error - The #NUM error shows up when you try to use invalid numeric values in formulas, like square root of a negative number.
#N/A error - The #N/A error happens when a value is not available for a formula or found in a given cell range, for example in the VLOOKUP or MATCH functions.
#GETTING_DATA error - The #GETTING_DATA error shows while external sources are loading, this can indicate a delay in fetching the data or that the external source is unavailable right now.
5.2 The formula returns an unexpected value
To understand why a formula returns an unexpected value we need to examine the calculations steps in detail. Luckily, Excel has a tool that is really handy in these situations. Here is how to troubleshoot a formula:
- Select the cell containing the formula you want to examine in detail.
- Go to tab “Formulas” on the ribbon.
- Press with left mouse button on "Evaluate Formula" button. A dialog box appears.
The formula appears in a white field inside the dialog box. Underlined expressions are calculations being processed in the next step. The italicized expression is the most recent result. The buttons at the bottom of the dialog box allows you to evaluate the formula in smaller calculations which you control. - Press with left mouse button on the "Evaluate" button located at the bottom of the dialog box to process the underlined expression.
- Repeat pressing the "Evaluate" button until you have seen all calculations step by step. This allows you to examine the formula in greater detail and hopefully find the culprit.
- Press "Close" button to dismiss the dialog box.
There is also another way to debug formulas using the function key F9. F9 is especially useful if you have a feeling that a specific part of the formula is the issue, this makes it faster than the "Evaluate Formula" tool since you don't need to go through all calculations to find the issue..
- Enter Edit mode: Double-press with left mouse button on the cell or press F2 to enter Edit mode for the formula.
- Select part of the formula: Highlight the specific part of the formula you want to evaluate. You can select and evaluate any part of the formula that could work as a standalone formula.
- Press F9: This will calculate and display the result of just that selected portion.
- Evaluate step-by-step: You can select and evaluate different parts of the formula to see intermediate results.
- Check for errors: This allows you to pinpoint which part of a complex formula may be causing an error.
The image above shows cell reference B3 converted to hard-coded value using the F9 key. The SWITCH function requires non-error values which is not the case in this example. We have found what is wrong with the formula.
Tips!
- View actual values: Selecting a cell reference and pressing F9 will show the actual values in those cells.
- Exit safely: Press Esc to exit Edit mode without changing the formula. Don't press Enter, as that would replace the formula part with the calculated value.
- Full recalculation: Pressing F9 outside of Edit mode will recalculate all formulas in the workbook.
Remember to be careful not to accidentally overwrite parts of your formula when using F9. Always exit with Esc rather than Enter to preserve the original formula. However, if you make a mistake overwriting the formula it is not the end of the world. You can “undo” the action by pressing keyboard shortcut keys CTRL + z or pressing the “Undo” button
5.3 Other errors
Floating-point arithmetic may give inaccurate results in Excel - Article
Floating-point errors are usually very small, often beyond the 15th decimal place, and in most cases don't affect calculations significantly.
Get Excel *.xlsx file
How to use the SWITCH function
'SWITCH' function examples
Table of Contents Functions How to use the ARRAY function How to use the FIX function How to use the […]
Functions in 'Logical' category
The SWITCH function function is one of 16 functions in the 'Logical' category.
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
Contact Oscar
You can contact me through this contact form