*The tutorial explains the syntax and basic uses of the CHOOSE function and provides a few non-trivial examples showing how to use a CHOOSE formula in Excel.*

CHOOSE is one of those Excel functions that may not look useful on their own, but combined with other functions give a number of awesome benefits. At the most basic level, you use the CHOOSE function to get a value from a list by specifying the position of that value. Further on in this tutorial, you will find several advanced uses that are certainly worth exploring.

The CHOOSE function in Excel is designed to return a value from the list based on a specified position.

The function is available in Excel 365, Excel 2019, Excel 2016, Excel 2013, Excel 2010, and Excel 2007.

The syntax of the CHOOSE function is as follows:

CHOOSE(index_num, value1, [value2], …)

Where:

**Index_num** (required) - the position of the value to return. It can be any number between 1 and 254, a cell reference, or another formula.

**Value1, value2, …** - a list of up to 254 values from which to choose. Value1 is required, other values are optional. These can be numbers, text values, cell references, formulas, or defined names.

Here's an example of a CHOOSE formula in the simplest form:

`=CHOOSE(3, "Mike", "Sally", "Amy", "Neal")`

The formula returns "Amy" because *index_num* is 3 and "Amy" is the 3^{rd} value in the list:

CHOOSE is a very plain function and you will hardly run into any difficulties implementing it in your worksheets. If the result returned by your CHOOSE formula is unexpected or not the result you were looking for, it may be because of the following reasons:

- The number of values to choose from is limited to 254.
- If
*index_num*is less than 1 or greater than the number of values in the list, the #VALUE! error is returned. - If the
*index_num*argument is a fraction, it is truncated to the lowest integer.

The following examples show how CHOOSE can extend the capabilities of other Excel functions and provide alternative solutions to some common tasks, even to those that are considered unfeasible by many.

One of the most frequent tasks in Excel is to return different values based on a specified condition. In most cases, this can be done by using a classic nested IF statement. But the CHOOSE function can be a quick and easy-to-understand alternative.

Supposing you have a column of student scores and you want to label the scores based on the following conditions:

Result |
Score |

Poor | 0 - 50 |

Satisfactory | 51 - 100 |

Good | 101 - 150 |

Excellent | over 151 |

One way to do this is to nest a few IF formulas inside each other:

`=IF(B2>=151, "Excellent", IF(B2>=101, "Good", IF(B2>=51, "Satisfactory", "Poor")))`

Another way is to choose a label corresponding to the condition:

`=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Poor", "Satisfactory", "Good", "Excellent")`

How this formula works:

In the *index_num* argument, you evaluate each condition and return TRUE if the condition is met, FALSE otherwise. For example, the value in cell B2 meets the first three conditions, so we get this intermediate result:

`=CHOOSE(TRUE + TRUE + TRUE + FALSE, "Poor", "Satisfactory", "Good", "Excellent")`

Given that in most Excel formulas TRUE equates to 1 and FALSE to 0, our formula undergoes this transformation:

`=CHOOSE(1 + 1 + 1 + 0, "Poor", "Satisfactory", "Good", "Excellent")`

After the addition operation is performed, we have:

`=CHOOSE(3, "Poor", "Satisfactory", "Good", "Excellent")`

As the result, the 3^{rd} value in the list is returned, which is "Good".

- To make the formula more flexible, you can use cell references instead of hardcoded labels, for example:
`=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), $E$1, $E$2, $E$3, $E$4)`

- If none of your conditions is TRUE, the
*index_num*argument will be set to 0 forcing your formula to return the #VALUE! error. To avoid this, simply wrap CHOOSE in the IFERROR function like this:`=IFERROR(CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Poor", "Satisfactory", "Good", "Excellent"), "")`

In a similar fashion, you can use the Excel CHOOSE function to perform one calculation in a series of possible calculations/formulas without nesting multiple IF statements inside each other.

As an example, let's calculate the commission of each seller depending on their sales:

Commission |
Sales |

5% | $0 to $50 |

7% | $51 to $100 |

