✨ Part 1. Introduce – CHOOSE function in Microsoft Excel: ✨
Definition: The CHOOSE function in Microsoft Excel is a powerful lookup function that allows you to return a value from a list of values based on a specified index number. It is beneficial when you have a list of possible values and want to select one based on a numeric index.
Purpose: The purpose of the CHOOSE function is to simplify the process of selecting a value from a list based on its position. It is commonly used to avoid nested IF statements and make the formula more readable.
Syntax & Arguments: The syntax of the CHOOSE function is as follows:
CHOOSE(index_num, value1, value2, value3, ...)
index_num
: The index number that specifies which value to return. It must be an integer between 1 and the total values provided.value1, value2, value3, ...
: The importance of choosing from. You can provide up to 254 deals.
Explain the Arguments in the function:
index_num
: This is the position of the value you want to return from the list. For example, ifindex_num
it is 2, the function will return the second value from the list.value1, value2, value3, ...
: These are the values from which you want to select based on theindex_num
. You can provide multiple values separated by commas.
Return value:
The CHOOSE function returns the value from the specified position in the list of values based on the given index_num
.
Remarks:
- The
index_num
must be an integer. Excel will round it down to the nearest integer if it is a decimal or non-numeric value. - If the
index_num
is less than 1 or greater than the number of values provided, the function will return a #VALUE! Error. - CHOOSE function can be helpful when creating custom messages or retrieving specific values from a list based on certain conditions.
✨ Part 2. Examples of CHOOSE Function: ✨
Example 1: Selecting a Color for Sales Performance
A | B | C | |
---|---|---|---|
1 | Sales | Performance | Color |
2 | $2000 | Good | =CHOOSE(IF(B2="Excellent", 3, IF(B2="Good", 2, IF(B2="Satisfactory", 1, 0))), "Red", "Yellow", "Green") |
3 | $3500 | Excellent | =CHOOSE(IF(B3="Excellent", 3, IF(B3="Good", 2, IF(B3="Satisfactory", 1, 0))), "Red", "Yellow", "Green") |
4 | $1200 | Satisfactory | =CHOOSE(IF(B4="Excellent", 3, IF(B4="Good", 2, IF(B4="Satisfactory", 1, 0))), "Red", "Yellow", "Green") |
Explanation:
- We have a table with sales performance and want to assign colors based on the performance.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the performance level.
- If the performance is “Excellent,” it returns 3 (corresponding to “Red”), “Good” returns 2 (related to “Yellow”), and “Satisfactory” returns 1 (connected to “Green”).
Example 2: Employee Bonus Calculation
A | B | C | D | |
---|---|---|---|---|
1 | Employee | Sales | Target Sales | Bonus Amount |
2 | John | $12000 | $10000 | =CHOOSE(IF(B2>=C2*1.2, 3, IF(B2>=C2, 2, IF(B2>=C2*0.9, 1, 0))), 300, 200, 100, 0) |
3 | Alice | $9000 | $8000 | =CHOOSE(IF(B3>=C3*1.2, 3, IF(B3>=C3, 2, IF(B3>=C3*0.9, 1, 0))), 300, 200, 100, 0) |
4 | Bob | $8000 | $9000 | =CHOOSE(IF(B4>=C4*1.2, 3, IF(B4>=C4, 2, IF(B4>=C4*0.9, 1, 0))), 300, 200, 100, 0) |
Explanation:
- We have a table with employee sales data and target sales.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the sales performance relative to the target.
- If the sales exceed 120% of the target, it returns 3 (corresponding to a bonus of $300); if sales are equal to the target, it returns 2 (corresponding to a prize of $200). And if sales are at least 90% of the target, it returns 1 (corresponding to a bonus of $100). Otherwise, it returns 0 (no compensation).
Example 3: Product Pricing Tier
A | B | C | |
---|---|---|---|
1 | Product | Price | Price Tier |
2 | Product A | $15 | =CHOOSE(IF(B2>=20, 3, IF(B2>=10, 2, 1)), "High", "Medium", "Low") |
3 | Product B | $8 | =CHOOSE(IF(B3>=20, 3, IF(B3>=10, 2, 1)), "High", "Medium", "Low") |
4 | Product C | $25 | =CHOOSE(IF(B4>=20, 3, IF(B4>=10, 2, 1)), "High", "Medium", "Low") |
Explanation:
- We have a table with product prices and want to categorize them into different price tiers.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the price value.
- If the price is $20 or more, it returns 3 (corresponding to the “High” tier). If it is at least $10, it returns 2 (related to the “Medium” tier), and if it is less than $10, it returns 1 (corresponding to the “Low” level).
✨ Example 4: Selecting Shipping Method
Suppose you have a table with different shipping options and their corresponding costs, and you want to select the most cost-effective shipping method based on the total order amount:
A | B | C | D | |
---|---|---|---|---|
1 | Order Total | Method | Shipping Cost | Selected Method |
2 | $200 | Standard | $10 | =CHOOSE(IF(A2>=100, 2, 1), B2, "Express") |
3 | $120 | Express | $15 | =CHOOSE(IF(A3>=100, 2, 1), B3, "Standard") |
4 | $80 | Standard | $8 | =CHOOSE(IF(A4>=100, 2, 1), B4, "Express") |
Explanation:
- We have a table with order totals and the available shipping methods with their costs.
- The CHOOSE function is nested with an IF function to determine the index_num based on the order total.
- If the order total is $100 or more, it returns 2 (corresponding to the “Express” method). Otherwise, it returns 1 (related to the “Standard” method).
✨ Example 5: Categorizing Temperature
Let’s categorize temperatures into different weather conditions based on the given range:
A | B | C | |
---|---|---|---|
1 | Location | Temp | Weather |
2 | City A | 30°C | =CHOOSE(IF(B2>30, 3, IF(B2>20, 2, 1)), "Hot", "Warm", "Mild") |
3 | City B | 18°C | =CHOOSE(IF(B3>30, 3, IF(B3>20, 2, 1)), "Hot", "Warm", "Mild") |
4 | City C | 25°C | =CHOOSE(IF(B4>30, 3, IF(B4>20, 2, 1)), "Hot", "Warm", "Mild") |
Explanation:
- We have a table with different city temperatures and want to categorize them into other weather conditions.
- The CHOOSE function is nested with an IF function to determine the index_num based on the temperature range.
- If the temperature exceeds 30°C, it returns 3 (corresponding to “Hot”). If it is above 20°C, it returns 2 (corresponding to “Warm”). Otherwise, it returns 1 (corresponding to “Mild”).
✨ Example 6: Selecting Payment Method
Let’s choose a payment method based on the customer’s location and their preferred payment option:
A | B | C | D | |
---|---|---|---|---|
1 | Customer | Location | Payment | Selected Payment |
2 | John | US | Credit Card | =CHOOSE(IF(B2="US", 2, 1), C2, "PayPal") |
3 | Alice | UK | PayPal | =CHOOSE(IF(B3="US", 2, 1), C3, "Credit Card") |
4 | Bob | Canada | Credit Card | =CHOOSE(IF(B4="US", 2, 1), C4, "PayPal") |
Explanation:
- We have a table with customer locations and their preferred payment options.
- The CHOOSE function is nested with an IF function to determine the index_num based on the customer’s location.
- If the customer is from the US, it returns 2 (corresponding to their preferred payment method). Otherwise, it returns 1 (related to the alternative payment method).
✨ Example 7: Exam Grading Scheme
Suppose you have a table with students’ exam scores, and you want to assign grades based on different grading schemes:
A | B | C | |
---|---|---|---|
1 | Student | Score | Grade |
2 | John | 85 | =CHOOSE(IF(B2>=90, 1, IF(B2>=80, 2, IF(B2>=70, 3, IF(B2>=60, 4, 5)))), "A", "B", "C", "D", "F") |
3 | Alice | 75 | =CHOOSE(IF(B3>=90, 1, IF(B3>=80, 2, IF(B3>=70, 3, IF(B3>=60, 4, 5)))), "A", "B", "C", "D", "F") |
4 | Bob | 92 | =CHOOSE(IF(B4>=90, 1, IF(B4>=80, 2, IF(B4>=70, 3, IF(B4>=60, 4, 5)))), "A", "B", "C", "D", "F") |
Explanation:
- We have a table with students’ exam scores and want to assign grades based on different grading schemes.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the score.
- If the score is 90 or higher, it returns 1 (corresponding to “A”). If it’s between 80 and 89, it returns 2 (related to “B”); if it’s between 70 and 79, it returns 3 (corresponding to “C”); if it’s between 60 and 69, it returns 4 (related to “D”). Otherwise, it returns 5 (related to “F”).
✨ Example 8: Weekly Sales Goal
Let’s set weekly sales goals based on historical sales data and the current month:
A | B | C | D | E | |
---|---|---|---|---|---|
1 | Month | Sales | Average | Goal | Goal Status |
2 | January | $12000 | $10000 | =CHOOSE(IF(A2="January", 2, 1), B2, C2) | =B2-D2 |
3 | February | $9800 | $9000 | =CHOOSE(IF(A3="January", 2, 1), B3, C3) | =B3-D3 |
4 | March | $10500 | $9500 | =CHOOSE(IF(A4="January", 2, 1), B4, C4) | =B4-D4 |
Explanation:
- We have a table with monthly sales data and want to set weekly sales goals based on the current month.
- The CHOOSE function is nested with an IF function to determine the index_num based on the month.
- It retrieves the sales value for the current month (January) and the average sales value for other months to set the weekly sales goal.
- The goal status is calculated by subtracting the actual sales from the goal.
✨ Example 9: Project Progress Status
Let’s determine the project progress status based on the completion percentage and project deadline:
A | B | C | D | |
---|---|---|---|---|
1 | Project | Status | Deadline | Progress Status |
2 | Project A | On track | 90% | =CHOOSE(IF(B2="On track", IF(C2>=90, 3, IF(C2>=75, 2, 1)), 4), "Green", "Yellow", "Orange", "Red") |
3 | Project B | Delayed | 40% | =CHOOSE(IF(B3="On track", IF(C3>=90, 3, IF(C3>=75, 2, 1)), 4), "Green", "Yellow", "Orange", "Red") |
4 | Project C | On track | 60% | =CHOOSE(IF(B4="On track", IF(C4>=90, 3, IF(C4>=75, 2, 1)), 4), "Green", "Yellow", "Orange", "Red") |
Explanation:
- We have a table with project statuses, completion percentages, and deadlines.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the project status and completion percentage.
- If the project is “On track,” it evaluates the progress status based on the completion percentage. If it’s above 90%, it returns 3 (corresponding to “Green”). If it’s between 75% and 90%, it returns 2 (related to “Yellow”). If it’s below 75%, it returns 1 (related to “Orange”).
- If the project is “Delayed,” it returns 4 (corresponding to “Red”).
✨ Example 10: Customer Segment Categorization
Let’s categorize customers into different segments based on their purchase frequency and total spending:
A | B | C | D | |
---|---|---|---|---|
1 | Customer | Frequency | Total Spending | Segment |
2 | John | High | $1500 | =CHOOSE(IF(B2="High", IF(C2>=1000, 3, IF(C2>=500, 2, 1)), 4), "VIP", "Regular", "Occasional", "New") |
3 | Alice | Regular | $800 | =CHOOSE(IF(B3="High", IF(C3>=1000, 3, IF(C3>=500, 2, 1)), 4), "VIP", "Regular", "Occasional", "New") |
4 | Bob | Occasional | $300 | =CHOOSE(IF(B4="High", IF(C4>=1000, 3, IF(C4>=500, 2, 1)), 4), "VIP", "Regular", "Occasional", "New") |
Explanation:
- We have a table with customer data, including purchase frequency and total spending.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the customer’s segment.
- If the customer has a “High” frequency and total spending is at least $1000, it returns 3 (corresponding to “VIP”). If total spending is at least $500, it returns 2 (corresponding to “Regular”). Otherwise, it returns 1 (related to “Occasional”).
- If the customer’s frequency is not “High,” it returns 4 (corresponding to “New”).
✨ Example 11: Product Discount Calculation
Let’s calculate discounts for products based on their category and total purchase quantity:
A | B | C | D | |
---|---|---|---|---|
1 | Product | Category | Quantity | Discount |
2 | Product A | Electronics | 20 | =CHOOSE(IF(B2="Electronics", IF(C2>=20, 3, IF(C2>=10, 2, 1)), IF(C2>=30, 4, 5)), 10, 5, 2, 0, 0) |
3 | Product B | Furniture | 8 | =CHOOSE(IF(B3="Electronics", IF(C3>=20, 3, IF(C3>=10, 2, 1)), IF(C3>=30, 4, 5)), 10, 5, 2, 0, 0) |
4 | Product C | Electronics | 35 | =CHOOSE(IF(B4="Electronics", IF(C4>=20, 3, IF(C4>=10, 2, 1)), IF(C4>=30, 4, 5)), 10, 5, 2, 0, 0) |
Explanation:
- We have a table with product data, including the category and purchase quantity.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the product category and quantity.
- If the product is in the “Electronics” category and the quantity is at least 20, it returns 3 (corresponding to a 10% discount). If the amount is at least 10, it returns 2 (corresponding to a 5% discount). Otherwise, it returns 1 (corresponding to a 2% discount).
- If the product is not in the “Electronics” category, it returns 4 (corresponding to a 0% discount).
✨ Example 12: Priority Assignment
Let’s assign priorities to tasks based on their due dates and urgency:
A | B | C | D | |
---|---|---|---|---|
1 | Task | Due Date | Urgency | Priority |
2 | Task A | 2023-07-25 | High | =CHOOSE(IF(B2-TODAY()<=2, IF(C2="High", 1, IF(C2="Medium", 2, 3)), IF(C2="High", 4, IF(C2="Medium", 5, 6))), "Urgent - High", "Urgent - Medium", "Urgent - Low", "High", "Medium", "Low") |
3 | Task B | 2023-07-29 | Medium | =CHOOSE(IF(B3-TODAY()<=2, IF(C3="High", 1, IF(C3="Medium", 2, 3)), IF(C3="High", 4, IF(C3="Medium", 5, 6))), "Urgent - High", "Urgent - Medium", "Urgent - Low", "High", "Medium", "Low") |
4 | Task C | 2023-08-02 | Low | =CHOOSE(IF(B4-TODAY()<=2, IF(C4="High", 1, IF(C4="Medium", 2, 3)), IF(C4="High", 4, IF(C4="Medium", 5, 6))), "Urgent - High", "Urgent - Medium", "Urgent - Low", "High", "Medium", "Low") |
Explanation:
- We have a table with tasks, due dates, and urgency levels.
- The CHOOSE function is nested with multiple IF functions to determine the index_num based on the task’s due date and urgency level.
- If the task is due within 2 days and has high urgency, it returns 1 (corresponding to “Urgent – High”). If it has medium speed, it returns 2 (related to “Urgent – Medium”). Otherwise, it returns 3 (corresponding to “Urgent – Low”).
- If the task is not due within 2 days and has high urgency, it returns 4 (corresponding to “High”). If it has medium speed, it returns 5 (related to “Medium”). Otherwise, it returns 6 (corresponding to “Low”).
✨ Part 3. Tips and Tricks:
- When using the CHOOSE function with nested IF functions, ensure you have handled all possible scenarios to avoid errors.
- Always double-check the index_num to ensure it is within the valid range of values provided.
- Consider using named ranges or cell references instead of hardcoding values in the CHOOSE function to make the formula more flexible and maintainable.
- Use the CHOOSE function when you have limited options and want to choose one based on a specific condition.
- Remember that the CHOOSE function is unsuitable for large datasets or complex conditions; in such cases, consider using other lookup functions like VLOOKUP or INDEX-MATCH.