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 .