ExcelReady
CourseFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before the interview. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Function guides
  • Blog

Product

  • Certificate

Company

  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Logic
  3. The CHOOSE Function in Excel

The CHOOSE Function in Excel

By ExcelReady Team·Updated October 30, 2026·7 min read

The short answer

CHOOSE returns the value at a given position in a list you type into the formula. =CHOOSE(2,"Morning","Afternoon","Night") returns Afternoon, because it is item 2. The first argument must be a number from 1 to the number of items, or CHOOSE returns #VALUE!. It works in every version of Excel.

Key takeaways

  • =CHOOSE(index_num, value1, value2, ...) returns the value whose position matches index_num.
  • index_num must be between 1 and the number of values; 0 or a too-big number gives #VALUE!.
  • Decimals are cut down to a whole number, so CHOOSE(2.9,...) returns item 2.
  • CHOOSE(MONTH(A2),1,1,1,2,2,2,3,3,3,4,4,4) turns a date into its quarter, including fiscal quarters.
  • Use SWITCH or IFS when the input is text or a range of values, not a simple 1, 2, 3 position.
On this page+
  1. What does CHOOSE do in Excel?
  2. How to use CHOOSE to turn codes into labels
  3. How to get the quarter from a date with CHOOSE
  4. How to show day names with CHOOSE and WEEKDAY
  5. How to switch between scenarios with CHOOSE
  6. Why does CHOOSE return #VALUE!?
  7. CHOOSE vs SWITCH vs IFS: which should you use?
  8. Practise it

The Excel CHOOSE function picks a value from a list by its position: give it 2 and it returns the second item. It is the quickest way to turn a number into a label, such as shift codes into shift names or month numbers into quarters, without a long chain of IFs. This guide is for beginners and covers the syntax, five practical uses, and when SWITCH or IFS is the better tool.

What does CHOOSE do in Excel?#

CHOOSE takes a position number and a list of values, and returns the value in that position.

Excel formula
=CHOOSE(index_num, value1, [value2], ...)
ArgumentWhat it meansExample
index_numWhich item to return, from 1 up to the number of valuesB2 (holding 2)
value1, value2, ...The list of items: text, numbers, cell references or ranges (up to 254)"Morning","Afternoon","Night"

So =CHOOSE(2,"Morning","Afternoon","Night") returns Afternoon. CHOOSE works in every version of Excel, including Excel 2010, Excel for Mac and Excel for the web.

How to use CHOOSE to turn codes into labels#

The most common use is replacing numeric codes with readable names. Here is a shift rota:

ABC
1EmployeeShift codeShift
2Ama2Afternoon
3Ben1Morning
4Chen3Night

Step 1: Point CHOOSE at the code#

