Purpose
Return value
Syntax
=CHOOSE(index_num,value1,[value2],...)
- index_num - The value to choose. A number between 1 and 254.
- value1 - The first value from which to choose.
- value2 - [optional] The second value from which to choose.
How to use
The CHOOSE function returns a value from a list using a given position or index. The values provided to CHOOSE can be hard-coded constants or cell references. The first argument for the CHOOSE function is index_num. This is a number that refers to subsequent values by index or position. The next arguments, value1, value2, value3, etc. are the values from which to choose from. Choose can handle up to 254 values. However, CHOOSE will not retrieve an item from inside range or array constant provided as a value. For larger sets of data in a table or range, INDEX and MATCH is a better way to retrieve a value based on position.
Examples
The formulas below use CHOOSE to return the 2nd and 3rd values from a list:
CHOOSE(2,"red","blue","green") // returns "blue"
CHOOSE(3,"red","blue","green") // returns "green"
Above, "blue" is the second value, and "green" is the third value. In the example shown in the screenshot, the formula in cell C5 is:
CHOOSE(B5,"red","blue","green") // returns "red"
CHOOSE will not retrieve values from a range or array constant. For example, the formula below will return a #VALUE error:
=CHOOSE(2,A1:A3) // returns #VALUE
This happens because the index number is out of range. In this case, the required syntax is:
=CHOOSE(2,A1,A2,A3)
To retrieve the nth item from a range, use INDEX and MATCH. CHOOSE can be used to provide a variable table to a function like VLOOKUP:
=VLOOKUP(value,CHOOSE(index_num,rng1,rng2),2,0) // variable table
Notes
- If index_num is out of range, CHOOSE will return #VALUE
- Values can also be references. For example, the address A1, or the ranges A1:10 or B2:B15 can be supplied as values.
- CHOOSE will not retrieve values from a range or array constant.