Need to create a project schedule? Try our Gantt Chart for Excel!

Create a Drop Down List in Excel

I love using drop down lists in Excel! They are extremely simple to create and are a great way to make a spreadsheet easier to use. In this article, I'll first show how to create an in-cell drop-down list using data validation, and then I'll show some examples that demonstrate awesome things you can do with drop downs.

Drop Down Lists in ExcelExample drop-down lists in the Money Tracker template for the mobile Excel app.

To see some of the examples from this article in action, download the Excel file below.

Watch the Video

Create a Simple Drop-Down List

Drop Down ListDrop Down List in Excel

You can create an in-cell drop down list in Excel by following these 4 easy steps:

  1. Select the cell, or range of cells, where you want to add the drop-down list.
  2. Go to Data > Validation > Settings tab (see image below)
  3. Select "List" from the Allow: drop-down box
  4. Enter your list in the Source: field using a comma to separate the items, or select a range of cells from your worksheet.
Data Validation Drop-Down ListEntering the Source of a Drop Down List as a Comma-Delimited List

This approach is great for simple Yes/No options and other lists that appear only once in your spreadsheet.

The problem with this approach is that if you use this in a lot of cells and later want to update the list, you have to update all cells that use the list and there is a good chance you'll miss one. The more elegant approach is to use a reference to a range, or even better than that - a named range.

Defining a Drop-Down List using a Range

Instead of manually entering the list of items in the data validation dialog box, you can reference a range of cells. For example, let's say I have a separate worksheet with my list defined in cells A1:A3 as shown below. In this case, I've named the range "myList". You can later hide the worksheet containing your list to keep your workbook looking nice and clean or to prevent a user from changing the list.

Named Range

In the data validation dialog box, instead of entering the list manually, you enter a reference to the named range in the Source field as shown below:

Data Validation Referencing a Named Range

You could use a reference for the Source field like =Sheet2!$A$1:$A$3, but I usually prefer to name the list. Why? If you want to change the range, you only need to edit the defined name (via Formulas > Name Manager) rather than finding and editing all cells that use that particular data validation.

Note: When using a named range for a data validation list, the named range must be defined as a reference to a range of cells, or it must be a formula like OFFSET or INDIRECT or INDEX that returns a reference. If you're thinking of getting fancy and want to define a name without a cell reference such as ={"Yes","No"}, the drop-down list won't work.

Another bit of trivia: In old versions of Excel, using a named range was the only way for a drop-down list to reference a range on a different worksheet.

Check Boxes and Star Ratings with Excel Drop-Down Lists

The font used in the drop-down list cannot be changed, so it is always just a black sans serif font. This means that you can't show different colors and fonts within the drop-down list. What I think is awesome, though, is using Unicode Character Symbols to do fun things with drop-down lists, such as star-ratings using ★ or checkboxes using the characters √, ✔, ☐, ☑ or ☒.

