ExcelReady
CourseMock testsFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before day one. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Mock tests
  • Function guides
  • Blog

Test prep

  • Excel level test
  • Excel test practice
  • Free screening quiz
  • Certificate

Company

  • About
  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Data tools
  3. How to Make a Dependent Drop-Down List in Excel

How to Make a Dependent Drop-Down List in Excel

By ExcelReady Team·Updated November 2, 2026·7 min read

The short answer

A dependent drop-down list shows choices based on another cell. In Microsoft 365, list the matching items with =FILTER(Lists!B2:B8,Lists!A2:A8=B2) in a helper cell, then point the second drop-down's Data Validation source at that spill range, such as =Lists!$E$2#. In older Excel, name each list after its category and use =INDIRECT(B2).

Key takeaways

  • The first drop-down picks a category. The second shows only the items in that category.
  • In Microsoft 365, FILTER builds the second list and the # spill reference feeds it to Data Validation.
  • SORT(UNIQUE(...)) makes the first list from your data, without repeats.
  • In any version, named ranges plus =INDIRECT(B2) work, and they copy down to many rows.
  • Changing the first choice doesn't clear the second, so add a check for mismatches.
On this page+
  1. How a dependent drop-down works
  2. Method 1: FILTER and UNIQUE (Microsoft 365 and Excel 2021)
  3. Method 2: Named ranges and INDIRECT (every version)
  4. How to keep the two lists in step
  5. Drop-downs that use another sheet
  6. Why isn't my dependent drop-down working?
  7. Practise it

A dependent drop-down list in Excel is a second list whose choices change with the first: pick "Veg" in one cell, and the next cell offers only Carrot, Kale and Leek. You build it with Data Validation plus a formula that returns the matching items. This guide shows the modern way with FILTER and UNIQUE (Microsoft 365 and Excel 2021), the classic INDIRECT way that works in every version, and how to stop the two lists getting out of step.

How a dependent drop-down works#

Every drop-down in Excel is a Data Validation rule with a list source. A dependent drop-down simply uses a source that changes with another cell. You need three parts:

  1. A source table listing every category and its items.
  2. A first drop-down for the category.
  3. A second drop-down whose source is "the items for the category in the first cell".

Keep the source table on its own sheet, here called Lists:

AB
1CategoryItem
2FruitApple
3FruitBanana
4VegLeek
5FruitCherry
6VegKale
7DairyMilk
8VegCarrot

The drop-downs go on a sheet called Form: category in B2, item in C2. If you have not made a drop-down before, start with how to create a drop-down list in Excel, which covers Data Validation step by step.

Method 1: FILTER and UNIQUE (Microsoft 365 and Excel 2021)#

This method reads straight from the source table, so new rows in the table appear in the drop-downs automatically.

Step 1: Build the category list#

On the Lists sheet, in D2, type:

Excel formula
=SORT(UNIQUE(A2:A8))

It spills Dairy, Fruit and Veg into D2:D4, each once. The UNIQUE function guide explains how it removes repeats.

Step 2: Make the first drop-down#

On the Form sheet, select B2 and go to Data > Data Validation (Windows shortcut: Alt, A, V, V). Choose Allow: List and type this in Source:

Excel formula
=Lists!$D$2#

The # is a spill reference: it means "the whole spill range that starts in D2", so the list grows if a new category appears.

Step 3: Build the matching items#

Back on the Lists sheet, in E2, type:

Excel formula
=SORT(FILTER(B2:B8,A2:A8=Form!B2))

FILTER returns the items whose category equals the choice on the Form sheet. If B2 says Veg, E2:E4 shows Carrot, Kale and Leek. The FILTER function guide covers its arguments, and the FILTER lesson lets you practise it.

Step 4: Make the second drop-down#

Select C2 on the Form sheet, open Data Validation again, choose List, and use:

Excel formula
=Lists!$E$2#

Now pick a category in B2 and the arrow in C2 offers only the matching items.

This method has one limit: each helper formula follows one cell. For a table where every row needs its own pair of drop-downs, use Method 2. For more spill-based lists, see dynamic drop-down lists that update themselves.

Method 2: Named ranges and INDIRECT (every version)#

This classic method works in any version of Excel and copies down to as many rows as you like. It needs the items arranged in columns, one per category, with the category name on top:

GHI
1FruitVegDairy
2AppleCarrotMilk
3BananaKale
4CherryLeek

Step 1: Name each column#

Select G1:I4 and choose Formulas > Create from Selection, tick Top row only and click OK. Excel creates three names: Fruit (G2:G4), Veg (H2:H4) and Dairy (I2:I4). A name is a label for a range, and any sheet in the workbook can use it.

Step 2: Make the first drop-down#

Select B2 on the Form sheet and set its Data Validation list source to the headers: =Lists!$G$1:$I$1.

Step 3: Make the second drop-down with INDIRECT#

Select C2 and set its list source to:

Excel formula
=INDIRECT($B2)

INDIRECT turns the text in B2 into a reference. If B2 says Veg, INDIRECT("Veg") points at the named range Veg, and the drop-down shows its items. The $ before B locks the column but lets the row change, so you can copy C2 down to C3, C4 and so on, and each row follows its own category.

Two cautions:

  • Spaces. A name can't contain spaces, so Create from Selection turns "Frozen Food" into Frozen_Food. Use =INDIRECT(SUBSTITUTE($B2," ","_")) to match.
  • Blanks. Dairy covers I2:I4 but only I2 is filled, so its drop-down shows two empty lines. To avoid that, name just the filled cells with Formulas > Define Name.

How to keep the two lists in step#

Changing the first drop-down does not clear or change the second. If someone picks Veg and Kale, then switches the category to Fruit, C2 still says Kale. Data Validation only checks a cell when you type into it.

