Dynamic Drop-Down Lists in Excel That Update Themselves
By ExcelReady TeamUpdated 5 min read
The short answer
A dynamic drop-down list in Excel updates itself when the source data changes. The simplest way is to keep the items in an Excel table and use the table column as the Data Validation source. In Microsoft 365 or Excel 2021, build the items with =SORT(UNIQUE(A2:A50)) in a helper cell such as F2, then set the source to =$F$2#.
Key takeaways
- A drop-down list is a Data Validation rule with the List option; it becomes dynamic when its source can grow.
- An Excel table as the source works in every modern version: new rows join the list automatically.
- With dynamic arrays, point the source at a spill range like =$F$2#, built with SORT(UNIQUE()).
- A dependent drop-down uses FILTER in a helper cell, so the second list depends on the first choice.
- Data Validation only checks new entries; old values stay even if they leave the list.
On this page+
A dynamic drop-down list in Excel is a drop-down whose choices update by themselves when the data changes. You get one in two ways: use an Excel table as the source, or point the list at a spill range built with SORT and UNIQUE. This guide shows both, plus a dependent list where the second drop-down changes with the first choice.
What makes a drop-down list dynamic?#
A drop-down list is a Data Validation rule set to List. The rule has a Source: the cells that hold the choices. A normal source like $H$2:$H$5 is fixed, so an item typed in H6 never shows up. A dynamic source grows or changes with the data, so you never have to edit the rule again.
If you have never made a drop-down, start with the step-by-step guide to Data Validation drop-downs. The examples below use this product list in A1:C9:
| A | B | C | |
|---|---|---|---|
| 1 | Category | Item | Price |
| 2 | Fruit | Apple | 0.50 |
| 3 | Dairy | Milk | 1.20 |
| 4 | Fruit | Banana | 0.30 |
| 5 | Bakery | Bread | 2.10 |
| 6 | Dairy | Cheese | 3.50 |
| 7 | Fruit | Cherry | 4.00 |
| 8 | Bakery | Bagel | 0.90 |
| 9 | Dairy | Yogurt | 0.80 |
Method 1: Use an Excel table as the source#
An Excel table grows when you type in the row just below it, and a drop-down based on the table grows with it. This works in every version from Excel 2007 on.
- Type your choices in one column with a header, for example Status in K1 and Open, Pending, Closed below it.
- Click inside the list and press Ctrl+T (Mac: ⌘T). Tick My table has headers and click OK.
- Select the cell that needs the drop-down and go to Data > Data Validation (Windows keys: Alt, A, V, V).
- In Allow, choose List. Click in Source and select the table's data cells, K2:K4, without the header.
- Click OK.
Now type "On hold" in K5. The table expands to K5, and the drop-down shows four choices. This method is best for a short list of options you type by hand. It doesn't remove repeats or sort anything.
Method 2: Use SORT and UNIQUE with a spill range#
In Microsoft 365, Excel 2021 or Excel 2024, you can build the list from the data itself. The choices are always the distinct values already in a column, sorted A to Z.
In an empty helper cell, say F2, type:
Excel formula=SORT(UNIQUE(A2:A50))It spills Bakery, Dairy, Fruit. The range runs to row 50 to leave room for new rows.
- Select the cell for the drop-down and open Data > Data Validation.
- Choose List, and in Source type
=$F$2#. - Click OK.
The # after F2 is the spill range operator. It means "every cell the formula in F2 spilled into", however many that is today. Add a row with the category "Frozen", and both the helper list and the drop-down show four items. Read more in the guide to the spill range operator.
Data Validation won't accept a formula like UNIQUE typed straight into the Source box, so the helper cell is needed. You can put it on a separate sheet, such as Lists, and use =Lists!$F$2# as the source.
Because A2:A50 includes empty rows, UNIQUE adds a 0 to the list for the blanks. Remove it by filtering first:
=SORT(UNIQUE(FILTER(A2:A50,A2:A50<>"")))The UNIQUE function guide explains its optional arguments, and the guide to a sorted list of unique values shows more ways to shape the list.
Method 3: Make a dependent drop-down with FILTER#
A dependent drop-down changes its choices based on another cell. Pick Dairy in the first list, and the second list shows only Milk, Cheese and Yogurt.
- Make the first drop-down in E2 using Method 2, so it offers Bakery, Dairy and Fruit.
In a helper cell, say G2, type:
Excel formula=FILTER(B2:B9,A2:A9=E2)With Dairy in E2, it spills Milk, Cheese, Yogurt.
- Select E3 (or wherever the second choice goes) and add a Data Validation List with the source
=$G$2#.
When someone changes E2 to Fruit, the helper list becomes Apple, Banana, Cherry, and so does the second drop-down. If E2 is empty, FILTER finds no match and returns #CALC!. Add a third argument to show a friendly message instead: =FILTER(B2:B9,A2:A9=E2,"Pick a category").
Why isn't my dynamic drop-down working?#
Most problems come from the helper cell or the source reference. Check these:
- The helper shows #SPILL!. Something blocks the cells below it, so the drop-down has no list. Clear the cells under the formula. The guide to the #SPILL! error lists every cause.
- You forgot the #.
=$F$2gives a drop-down with only the first item. Add the#. - The helper is inside a table. Spilling formulas don't work in Excel tables. Put the helper in normal cells.
- The list has repeats. You pointed the source at the raw column. Point it at the UNIQUE helper instead.
- Old entries stay. Data Validation only checks values as they are typed. A cell that says "Frozen" keeps it even after Frozen leaves the list. Use Data > Data Validation > Circle Invalid Data (Windows) to find them.
Dynamic drop-downs in older Excel#
Without dynamic arrays, use Method 1, or a named range built with OFFSET and COUNTA, such as =OFFSET($A$2,0,0,COUNTA($A:$A)-1,1). That formula is harder to read and recalculates often, so a table is usually the better choice. To see why spilling changed so much, read dynamic arrays explained.
Practise it#
Helper lists for drop-downs are just UNIQUE, SORT and FILTER formulas, and those are skills employers test. Practise the UNIQUE function in a live spreadsheet: you type the formula and it checks it instantly. Then practise spill references like A2# and other modern Excel functions. Try the FILTER exercise on this page first.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Build the source for a dependent drop-down. E2 holds the chosen category. In G2, use FILTER to list the items in B2:B9 whose category in A2:A9 matches E2.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Price | Chosen category | Items for the list | |||||
| 2 | Dairy | |||||||
| 3 | ||||||||
| 4 | ||||||||
| 5 | ||||||||
| 6 | ||||||||
| 7 | ||||||||
| 8 | ||||||||
| 9 | ||||||||
| 10 | ||||||||
| 11 | ||||||||
| 12 |
Tip: FILTER needs the cells to return (the items), then the test: the category column equals E2.
Practise this in a lesson
Frequently asked questions
How do I make a drop-down list update automatically in Excel?
Put the list items in an Excel table (Ctrl+T, Mac: Cmd+T) and select the table's data cells as the Data Validation source. When you type a new item below the table, the table grows and the drop-down includes it.
Can I use UNIQUE in a data validation list?
Not directly in the Source box. Put =SORT(UNIQUE(range)) in a helper cell, for example F2, then use =$F$2# as the source. The # makes the drop-down follow the whole spilled list.
How do I make a dependent drop-down list?
Use FILTER in a helper cell to list only the items that match the first choice, such as =FILTER(B2:B50,A2:A50=E2). Then set the second drop-down's source to that helper cell with a #.
Why does my dynamic drop-down show a 0 or a blank item?
The source range includes empty cells. UNIQUE returns an empty cell as 0. Wrap the range in FILTER to drop blanks, like =SORT(UNIQUE(FILTER(A2:A50,A2:A50<>""))).
Do dynamic drop-down lists work in older Excel?
The table method works in Excel 2007 and later. The spill range method with # needs Microsoft 365, Excel 2021 or Excel 2024.