Menu

CHOOSE Function in Excel: Pick a Value by Number

=CHOOSE(B2,"Low","Medium","High") returns Low when B2 is 1, Medium when it is 2 and High when it is 3. Map numbers to names, pick a range to total, replace a nested IF, and pick columns with CHOOSECOLS.

Every sheet on this page is live: change a number or a formula and it recalculates.

=CHOOSE(B2,"Low","Medium","High") returns the value in the position given by B2: Low for 1, Medium for 2, High for 3. The first argument is the index, and everything after it is the list to pick from.

Priority number to a label
C2
ABC
1TaskPriorityLabel
2Fix login3High
3Update docs1Low
4Review PR2Medium
5Clean inbox1Low
6Ship release3High
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

Change a priority to 2 and its label changes to Medium. A priority of 4 gives #VALUE!, because the list has only three values; so does 0.

CHOOSE syntax

=CHOOSE(index_num, value1, [value2], ...)
  • index_num: a number from 1 to the number of values (up to 254). A decimal is cut down to a whole number, so 2.9 picks value 2.
  • value1, value2, ...: what to return. Numbers, text, cell references, formulas or whole ranges.

Weekday names from a date

WEEKDAY returns a number from 1 (Sunday) to 7 (Saturday), which is exactly the index CHOOSE expects.

Day name of a date
B2
AB
1DateDay
22026-03-02Mon
32026-03-06Fri
42026-03-07Sat
52026-03-11Wed
62026-03-15Sun
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

2026-03-02 is a Monday, so B2 shows Mon. Edit a date and the name follows. =TEXT(A2,"ddd") gives the same short names without a list (the weekday page covers it). CHOOSE is the choice when you want your own labels, such as "Weekday" and "Weekend", or a week that starts on another day.

CHOOSE instead of a nested IF

When the condition is a position number, CHOOSE replaces a chain of IFs. Both formulas below return the growth rate for the scenario number in B1.

Pick a scenario
B2
AB
1Scenario (1 to 3)2
2Growth (CHOOSE)5%
3Growth (nested IF)5%
4
5Sales this year120,000
6Sales next year126,000
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

Scenario 2 gives 5% and next year's sales of 126,000. Pick 3 in B1 for 8%. The CHOOSE version stays one level deep however many scenarios you add; the IF version gains a level for each one. When the condition is a text label, use SWITCH; for bands of values such as 0 to 999, use a lookup table.

Choose a whole range

The values can be ranges, so CHOOSE can decide which column a SUM or AVERAGE reads. With January to March sales in B2:B5, C2:C5 and D2:D5 and a month number in F2:

=SUM(CHOOSE(F2, B2:B5, C2:C5, D2:D5))

With 3 in F2 this totals D2:D5, the March column. For more than a few columns, listing every range gets long, and INDEX does the same with one range: =SUM(INDEX(B2:D5,0,F2)), where the 0 means "every row" (the INDEX page explains it). CHOOSE stays useful when the ranges are not next to each other, or sit on different sheets.

CHOOSECOLS and CHOOSEROWS

Microsoft 365 and Excel 2024 add two functions that pick whole columns or rows out of a range by number and spill the result. Negative numbers count from the end.

Name and stock only
F1
ABCDEFG
1ProductCategoryPriceStockProductStock
2AppleFruit$1.2040Apple40
3PearFruit$1.5025Pear25
4CarrotVegetable$0.8060Carrot60
5BreadBakery$2.4015Bread15
6MilkDairy$1.1030Milk30
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

F1 spills the Product and Stock columns, headers included. The numbers can come in any order: =CHOOSECOLS(A1:D6,4,1) puts Stock before Product. =CHOOSEROWS(A1:D6,1,-1) returns the header row and the last row.

Practice: shipping cost by method

Shipping methods
C2
ABC
1OrderMethodCost
210012
Click a cell to see its formula. Change a number or a formula and the sheet recalculates.

Your turn: Method 1 costs 5, method 2 costs 9 and method 3 costs 15. In C2, use CHOOSE to return the cost of the method number in B2.

Frequently Asked Questions

What does CHOOSE do in Excel?

It returns one of a list of values based on a number: =CHOOSE(2,"Red","Green","Blue") returns Green. The first argument picks the position, and the values after it can be numbers, text, cell references or ranges.

Why does CHOOSE return #VALUE!?

The index is less than 1 or larger than the number of values. =CHOOSE(4,"Red","Green","Blue") has only three values to pick from. A decimal index is cut down to a whole number, so 2.7 picks the second value.

When should I use CHOOSE instead of IF?

When the condition is a position number such as 1, 2, 3. =CHOOSE(B2,5,9,15) is shorter and easier to read than =IF(B2=1,5,IF(B2=2,9,15)). For conditions that are not numbers in sequence, use IFS, SWITCH or a lookup table.

What is CHOOSECOLS in Excel?

A newer function that returns chosen columns of a range: =CHOOSECOLS(A1:D5,1,4) returns the first and fourth columns. CHOOSEROWS does the same with rows, and negative numbers count from the end. Both need Microsoft 365 or Excel 2024.

Coddy programming languages illustration

Learn to code with Coddy

GET STARTED