10% | over $101 |

With the sales amount in B2, the formula takes the following shape:

`=CHOOSE((B2>0) + (B2>=51) + (B2>=101), B2*5%, B2*7%, B2*10%)`

Instead of hardcoding the percentages in the formula, you can refer to the corresponding cell in your reference table, if there is any. Just remember to fix the references using the $ sign.

`=CHOOSE((B2>0) + (B2>=51) + (B2>=101), B2*$E$2, B2*$E$3, B2*$E$4)`

As you probably know, Microsoft Excel has a special function to generate random integers between the bottom and top numbers that you specify - RANDBETWEEN function. Nest it in the *index_num* argument of CHOOSE, and your formula will generate almost any random data you want.

For example, this formula can produce a list of random exam results:

`=CHOOSE(RANDBETWEEN(1,4), "Poor", "Satisfactory", "Good", "Excellent")`

The formula's logic is obvious: RANDBETWEEN generates random numbers from 1 to 4 and CHOOSE returns a corresponding value from the predefined list of four values.

If you have ever performed a vertical lookup in Excel, you know that the VLOOKUP function can only search in the left-most column. In situations when you need to return a value to the left of the lookup column, you can either use the INDEX / MATCH combination or trick VLOOKUP by nesting the CHOOSE function into it. Here's how:

Supposing you have a list of scores in column A, student names in column B, and you want to retrieve a score of a particular student. Since the return column is to the left of the lookup column, a regular Vlookup formula returns the #N/A error:

To fix this, get the CHOOSE function to swap the positions of columns, telling Excel that column 1 is B and column 2 is A:

`=CHOOSE({1,2}, B2:B5, A2:A5)`

