How to Create a Dynamic Excel Drop-Down List with the FILTER Function
Question details
The user needs to create an auto-updating drop-down list that dynamically extracts specific data, such as clients within a certain city, using the FILTER function.

- Product
- Spreadsheet
- Device & OS
- not provided
- Scenario
- Building an interactive spreadsheet where data validation lists update and expand automatically as new records are added to the source dataset.
- Observed behavior
- A dynamic spill range is generated by the FILTER function, which is then referenced via the spill operator (#) to populate a dependent or auto-updating drop-down list.
Ensure your source data is formatted as an official Table so the formula ranges expand automatically, and verify that your spreadsheet software supports Dynamic Arrays and the FILTER function.
Creating a Dynamic Drop-Down List using FILTER and Excel Tables
Convert your data source to a Table and use the FILTER function to generate a dynamic spill array, then link this array to your Data Validation drop-down list using the spill operator.
By combining formatted Tables, the FILTER function, and the spill range operator, you can build drop-downs that automatically adjust their options as you add or remove rows from your raw data. This eliminates the need to manually update your Data Validation source ranges.
Highlight your source dataset, press Ctrl+T (or navigate to Insert > Table), and ensure 'My table has headers' is checked. Give your table a descriptive name like 'Table1' from the Table Design tab.
Select an empty cell in a staging area of your worksheet (where the data has room to expand downward). Enter a formula such as =FILTER(Table1[Client], Table1[City]="Manhattan", ""). Press Enter to output the spilled array of matching clients.
Select the cell where you want your actual drop-down menu to appear. Navigate to the Data tab on the ribbon and click on 'Data Validation'.
In the Data Validation dialog box, select 'List' from the Allow dropdown. In the Source box, select the very first cell where you typed your FILTER formula, and immediately type a hash symbol (#) at the end of the cell reference (for example: =$G$2#). Click OK.

Create Advanced Dynamic Drop-Downs Easily in WPS Spreadsheet
WPS Spreadsheet fully supports Dynamic Array functions like FILTER, SORT, and UNIQUE. You can efficiently manage your source data and create interactive, auto-updating drop-down lists with ease using familiar formulas.
- 1. Open your dataset in WPS Spreadsheet: Launch WPS Office, open your spreadsheet file, and locate the source data you want to use for your drop-down lists.
- 2. Format data as a Table: Highlight your data, go to the Insert tab, and click 'Table' so that formulas referencing it will automatically expand when new data is added.
- 3. Apply the FILTER formula: In a blank cell, type your FILTER formula (e.g., =FILTER(Table1[Clients], Table1[Status]="Active")) to generate a dynamic list of values.
- 4. Link to Data Validation: Select your target drop-down cell, go to Data > Data Validation, choose 'List', and input your formula cell reference followed by the '#' symbol (e.g., =$H$5#).

Frequently Asked Questions
Why is my FILTER function returning a #CALC! error?
The #CALC! error typically occurs when the FILTER function finds no matching records in your table and you have not provided a value for the third argument [if_empty]. You can resolve this by providing a fallback text in your formula: =FILTER(Table1[Client], Table1[City]="Manhattan", "No matching records").
What does the hash/pound symbol (#) do in Data Validation?
The hash symbol (#) is known as the spilled range operator. When placed immediately after a cell reference (like =$E$2#), it instructs the spreadsheet to select the entire dynamic array of values spilling from that initial cell, rather than just referencing that single cell.
Can I use multiple criteria in the FILTER function for my drop-down list?
Yes. You can filter by multiple criteria by multiplying your conditions together. For instance, to filter for active clients in Manhattan, use: =FILTER(Table1[Client], (Table1[City]="Manhattan") * (Table1[Status]="Active"), "").
Why isn't my drop-down list updating when I add new data to the bottom of my list?
This usually happens if your original source dataset was not formatted as an official Table. Standard cell ranges (like A2:A20) are static and will not include new rows automatically. Ensure you press Ctrl+T on your source data block and that your FILTER formula references the Table's structural name (like Table1[Client]).