Click C2 and type =CHOOSE(B2,. B2 holds 2, so CHOOSE will return the second value.

Step 2: List the labels in order#

Type the labels in the order of their codes, then close the bracket:

Excel formula
=CHOOSE(B2,"Morning","Afternoon","Night")

The result is Afternoon. Fill down with Ctrl+D (Windows) or ⌘D (Mac), and each row picks its own label.

The same formula with nested IF would be =IF(B2=1,"Morning",IF(B2=2,"Afternoon","Night")). CHOOSE is shorter and easier to extend: a fourth shift only needs one more value. Our nested IF guide explains when nesting is still the right call.

How to get the quarter from a date with CHOOSE#

CHOOSE can map 12 month numbers to 4 quarters. MONTH returns 1 to 12, and CHOOSE uses that as the position:

Excel formula
=CHOOSE(MONTH(A2),1,1,1,2,2,2,3,3,3,4,4,4)

For a date in February, MONTH returns 2, and the second value is 1, so the date is in Q1. Add a label with &: ="Q"&CHOOSE(MONTH(A2),1,1,1,2,2,2,3,3,3,4,4,4) returns Q1.

This really pays off for fiscal years that don't start in January. If your year starts in July, July to September is Q1 and January is Q3:

Excel formula
=CHOOSE(MONTH(A2),"Q3","Q3","Q3","Q4","Q4","Q4","Q1","Q1","Q1","Q2","Q2","Q2")

A February date returns Q3. You can read the whole calendar from the formula, which is hard to do with nested IFs.

How to show day names with CHOOSE and WEEKDAY#

WEEKDAY returns 1 for Sunday through 7 for Saturday (its default numbering), so CHOOSE can give each day a short name:

Excel formula
=CHOOSE(WEEKDAY(A2),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")

For 14 February 2026, a Saturday, the result is Sat. =TEXT(A2,"ddd") gives a similar result, but CHOOSE lets you use any labels you like, such as "Weekend" for 1 and 7 and "Weekday" for the rest.

How to switch between scenarios with CHOOSE#

CHOOSE can return cell references and ranges, not just typed values. That makes it useful for scenario models. Suppose F1 holds 1, 2 or 3 for Low, Mid and High growth, and the rates are in B8, C8 and D8:

Excel formula
=CHOOSE(F1,B8,C8,D8)

With F1 set to 2, the formula returns the Mid rate from C8. Change F1 and every formula that uses this cell updates.

If people pick the scenario as a word, such as Low, Mid or High in H1, let MATCH turn the word into the number CHOOSE needs:

Excel formula
=CHOOSE(MATCH(H1,{"Low","Mid","High"},0),B8,C8,D8)

MATCH finds "Low" in position 1 of the list in curly braces, so CHOOSE returns the Low rate from B8. A word that isn't in the list makes MATCH return #N/A, which tells you straight away that the input is wrong.

It also works with whole ranges inside another function:

Excel formula
=SUM(CHOOSE(F1,B2:B13,C2:C13,D2:D13))

This adds column B, C or D depending on F1. Pair it with a drop-down list in F1 to build a simple "pick a scenario" switch.

Why does CHOOSE return #VALUE!?#

CHOOSE returns #VALUE! when the index number is outside the list.

  • =CHOOSE(0,"a","b") returns #VALUE!, because positions start at 1.
  • =CHOOSE(4,"Morning","Afternoon","Night") returns #VALUE!, because there is no fourth item.
  • A text index, such as "2" typed with an apostrophe, may also cause errors. Check the cell with ISNUMBER; the IS functions guide shows how.

Decimals don't cause an error: CHOOSE cuts them to a whole number, so =CHOOSE(2.9,"a","b","c") returns b. To show a friendly message for bad codes, wrap it: =IFERROR(CHOOSE(B2,"Morning","Afternoon","Night"),"Check code").

CHOOSE vs SWITCH vs IFS: which should you use?#

Pick the function that matches the kind of input you have.

InputBest functionExample
A position number: 1, 2, 3...CHOOSE=CHOOSE(B2,"Morning","Afternoon","Night")
An exact value, often text: "P", "S", "D"SWITCH=SWITCH(D2,"P","Pending","S","Shipped","Other")
A range of values: 90+, 80+, 70+IFS (or nested IF)=IFS(B2>=90,"A",B2>=80,"B",TRUE,"C")

CHOOSE has no "otherwise" value, so every possible index needs an item in the list. SWITCH has a default result, which makes it safer for codes that may change. IFS handles thresholds like grade bands; see the IFS function guide for its syntax. SWITCH and IFS need Excel 2019 or later, while CHOOSE works everywhere, which matters if your file goes to people on older versions. For text-based tests, such as "does the cell contain refund?", see IF with text.

Practise it#

Try the live exercise on this page to turn shift codes into names. Then practise IS functions and SWITCH in a live spreadsheet, the closest relative of CHOOSE, and use the nested IF and IFS lesson to see when a threshold test is the better fit.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

Column B holds shift codes: 1 = Morning, 2 = Afternoon, 3 = Night. In C2, use CHOOSE to turn the code in B2 into the shift name.

fx
ABCD
1
Employee
Shift code
Shift
2
Ama
2
3
Ben
1
4
Chen
3
5
Dina
2
6
Eli
1
7
8
9

Tip: Start with the code (B2), then list the three names in order: "Morning", "Afternoon", "Night".

Practise this in a lesson

LessonIS functions and SWITCHCheck what's really in a cell with ISBLANK, ISNUMBER and ISTEXT, and turn short codes into labels with SWITCH.LessonNested IF and IFSHandle more than two outcomes, like letter grades or commission bands, with nested IFs or the cleaner IFS.Function guideIFSReplace messy nested IFs with Excel's IFS function. Examples for grades, tiers and SLAs, the catch-all trick, and a live exercise.

Frequently asked questions

What does the CHOOSE function do in Excel?

+

CHOOSE picks one value from a list by its position. =CHOOSE(3,"Red","Green","Blue") returns Blue because it is the third item.

Why does CHOOSE return #VALUE!?

+

The index number is less than 1, larger than the number of values in the list, or not a number at all. Check the cell that supplies the index, or wrap the formula in IFERROR.

What is the difference between CHOOSE and SWITCH?

+

CHOOSE works by position (1, 2, 3...), while SWITCH matches exact values, which can be text such as "P" or "S". SWITCH also has a default result; CHOOSE does not.

Can CHOOSE return a range?

+

Yes. =SUM(CHOOSE(F1,B2:B13,C2:C13,D2:D13)) adds column B, C or D depending on the number in F1.

How many values can CHOOSE have?

+

Up to 254 values after the index number.

Sources

  • CHOOSE function - Microsoft Support
  • SWITCH function - Microsoft Support

Written and checked by the ExcelReady Team. First published October 30, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. What does CHOOSE do in Excel?
  2. How to use CHOOSE to turn codes into labels
  3. How to get the quarter from a date with CHOOSE
  4. How to show day names with CHOOSE and WEEKDAY
  5. How to switch between scenarios with CHOOSE
  6. Why does CHOOSE return #VALUE!?
  7. CHOOSE vs SWITCH vs IFS: which should you use?
  8. Practise it

Keep reading

Logic· 6 min read

IF With Text in Excel: Check Words and Partial Matches

To check if a cell equals a word, use =IF(A2="Paid","Done","Chase"). To check if a cell contains a word anywhere, use =IF(ISNUMBER(SEARCH("refund",B2)),"Refund","Other"). SEARCH finds the word's position or returns an error, and ISNUMBER turns that into TRUE or FALSE. Wildcards like * don't work with = inside IF.

Logic· 6 min read

Nested IF in Excel: Grades, Bands and Tiers

A nested IF puts a second IF in the value_if_false slot of the first, so one formula can return three or more results. For grades: =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))). Excel checks the tests in order and stops at the first TRUE one, so test the highest band first.

Logic· 6 min read

The Excel IFS Function: Cleaner Than Nested IFs

The Excel IFS function checks a list of conditions in order and returns the result paired with the first TRUE one: =IFS(test1, value1, test2, value2, ...). It replaces nested IFs without the brackets. IFS has no "otherwise" result, so end with TRUE and a fallback value. It needs Excel 2019 or later.

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback. The first lessons are free, with no download.

Start learning for free