How to create dynamic data validation and extend the drop down automatically?
Normally, when you create a drop down list in a worksheet, the drop down list will not be changed with the new data entering dynamically, in this case, you need to modify the source data to extend the list manually. In this article, I will introduce how to make the data validation dynamically and auto extend the drop down list when new data entered.
To create a dynamic data validation list, you can create a table first, and then apply the Data Validation feature. Please do as follows:
Create a table format for the source data list:
1. Select the data list that you want to use as the source data for the drop down list, and then click Insert > Table, in the popped out Create Table dialog, check My table has headers if your data list has headers, see screenshot:
2. Then click OK button, the table has been created, see screenshot:
Define a range name for the table:
3. Then select the table you have created but ignoring the header, and type a name for this table in the Name box, and press Enter key, see screenshot:
Create a dynamic data validation list:
4. After defining the name for the table, and then select the cells where you want to insert the drop down list, and click Data > Data Validation > Data Validation, see screenshot:
5. And in the Data Validation dialog box, under the Settings tab, select List from the Allow section, and then enter this formula: =Namelist (Namelist is the name you have created for the table in step 3) into the Source text box, see screenshot:
6. Then click OK button, the drop down list has inserted into the selected cells, from now on, when you enter new name into the source data list, it will be added into the drop down list as well automatically, see screenshot:
Except creating a table, you can also finish this task by defining a range name with a formula, please do with following steps:
1. Click Formulas > Define Name, see screenshot:
2. In the New Name dialog box, specify a name as Namelist you need, and then type this formula: =OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A),1) into the Refers to text box, see screenshot:
Note: In the above formula, Sheet1 is the worksheet name contains the data list, A2 is the first cell in the data list, A:A is the column which has the data list.
3. Click OK button, and then go to the Data Validation dialog box by clicking Data > Data Validation > Data Validation, in the Data Validation dialog, select List from the Allow section, and then enter this formula: =Namelist (Namelist is the name you have created in step 2) into the Source text box, see screenshot:
4. And then click OK, now, when you enter new name into the data list, the drop down list will be extended automatically. See screenshot:
You are guest
or post as a guest, but your post won't be published automatically.
- To post as a guest, your comment is unpublished.· 3 years agoThank you very much, it is very powerful and simple solution at the same time.
- To post as a guest, your comment is unpublished.· 3 years agothanks for this. Really helpful
- To post as a guest, your comment is unpublished.· 3 years agoDo you know how to create a dynamic range using drop boxes to expand and contract the data range to be graphed (without deleting any data or hiding it)? I've only seen one person do this. https://youtu.be/sHfWRb2yUrM
Unfortunately I need to do this on a mac.
- To post as a guest, your comment is unpublished.· 3 years agoThansk for the info - just what I was looking for!!
- To post as a guest, your comment is unpublished.· 3 years agoI get "The source currently evaluates to an error" on Step 4 of "Create Dynamic Data Validation And Auto Extend The Drop Down By Defining Range Name"
- To post as a guest, your comment is unpublished.· 3 years agoSolution was to put name of the sheet, e.g. MyLists, rather than Sheet1 in Step 2
- To post as a guest, your comment is unpublished.· 4 years agoI LOVE YOU!
- To post as a guest, your comment is unpublished.· 4 years agoI find it is more simple to use a Table than write this whole Offset function. However since a Table cannot be used directly as a data validation source, I have to create a Name that refers to the Table[Column], and point the data validation list to the Name.