Advanced Excel

Function: CHOOSE()

🧭 Purpose:

The CHOOSE() function returns a value from a list based on a given position number called index_num.
Think of it as selecting an item from a menu by its number.

It’s useful for picking values dynamically, such as month names, GST rates, or transport costs.


🧮 Syntax:
=CHOOSE(index_num, value1, value2, value3, ...)

Parameter Description
index_num The position number of the value to return.
value1, value2, value3, … The list of items from which Excel will pick one.

Where we can use

CHOOSE() is useful when you need:

  1. Custom categories without nested IF.

  2. Switch-like logic → better alternative to multiple IF statements.

  3. Dynamic headings & labels in dashboards.

  4. Convert numbers to text (1 = “Low”, 2 = “Medium”, 3 = “High”).

  5. Create dynamic reports—switch months, switch sheets, switch tables.

  6. Combine with MATCH() → powerful custom lookup.

 

It can return:

  • Text
  • Numbers
  • Formulas
  • Ranges
  • Arrays
  • Cell references

🧑‍🎓 Example 1: Month Name from Number

Month No (A2) Formula Result
4 =CHOOSE(A2, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") Apr

Examples: 

Example 1

Pick a day from a list based on a number.

A (Number) B (Formula) C (Result)
3 =CHOOSE(A2,"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday") Wednesday

Example 2 

Convert rating numbers into text labels.

A (Rating) B (Meaning)
1 =CHOOSE(A2,”Poor”,”Average”,”Good”,”Very Good”,”Excellent”)
4 =CHOOSE(A3,”Poor”,”Average”,”Good”,”Very Good”,”Excellent”)
5 =CHOOSE(A4,”Poor”,”Average”,”Good”,”Very Good”,”Excellent”)

 


Example 3 (Dashboard Headline Switcher)

User selects a number and the dashboard heading changes dynamically.

A B
User Input 2
Heading =CHOOSE(A2,”Sales Report”,”Expense Report”,”Profit Report”,”Growth Insights”)

Output → Expense Report


Example 4 (Icon Output using CHOOSE)

Use Wingdings / Emoji Icons (Excel supports icons via conditional formatting or by manually inserting characters).

Score Icon Formula Icon
1 =CHOOSE(A2,"●","●●","●●●","●●●●","●●●●●")
5 =CHOOSE(A3,"●","●●","●●●","●●●●","●●●●●") ●●●●●

Can be used for:

  • Rating charts

  • Employee performance

  • Quality indicators


3. Projects


Project 1 — Beginner: Movie Rating Label Generator

Goal

Convert numbers into rating labels and icons using CHOOSE()

Table

Movie Rating (1–5) Label Icon
KGF 5 =CHOOSE(B2,”Bad”,”Below Avg”,”Average”,”Good”,”Excellent”) =CHOOSE(B2,”★”,”★★”,”★★★”,”★★★★”,”★★★★★”)
Pushpa 3
Kantara 4

Student Task

  • Complete formulas for all rows

  • Add Conditional Formatting icons to match scores (optional)


Project 2 — Intermediate: Expense Type Categorizer

Goal

Use CHOOSE() to assign categories based on numeric codes.

Table

Code Transaction Category
1 Milk =CHOOSE(A2,”Grocery”,”Transport”,”Food”,”Entertainment”)
3 Lunch
2 Bus Fare

Categories:
1 = Grocery
2 = Transport
3 = Food
4 = Entertainment

Student Tasks

  1. Fill missing formulas

  2. Add a summary table using COUNTIF

  3. Add icons for spending priority

    • Grocery = Blue Circle

    • Transport = Yellow Triangle

    • Food = Green Square

    • Entertainment = Red Diamond


Project 3 — Advanced: Multi-Month Dynamic Sales Switcher

Goal

Use CHOOSE() to dynamically switch between full monthly datasets.

Data Tables

January

Product Amount
Pen 400
Book 1200
Bag 2000

February

Product Amount
Pen 450
Book 1250
Bag 2200

March

Product Amount
Pen 430
Book 1100
Bag 2400

User Input Cell

A B
Select Month 2

Output Area (Dynamic Table)

Use formulas:

Product List

=CHOOSE($B$1, A2:A4, D2:D4, G2:G4)

Sales Amount

=CHOOSE($B$1, B2:B4, E2:E4, H2:H4)

Student Tasks

  1. Create a 3-month switcher using CHOOSE()

  2. Build a dropdown (Jan–Mar) mapped to numbers 1–3

  3. Create a dashboard showing totals, best product, worst product

  4. Add icons:

    • Green Up Arrow for growth

    • Red Down Arrow for decline

  5. Add a chart that updates automatically (optional but recommended)


Use CHOOSE With Other Functions

Combination Use Case
CHOOSE + VLOOKUP Reverse columns, virtual tables
CHOOSE + INDEX Dynamic column selection
CHOOSE + MATCH Multi-column switch lookup
CHOOSE + IF Categorization, icons
CHOOSE + Nested Arrays Dashboard switchers

1. CHOOSE() + VLOOKUP()

Purpose:
Use CHOOSE() to reorder columns so VLOOKUP can work even when the lookup value is not in the first column.


Example Table 

Product Category Price Stock
Pen Stationery 10 200
Bag Travel 500 80
Book Education 200 150
Bottle Utility 150 60
Keyboard Electronics 900 20

Goal: VLOOKUP for Price even though “Product” is column 1 and “Price” is column 3.

Formula

=VLOOKUP("Book", CHOOSE({1,2}, A2:A6, C2:C6), 2, FALSE)
Output → 200

Explanation:
CHOOSE({1,2}, A2:A6, C2:C6) creates a virtual table:

Product Price
Pen 10
Bag 500
Book 200
Bottle 150
Keyboard 900

Now VLOOKUP works normally.


2. CHOOSE() + INDEX()

Purpose:
Dynamically change which column INDEX pulls data from.


Example Table

ID Name Department Salary
101 Arjun HR 25000
102 Priya Accounts 30000
103 Sameer IT 45000
104 Riya Marketing 28000
105 Kunal IT 49000

Goal: Select which column INDEX should return using CHOOSE().

Formula: Return Department

=INDEX(CHOOSE(2, A2:A6, B2:B6, C2:C6, D2:D6), 3)
Output → Priya (Row 2, Column “Name”)

Formula: Return Salary

=INDEX(CHOOSE(4, A2:A6, B2:B6, C2:C6, D2:D6), 3)
Output → 45000

Explanation:
CHOOSE allows selecting the column dynamically.


3. CHOOSE() + MATCH()

Purpose:
Create a flexible lookup that switches which column to search.


Example Table

Product Jan Sale Feb Sale Mar Sale
Pen 400 450 430
Book 1200 1250 1100
Bag 2000 2200 2400
Bottle 500 550 600
Shoes 1500 1600 1700

User input: Month = 2 (February)
Goal: Find Feb sale for “Bag”.

Formula

=INDEX(CHOOSE(2, B2:B6, C2:C6, D2:D6), MATCH("Bag", A2:A6, 0))
Output → 2200

Explanation:
MATCH finds the row → CHOOSE selects the correct month column.


4. CHOOSE() + Nested Logic (IF + CHOOSE)

Purpose:
Convert performance score into text + icon using CHOOSE.


Example Table 

Employee Score Status Icon
Arjun 1 ? ?
Priya 3 ? ?
Vikas 5 ? ?
Riya 4 ? ?
Kunal 2 ? ?

Status Formula

=CHOOSE(B2, "Poor", "Below Avg", "Average", "Good", "Excellent")

Icon Formula

=CHOOSE(B2, "●", "●●", "●●●", "●●●●", "●●●●●")


5. CHOOSE() as a Complete Dynamic Switcher (Combined)

Example Table (4 columns × 5 rows)

Region Q1 Q2 Q3
East 120000 140000 150000
West 100000 110000 120000
North 90000 105000 130000
South 110000 118000 125000
Central 95000 99000 115000

User selects quarter:

  • 1 = Q1

  • 2 = Q2

  • 3 = Q3

Formula to return correct quarter sales

=INDEX(CHOOSE(A1, B2:B6, C2:C6, D2:D6), MATCH("North", A2:A6,0))
If A1 = 3 → Output = 130000