In Excel: keep the options in an Excel Table (Ctrl+T), then choose Data ▸ Data Validation ▸ Allow: List with a Source that follows the table, such as =INDIRECT("Items[Item]") — new or deleted table rows change the drop-down without editing the rule.
On this page7
Type the options in one column under a header, press Ctrl+T and confirm My table has headers.
Give the table a name on Table Design ▸ Table Name, for example Items.
Select the cells that should get the drop-down and open Data ▸ Data Validation.
Choose Allow: List and enter =INDIRECT("Items[Item]") as the Source (use your table and header names).
Add an item directly below the table and check that it appears in the drop-down.
What this does
A static list stores a fixed source such as =$A$2:$A$5, so an item typed in A6 never appears. A dynamic drop-down reads a source that changes size with the data. Microsoft recommends an Excel Table for this: a table grows and shrinks as rows are added or removed, and a list based on it updates with it. The Source box does not accept a table reference such as Items[Item] directly, which is why it is wrapped in INDIRECT as text. In Excel versions with dynamic arrays a spilled range works as well: put =SORT(UNIQUE(Items[Item])) in a spare cell such as D2 and use =$D$2# as the Source, which also removes duplicates and sorts the options. Keep the inputs visible and clearly labelled and the whole thing stays auditable — anyone who opens the file later, including you, can see at a glance exactly what feeds the result and change one assumption without hunting through the formula. Treat “dynamic drop down list excel” as a small repeatable workflow rather than a one-off click you hope to remember next time. Use a small test block before the live file, so any surprise in the affected dropdown shows up while it is still harmless. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That turns a data step that keeps your analysis trustworthy into a method you can reuse, explain, and defend when the workbook leaves your screen.
A worked example
Sheet Lists holds the header Item in A1 and Apple, Banana and Cherry in A2:A4, formatted as a table named Items. In Orders!B2:B100 choose Data ▸ Data Validation ▸ Allow: List and enter =INDIRECT("Items[Item]") as the Source. Typing Date in Lists!A5 extends the table to five rows, and every drop-down in B2:B100 now offers four fruits. Had the options been a plain range without a table, a source of =Lists!$A$2:$A$4 would still offer three. Option lists change — new products, staff or statuses. A source that follows the data keeps every drop-down current without anyone reopening Data Validation. Check the referenced cells, argument order and result type in your workbook. Start with the worked example before changing an input, then compare the changed result with the calculation you expected. An error value or a result of a different type is a reason to inspect the inputs and arguments.
In Google Sheets
Google Sheets support for this task has not been verified. Check the function, arguments and workflow in the target product before transferring the example. Matching formula notation does not establish identical behaviour. Keep this page bookmarked for the next time the same question comes up. Better still, repeat the steps once in your own workbook — doing it yourself is what turns a copied answer into something you remember. For “dynamic drop down list excel”, keep the input cells and the result visible while you check the formula in Excel. Follow the worked example and change one input at a time. The steps explain the workbook calculation; this page does not run a live calculator for that task.
Common mistakes
- Typing a fixed range such as
=$A$2:$A$5for a list that will grow — items added belowA5never appear. - Entering
=Items[Item]directly in the Source box, which Excel does not accept; wrap the reference inINDIRECTwith quotes. - Leaving a blank row between the table and a new item, so the table does not expand to include it.
- Renaming the table or its header without updating the text inside
INDIRECT, which then points at nothing.
Frequently asked questions
Does the drop-down change when I delete an option?
Yes. Delete the table row (not only its text) and the option disappears from the list; values already chosen in other cells stay until you change them.
Can the options be sorted and free of duplicates?
In Excel with dynamic arrays, put =SORT(UNIQUE(Items[Item])) in a spare cell such as D2 and use =$D$2# as the Source; the # refers to the whole spilled range.
Do I still need OFFSET for a dynamic range?
A named range built with OFFSET and COUNTA also grows with the data, but it recalculates constantly and miscounts when the column has blank cells; a table is easier to maintain.