Important: One of the main reasons I like to use checkbox-style drop-down lists is for compatibility and ease-of-use with Excel Online and the mobile Excel apps (Form Field checkboxes don't work in Excel Online or mobile apps). Also, when using a touch screen device, I think the drop-down checkbox is easier and more fun to use than entering an "X". By the way, if you'd like to see Microsoft add a checkbox as a data validation option, vote for that here.

Example 1: Using a Drop Down List to create a Checkbox field

This example comes from one of my Task List templates. The Source field is just "☐,√" (without the quotes).

Checkbox Using Data Validation

Example 2: Choose a Star Rating using a Drop Down Menu

For a star rating, you can use "★★★★★,★★★★,★★★,★★,★" in the Source field. This example comes from the Feature Comparison template.

Star Rating Example Using a Drop Down Menu

Including a Blank Value and Using Relative References

An in-cell drop down will ignore blanks if you enter text manually into the Source field (like " ,Yes,No"). So, if you want a blank value as an option, use a reference to a range as in the examples below.

Checkbox Style Drop Down in Excel

Usually, you will use absolute references like $C$76:$C$77 for the Source in your drop-down list. However, there may be times when you want the drop-down Source to change when you copy and paste the cell. In the example above, the drop-downs use a relative reference in the Source field (no $ signs in the reference). This makes it easy to create other checkbox examples by just copying the cells to the right.

Using a relative reference is important when creating dependent lists which will be shown a little later in this article.

Copying and Pasting Drop-Down Lists in Excel

When you copy and paste cells, the data validation will also be pasted, but you can't use the Format Painter to copy and paste data validation. Instead, if you only want to copy and paste the drop-down list (and not formulas or formatting), then after copying the cell, use Paste Special and select the Validation option as shown in the image.

Paste Special - Data Validation

Customizable Drop Down Lists Using Dynamic Ranges

I like creating templates that allow a person to customize lists, such as meals for a Meal Planner or accounts for an Account Register or products for a PO with Price List.

To allow for a variable number of items within the Source range, you could use a very large range like =$A$1:$A$1000, but the drop-down would end up having a crazy amount of blanks. Instead, you can create a dynamic range that extends the list to the last value in the range.

Here is a basic example:

Example Drop Down List using a Dynamic Named Range

You can see that even though the list range $C$127:$C$133 includes two blank cells, the drop-down only extends to row 131 (the last text value in the Categories column).

Here's how to do it:

Step 1: Create a Dynamic Named Range.

Go to Formulas > Name Manager and create a range named category_list using the following formula in the Refers To field, replacing label_cell and list_range with the appropriate cell references.

=OFFSET(label_cell,1,0,MATCH("zzzzz",list_range,1),1)

Here is the specific formula used in the example.

=OFFSET($C$127,1,0,MATCH("zzzzz",$C$127:$C$133,1)-1,1)

Step 2: Use the Named Range in the Source field for the drop-down list.

Source: =category_list

See my article "Dynamic Named Ranges" to learn more about the various formulas you can use. The formula used in the above example works well for lists that include only text values.

Dependent Drop-Down Lists Using CHOOSE or INDIRECT

A dependent drop-down list is a list that changes based on the value of another cell, which might also contain a drop-down list of its own. The Source for a drop-down list can be a formula, and that is the key to making the dependent list. As I mentioned before, the formula must return a reference, so there are only a few types of formulas that will work for drop downs. I personally prefer using CHOOSE or INDIRECT.

The example below is based on an account register where the idea is to choose categories for each transaction. The Type column contains a drop-down list that references cells C179:D179 (the labels "Expense" and "Income"). We want the dependent drop down box in the Category column to use the list of expenses if the Type is "Expense" and the list of income categories if the Type is "Income."

Here is an example showing the CHOOSE method:

Dependent Drop-Down List Example Using CHOOSE

The formula uses a relative reference for the type cell and absolute references for the type_values, expense_range and income_range like this:

=CHOOSE(MATCH(G182,$C$179:$D$179,0),$C$180:$C$183,$D$180:$D$183)

Alternatively, we could create dynamic named ranges called Expense_range and Income_range and then use the following formula for the Source:

=INDIRECT(G182&"_range")

You can use named ranges within the CHOOSE formula as well, so I'm not sure whether one method is better than the other. Some may argue that CHOOSE is better because INDIRECT is a volatile function, but I don't think that matters for drop-down lists.

See the Grocery Price Book template for a practical example of how dependent drop-down lists can be used in a spreadsheet.

Fancy Dynamic Drop-Down Lists

If the previous examples aren't fancy enough for you, my article "Dynamic Drop-Down Lists" explains how to create drop-down lists that change based on user input, the date, check number, etc.

Dynamic Drop-Down List for Check Number

Searchable Drop-Down Lists

If your drop-down list is really long, it can be difficult to find the item you are looking for. Google Sheets provides a great solution, though not a perfect one (yet). In Sheets, you can start typing into the cell and the drop-down list will automatically filter based upon what you type ... as long as it is the start of one or more of the words in the list.

For example, let's say your list contains the names Abe Lincoln, George Washington, Harry Truman, and J. Edgar Hoover. As soon as you type "h", the list will be shortened to Harry Truman and J. Edgar Hoover, but Sheets does not recognize the "h" in Washington.

Excel: Using a fairly complicated trick, you CAN create a searchable drop-down list in Excel. See this youtube video. If you'd like to encourage Microsoft to add a searchable drop-down list as a feature, vote for this suggestion on excel.uservoice.com.

More Examples

My article Add Cool Features to Your To Do Lists in Excel shows a few other examples, like using conditional formatting combined with a drop-down box to select a priority value in a to do or task list.

Example 1: This Homework To Do List allows you to choose a High, Medium, or Low value in the Priority column. There are also examples of this on the Task List template page.

Example Drop-Down List via Data Validation

Example 2: This Task List Template uses conditional formatting icon sets for the Priority column and a drop-down list to choose a value between 1 and 4.

Icon Chosen Using a Drop-Down List

More Examples: Drop-down lists are a common feature in many of my templates, including the Meal Planner, Money Manager, and many financial calculators. You can download the templates to see how the drop-down lists are created.

The Customer List Template page explains how to copy a customer list worksheet into a spreadsheet, create a drop-down list showing customer names, and then add lookup formulas to display the information for the chosen customer.

Additional Resources

The first version of this article was originally published on 4/7/2009 at https://www.vertex42.com/ExcelTips/drop-down-list.html but the original article has been updated and integrated into this blog post.

Related Content (may include ads)

Comments

6 comments… add one
  • Hi there,
    Thanks! This is very useful!
    Can we generate graphs/charts with spreadsheet that has this drop-down list?
    Thanks so much!

    Reply
    • @Hani … I don’t see why you can’t. But maybe I’m not understanding your question.

      Reply
  • This website has helped me finish a project for my Commander and possible win a company award. Thank you so much and this is an amazing asset!

    V/r,

    Free D.

    Reply
  • Thank you for this!

    Reply
  • Is hiding a list in a separate worksheet the best way (or only way) to stop other users from changing the list?

    Reply
    • Most of the time, a drop-down list is used for convenience instead of creating something that is 100% hack-proof. So, if you are just wanting to prevent accidental changes to the list, putting the list on a hidden worksheet is a pretty good solution. That way, if a user really knows what they are doing, they can still change the list (and maybe that’s what you want).

      For extra protection, you can password-protect the list worksheet (via Review > Protect Sheet) so that the user cannot change the list even if they figure out a way to unhide the worksheet. For an additional layer of security, you could make the worksheet “very hidden” by going into VBA and changing the Visible property for that sheet to xlSheetVeryHidden, so that the worksheet doesn’t show up in the list of worksheets when a user tries to unhide sheets. However, they could still edit the Source for the Data Validation drop-down list to bypass the original list altogether. Using Review > Protect Sheet will disable the ability to update Data Validation. However, protected sheets are easily hacked, so again – not 100% hack-proof. Unfortunately, Excel does not currently have the option of protecting only specific ranges of cells (unlike Google Sheets).

      Reply

Leave a Comment (comments are manually approved)

Your Name will be displayed along with your comment. Your Email and IP address are stored with the comment and used to identify/prevent spam (via a service provided by Automattic.com), but are not shared publicly. See our privacy policy to learn more.

Cancel