Because we supply an array of {1,2} in the *index_num* argument, the CHOOSE function accepts ranges in the *value* arguments (normally, it doesn't).

Now, embed the above formula into the *table_array* argument of VLOOKUP:

`=VLOOKUP(E1,CHOOSE({1,2}, B2:B5, A2:A5),2,FALSE)`

And voilà - a lookup to the left is performed without a hitch!

If you are not sure whether you should go to work tomorrow or can stay at home and enjoy your well-deserved weekend, the Excel CHOOSE function can find out when the next work day is.

Assuming your working days are Monday to Friday, the formula goes as follows:

`=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)`

Tricky at first sight, upon a closer look the formula's logic is easy to follow:

WEEKDAY(TODAY()) returns a serial number corresponding to today's date, ranging from 1 (Sunday) to 7 (Saturday). This number goes to the *index_num* argument of our CHOOSE formula.

*Value1* - *value7* (1,1,1,1,1,3,2) determine how many days to add to the current date. If today is Sunday - Thursday (index_num 1 - 5), you add 1 to return the next day. If today is Friday (index_num 6), you add 3 to return next Monday. If today is Saturday (index_num 7), you add 2 to return next Monday again. Yep, it's that simple :)

In situations when you want to get a day name in the standard format such as full name (Monday, Tuesday, etc.) or short name (Mon, Tue, etc.), you can use the TEXT function as explained in this example: Get day of week from date in Excel.

If you wish to return a day of the week or a month name in a custom format, use the CHOOSE function in the following way.

To get a day of the week:

`=CHOOSE(WEEKDAY(A2),"Su","Mo","Tu","We","Th","Fr","Sa")`

To get a month:

`=CHOOSE(MONTH(A2), "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")`

Where A2 is the cell containing the original date.

I hope this tutorial has given you some ideas of how you can use the CHOOSE function in Excel to enhance your data models. I thank you for reading and hope to see you on our blog next week!

Excel CHOOSE function examples

Excel formulas
CSV
Excel functions
Print
Financial functions
Vlookup
Merge data in Excel
SumIf
CountIf
Excel Compare
If statement
Excel Charts
Pivot Table
Conditional formatting
Excel formatting
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Shared email templates

Category: Excel Tips

60+ professional tools for Excel

2019–2010 to do your daily work

2019–2010 to do your daily work

Incredible product, even better tech support…AbleBits totally delivers!

Deborah Bryant

Anyone who works with Excel is sure to find their work made easier

Jackie Lee

The best spent money on software I've ever spent!

Patrick Raugh

Ablebits is a fantastic product - easy to use and so efficient.

Debra Celmer

Excel is at its best now

Annie C.

I don't know how to thank you enough for your Excel add-ins

Jennifer Morningstar

Anybody who experiences it, is bound to love it!

Kumar Nepa

AbleBits suite has really helped me when I was in a crunch!

Nelda Fink

I have enjoyed every bit of it and time am using it

Christian Onyekachi Nwosu

It's the best $100 we've ever spent!

Mike Cavanagh

I love the program, and I can't imagine using Excel without it!

Robert Madsen

One word… WOW!

Dave Brown

Love the products!

David Johnston

It is like having an expert at my shoulder helping me…

Linda Shakespeare

Your software really helps make my job easier

Jeannie C.

Thanks for a terrific product that is worth every single cent!

Dianne Young

I love your product

Brad Gibson

Awesome!!!

Sheila Blanchard

## 25 responses to "Excel CHOOSE function with formula examples"

nice tips... thank's for share.

You can both simplify the formula and "improve" it by "dynamic coding".

The following formula:

=CHOOSE((B2>0)+(B2>=51)+(B2>=101)+(B2>=151),$E$1,$E$2,$E$3,$E$4)

is better than:

=CHOOSE((B2>0)+(B2>=51)+(B2>=101)+(B2>=151),"Poor", "Satisfactory", "Good", "Excellent")

A reference to a cell is always better than "hard coding".

The same principle applies to the commission example, too.

Best Regards,

Meni Porat

you are right, but it is often said that for high volumes of data it is better to use constants in formulas than references

Hi,

I need help to all of you

actually i am creating a incentive calculator for my Sales team

according to our incentive policy

if a sales person achive his monthly target then the total unit multiply with the rate,

here is 2 different situation apply

1st situation

if a person achive his monthly target >100%

for example

a person sale a product 110unit

100 unit is a monthly target

the 100 unit multiply with 100% slab and rest of the 10 unit multiply with >100% or 110% slab.

the slab are also mention here

<80% <89% <99% 100% 110%

56 62.3 69.3 70 87.5 105

kindly suggest me some better option for the calculating of these incentive

Faisal:

If I understand your question here's the formula for the calculation:

=IF(M32<=80,(M32*56),IF(M32<=89,(M32*62.3),IF(M32<=99,(M32*69.3),IF(M32100,(M32*87.5))))))

Enter this into an empty cell and enter the achieved amount in M32. If you want to enter the achieved amount in another cell, change the "M32" addresses in the formula to that cell's address.

Why it always says ''error'' when i put 5 choices?

I also get an error but I'm using 4 choices.

Hi, I am using MATCH and CHOOSE to populate a table. Basically, I want CHOOSE to return values to an "11 row and 5 column" table from 52 different tables. Formula is below.

=+CHOOSE(MATCH($B$3,List!$M$5:$M$14), SAMS!$C$4:$G$14, SAMS!$C$17:$G$27,SAMS!$C$30:G$40, SAMS!C$43:G$53,SAMS!$C$56:$G$66, SAMS!$C$69:$G$79,SAMS!$C$82:$G$92, SAMS!$C$95:$G$105, SAMS!$C$108:$G$118, SAMS!$C$121:$G$131). When MATCH returns 1, CHOOSE works. But when it returns any other number, CHOOSE does not work. Can you help? Thanks Ben

Hi

I am using CHOOSE with interactive buttons to copy over text which has one character as a superscript. It is not copying over this as superscript but as inline regular text as all other text characters. Is there a way to make CHOOSE do as I would like to or, that CHOOSE cannot copy over text format properties.

Tnx

Khan

Thank you ! very helpful

Hi,