Without a macro, catch mismatches with a check formula next to each row:

Excel formula
=IF(COUNTIFS(Lists!A:A,B2,Lists!B:B,C2)=0,"Check","")

COUNTIFS looks for a row in the source table with both the category and the item. If there isn't one, the cell says Check. You can also use the same test in a conditional formatting rule to colour bad rows red.

Drop-downs that use another sheet#

Both methods keep their lists on a separate sheet, which keeps the form clean and makes the lists easy to edit. Data Validation accepts references to another sheet directly (=Lists!$D$2#), and named ranges work from any sheet in the workbook. You can hide the Lists sheet once it works (right-click its tab > Hide). The guide to a drop-down list from another sheet covers the details, and the worksheets and cross-sheet references lesson practises sheet references.

Why isn't my dependent drop-down working?#

Most problems come from one of these:

  1. #SPILL! in the helper cell. Something is in the way of the FILTER or UNIQUE results. Clear the cells below.
  2. #CALC! from FILTER. No item matches, usually because the first cell is empty. Add a third argument for that case, such as =FILTER(B2:B8,A2:A8=Form!B2,"Pick a category").
  3. Missing #. =Lists!$E$2 without # gives a one-item list.
  4. The source "evaluates to an error". INDIRECT can't find a matching name. Check spelling and spaces.
  5. Spill references in older versions. The # and FILTER need Microsoft 365 or Excel 2021. Use Method 2 in older versions.

Practise it#

Try the exercise on this page: it is the helper formula from Method 1, and you can check that Veg returns Carrot, Kale and Leek. Then practise FILTER in a live spreadsheet and the UNIQUE lesson, where you type the formulas yourself and get instant feedback. The article on the FILTER function and the UNIQUE function guide go deeper into both.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

The user picked Veg in D2. In E2, build the list the second drop-down would show: use FILTER to return the items in B2:B8 whose category in A2:A8 equals D2, and wrap it in SORT.

fx
ABCDEF
1
Category
Item
Category chosen
Items
2
Fruit
Apple
Veg
3
Fruit
Banana
4
Veg
Leek
5
Fruit
Cherry
6
Veg
Kale
7
Dairy
Milk
8
Veg
Carrot
9
10
11

Tip: FILTER needs the items to return (B2:B8) and a test (A2:A8=D2). SORT around it puts them A to Z.

Practise this in a lesson

LessonFILTER: pull matching rows with a formulaReturn every row that meets one or more conditions with FILTER, and show a friendly message when nothing matches.LessonUNIQUE: list and count distinct valuesPull a clean list of distinct regions or customers with UNIQUE, then count them with COUNTA.LessonWorksheets and cross-sheet referencesSwitch, add and rename worksheet tabs, then use other sheets in formulas: Prices!B3, a lookup against a price list tab, and a total across monthly tabs.Function guideFILTERReturn every row that matches a condition with Excel's FILTER. Multiple criteria, empty results and #SPILL! explained, with live practice.Function guideUNIQUEList distinct values with Excel's UNIQUE, count them with COUNTA, or find items that appear only once. Examples plus a live exercise.

Frequently asked questions

How do I create a dependent drop-down list in Excel?

+

Make a first drop-down for the category. Then build the matching items with FILTER in a helper cell (Microsoft 365) or name each item list after its category (any version), and use that as the second drop-down's list source.

Can a dependent drop-down list work on many rows?

+

Yes, with the INDIRECT method: the source =INDIRECT($B2) adjusts for each row when you copy it down. The FILTER method needs one helper formula per row, so it suits a single form better.

Why does my INDIRECT drop-down show an error?

+

INDIRECT can't find a name that matches the first cell. Check the spelling, and remember that names can't contain spaces. Use underscores in the names and =INDIRECT(SUBSTITUTE($B2," ","_")) in the source.

How do I clear the second drop-down when the first one changes?

+

Data Validation can't clear it on its own; that needs a macro. Without one, add a check cell such as =IF(COUNTIFS(Lists!A:A,B2,Lists!B:B,C2)=0,"Check","") or highlight mismatches with conditional formatting.

Sources

  • Create a drop-down list - Microsoft Support
  • FILTER function - Microsoft Support
  • Define and use names in formulas - Microsoft Support

Written and checked by the ExcelReady Team. First published November 2, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. How a dependent drop-down works
  2. Method 1: FILTER and UNIQUE (Microsoft 365 and Excel 2021)
  3. Method 2: Named ranges and INDIRECT (every version)
  4. How to keep the two lists in step
  5. Drop-downs that use another sheet
  6. Why isn't my dependent drop-down working?
  7. Practise it

Keep reading

Dynamic arrays· 5 min read

Dynamic Drop-Down Lists in Excel That Update Themselves

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#.

Data tools· 5 min read

Create a Drop-Down List in Excel

To create a drop-down list in Excel, select the cells, go to Data > Data Validation, set Allow to List, and in Source either type the items separated by commas (Open,Closed) or select a range that holds them. Click OK. Each cell now shows an arrow, and Excel rejects entries that aren't on the list.

Data tools· 5 min read

Drop-Down List From Another Sheet in Excel

Keep the items on their own sheet, then select the cells for the drop-down and go to Data > Data Validation. Choose List, click in the Source box, switch to the other sheet and select the items, for example =Lists!$A$2:$A$6. A named range or a table column makes the list easier to read and lets it grow.

More on data tools

  • Find Duplicates Between Two Columns in Excel
  • How to Filter Data in Excel (Ctrl+Shift+L)
  • How to Make a Frequency Table in Excel
  • How to Highlight Blank Cells in Excel
  • Highlight Cells That Contain Specific Text
  • Find and Highlight Duplicates in Excel
All data tools articles →

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback, right in your browser. Nothing to download.

Start learning for free