Dependent Drop Down Box




How to do one of those trickier tasks in Excel: set up a drop down box that is dependent on the result of another drop down box.

The scenario

If coffee is selected from drop down A then I want a list of coffee types to appear in drop down B. If Tea is selected in drop down A then I want a list of tea types to appear in drop down B.

In the real world these lists may be product type and sub-products, departments and employees, account groups and sub accounts etc.

I’ve saved a file here for you to download and see how I’ve done it.

Free Download



Step 1: Set up your primary and secondary tables

 Primary drop down table

Note how the primary table has a column containing the names of the associated secondary tables

Step 2: Set up your Primary Drop Down List called ddDrink

To do this highlight the 3 cells Tea, Coffee, Juice and go to the Name Manager Box above column A and type ddDrink and then press Enter

Primary drop down list


Step 3: Set up your Primary Drop Down box

Click on a cell, lets say G21 and select Data > Validation > From List and type =ddDrink in the source box

Primary drop down box

Step 4: The trickier bit : Set up your Secondary Drop Down list

Here’s the trickier part

Let’s say we want our secondary drop down box to be right next to our primary drop down.

So we click on cell H21, and now we are going to create a named range called ddSecondary

To do this, click on Formulas > Define Name and name it ddSecondary

then add this formula to the Refers to: box

=INDIRECT( INDEX( tblDrink[Secondary Table],MATCH( G21, tblDrink[Drink],0)))

Secondary drop down list

That’s a pretty nasty looking formula when looked at in one go.

Ignoring the INDIRECT part for a moment, the main element is an INDEX MATCH formula which I’ve written numerous articles on and even made a video about.

The INDIRECT part is the “clever bit” in that it indirectly gives you the table name to be used for the second drop down.

For example, if Tea is selected in G21 then the INDEX MATCH part looks up the word Tea in the Drinks Table and then returns the corresponding Secondary Table name of tblTea.

The INDIRECT part then uses the reference to tblTea to provide a list to be used by the Secondary Drop down box.

Not easy to understand on first pass, Give it a try and feel free to ask for help.

Step 5: Set up your secondary drop down box

Click on cell H21and select Data > Validation > From List and type =ddSecondary in the source box

Secondary drop down box

Step 6: You’re done!

A very useful extra step is to add conditional formatting to flag invalid combinations such as Flat White Tea or Apple Coffee

To see how I’ve done that take a look at the demo file, essentially I use a COUNTIF formula in the conditional formatting.

Free Download