I have a problem in excel. It may not be related to choose function. I have data (classes )in different columns to which scholarships have been given. Now i want to search , which classes are remaining to which scholarships are to be given.

Say in col. A i have (1,2,3,4,5,6,7,8,9,10,11,12)-all the classes

Then in col. B -(2 )then in col. C-(3) and so on.

Now what i want is in certain column, i want the result as (1,4,5,6,7,8,9,10,11,12) as these are the classes to which scholarship is remaining to be given.

How can i do this.

Thanx in advance to all experts.

Nice tips.

Thanks for the share

Actually i am making a Incentive Calculation Sheet for our employees

and i am stuck off and need your help

Example

if D2 is = to 100%, 101%,102%,103%,104%,105%

then shown the unit that is calculating in slab 100%. 101%,102%,103%,104%,105%

kindly suggest me formula

Regards

Hello Everyone.

I have entered 2 values in the same cell. Is possible we can add the both values.

If anybody know pls let me know.

Sir, It's not working choose function

works perfect, thanks!

I JUST LOVED THE WAY YOU EXPLAIN & SIMPLIFY THE EXCEL TO THE LEARNERS

THANKS A LOTT FOR YOUR PRECIOUS HELP.

Incentive Calls Target

Not Applicable >50

5₹ 50 to 100

7₹ 101 to 201

10₹ over 202

A agent is taking 300 call in a month.How much will be total money?

How to calculate incentive by formula in Excel.

Greeting Sir,

it giving me error

Hello!

I’m sorry but your task is not entirely clear to me. For me to be able to help you better, please describe your task in more detail. Please specify what you were trying to find, what formula you used and what problem or error occurred. Give an example of the source data and the expected result.

It’ll help me understand it better and find a solution for you. Thank you.

question:

1 Count

2 Average

3 Sum

4 Max

5 Min

Based on the selection in the cell below, that function should be applied to output for Qty & Sales column

Function Qty Sales

2

Order ID Order Date Customer Name Region Customer Segment Product Category Product Sub-Category Product Name Order Quanqtity Unit Price Sales Order Priority Product Container

1001 1-Mar-17 Roy Skaria West Corporate Technology Computer Peripherals Zoom V.92 USB External Faxmodem 45 3000 135000 Low Large Box

1002 1-Mar-17 Roy Skaria West Corporate Office Supplies Paper Unpadded Memo Slips 50 240 12000 Low Jumbo Drum

1003 2-Mar-17 Roy Skaria North Corporate Office Supplies Pens & Art Supplies Prismacolor Color Pencil Set 10 1200 12000 Medium Small Box

1004 2-Mar-17 Dario Medina East Small Business Office Supplies Storage & Organization Sterilite Officeware Hinged File Box 27 660 17820 Critical Small Box

1005 2-Mar-17 Resi Polking West Small Business Technology Copiers and Fax Canon PC-428 Personal Copier 38 12000 456000 Medium Medium Box

1006 3-Mar-17 Ralph Knight North Consumer Technology Telephones and Communication 600 Series Flip 14 5760 80640 Medium Small Pack

1007 3-Mar-17 Deborah Brumfield North Corporate Furniture Chairs & Chairmats Hon GuestStacker Chair 25 13620 340500 Low Small Box

1008 3-Mar-17 Eva Jacobs East Home Office Technology Office Machines Lexmark Z54se Color Inkjet Printer 26 5460 141960 Low Small Box

1009 3-Mar-17 Jill Matthias West Consumer Technology Office Machines Polycom ViewStation™ Adapter H323 Videoconferencing Unit 2 116341 232682 Medium Large Box

calculate

Count

Average

Sum

Max

Min

funtion is a scrolling bar.

i have two cells in my excel that is prepared for one particular location to the other e.g france to italy. how can i make the next cell pick the distance between the two location.

Kindly help to use choose in vlookup function

Create an efficient formula in range G2:G21 that gives a decision for each customer with either the text “Extend Credit” or “No Credit.” Copy this formula down for each customer.

What formula would I use? How to enter in cell "Extend Credit" or "No credit"?