The Excel workbook is included with our video training.

Abstract 

In this video we'll look at how you can use the CHOOSE function. We also compare a formula based on CHOOSE vs. a formula based on VLOOKUP.

Transcript 

In this video we'll look at how you can use the CHOOSE function.

Let's look at three examples.

In this first example we have some items listed with a numeric color code. We want to bring these names into column D.

Now, since I already have a table here, I could just use VLOOKUP and reference the table. I get the lookup_value from column C; the table is the range H5:I7, locked with F4; the column is 2, and I need to use FALSE to force an exact match.

=VLOOKUP(C5,$H$5:$I$7,2,FALSE)

When I copy the formula down, we have our color names.

This works fine, but we can do the same thing with CHOOSE without a table.

With CHOOSE, the first argument is an index, and the remaining arguments are choices. If I use 2 for index, and provide "red", "green", and "blue" as values, CHOOSE returns "green", since green is the second item.

=CHOOSE(2,"red", "green", "blue")

Since we already have numeric codes in column C, I can just replace the hard-coded index with a cell reference and copy the formula down.

=CHOOSE(C5,"red", "green", "blue")

We get the same result as VLOOKUP, and we don't need this table at all.

In the next example we're translating a 4-point rating scale to text values, where 1 is poor, and 4 is excellent.

In column D, we have a classic nested IF formula.

I can replace this formula with a simpler formula based on CHOOSE.

=CHOOSE(C5,"Poor","OK","Good","Excellent")

When I copy the formula down, we get the same results.

CHOOSE also works with cell references. If I want, I can pick up values from the table directly and use them inside CHOOSE.

=CHOOSE(C5,$I$5,$I$6,$I$7,$I$8)

Now the table works like a dynamic key. If I change a value in the table, it's reflected in the formula.

In this last example, we'll use CHOOSE to assign a quarter to any date.

First I'll use the MONTH function to extract a number between 1 and 12 from each date.

=MONTH(B5)

Next, I'll simply wrap the MONTH function inside CHOOSE and use MONTH to generate the index. I then need to provide 12 values, one for each month.

=CHOOSE(MONTH(B5),1,1,1,2,2,2,3,3,3,4,4,4)

The result is a number that corresponds to a quarter. As a final touch, I can use concatenation to add a "Q" before the number.

="Q"&CHOOSE(MONTH(B5),1,1,1,2,2,2,3,3,3,4,4,4)

What's cool about this particular solution is the order of the choices can easily be changed to accommodate fiscal quarters that have different start months.

=CHOOSE(MONTH(B5),1,1,1,2,2,2,3,3,3,4,4,4) // Jan start
=CHOOSE(MONTH(B5),4,4,4,1,1,1,2,2,2,3,3,3) // Apr start
=CHOOSE(MONTH(B5),3,3,3,4,4,4,1,1,1,2,2,2) // Jul start
=CHOOSE(MONTH(B5),2,2,2,3,3,3,4,4,4,1,1,1) // Oct start

And that's it.

The CHOOSE function performs simple lookups and can sometimes replace more complicated formulas that use VLOOKUP, INDEX and MATCH, or nested IFs.

The next time you need to map whole numbers into specific values, don't forget about the CHOOSE function.

Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.