Home > Blog

An easy way to make fully dynamic related drop-down boxes

In previous blog posts, we have seen how to make drop-down boxes driven by the entries in other cells and drop-down boxes.  In this blog, we will create a fully dynamic system where

  • The data is dynamic; we can add more rows as we want by using a table
  • The number of drop-down boxes that we can have is easy to expand
  • The contents of the drop-down boxes are driven directly from the data set without adding additional named ranges.

To do this, we will use the spill functionality introduced in 2018 to make dynamic ranges for the contents of the drop-down boxes. 

In the example below, we have a simple table containing the data and a set of drop-down boxes that are related left to right to each other.  The user can select a Make from the list and then select the model and colour.


the end result showing the data and dynmic dependent drop-down boxes

To set this up, first, enter the data and then press >CTRL><L> to make the data into a table

To set up the 1st set of values for the Make, enter the following formula in E5


This makes a list of unique values in the Make column and then sorts them to make it easier for the user to find them.

Then go to E2 and set the data validation to “List” and the value to =$E$5#. 


how to set the data validation

The # signifies that you are referencing a spilled range and that E5 is the top left of the range.  Spilled ranges are designed to be dynamic, so it is good not to have anything in the cells below.  If the result of the formula were to try to overwrite a non-empty cell, it would generate a #SPILL error.

To make the 1st of the dependent drop-down boxes enter the following formula into F5:


This applies the criteria in E2 (i.e. the Make) to the Make column in the table and then returns the lines from the Model column.   It then reviews this list, returns only the Unique items, and Sorts them to make entries easier to find.

The same data validation settings are used for F2, but referencing F5#

The 3rd related drop-down box is made in the same way with G5 =SORT(UNIQUE(FILTER(Table1[Colour],Table1[Model]=$F$2))) and the validation on G2 referencing =g5#

Note that the SORT(UNIQUE(FILTER functions can be positioned elsewhere, and if your data expands, you can have more related drop-down boxes with minimal effort.

Miles Goodchild

Miles Goodchild has been a Program and Programme Planner, PMO lead and Project Manger since 1998.  He enjoys using MS Office, especially Project, Excel and Visio to make life easier and simpler.  In the course of this he created SummaryPro.  In this blog he shares some of the tips and techniques he has learnt over the years in the hope that they will be useful to you.