how to create drop down list in excel with multiple selections
You can’t make a true “multiple select” drop‑down with just standard Excel Data Validation, but you can simulate it with a small VBA macro so each new choice is appended instead of replacing the previous one.
How to Create Drop Down List in Excel with Multiple Selections
Quick Scoop
- You first create a normal Data Validation drop‑down list.
- Then you add a short VBA macro that watches the drop‑down cells and:
- Adds each new selection to the existing text (e.g., “Excel, Word, PowerPoint”).
- Can be customized to avoid duplicates or even put each choice on a new line.
- You must save the file as a macro‑enabled workbook (
.xlsm).
Step 1: Prepare Your List
- Type your options in a single column, e.g.
Sheet2!A2:A6:- Excel
- Word
- PowerPoint
- Outlook
- Teams
- Select that range and (optionally) turn it into a Table (Ctrl+T) so it’s easier to manage.
Step 2: Create the Basic Drop‑Down
- Go to the sheet where users will choose multiple items.
- Select the cell(s) that should have the drop‑down, e.g.
B2:B20. - On the ribbon, choose Data → Data Validation.
- In “Allow”, choose “List”.
- In “Source”:
- Either select your list range (e.g.
=Sheet2!$A$2:$A$6), or - Type values separated by commas (e.g.,
Excel,Word,PowerPoint,Outlook,Teams).
- Either select your list range (e.g.
- Click OK. Now each of those cells has a standard single‑select drop‑down.
At this point, selecting a new option replaces the old one—so we need VBA to allow multiple selections.
Step 3: Add VBA to Allow Multiple Selections
You’ll use the Worksheet’s Change event to capture each selection and append
it instead of replacing it.
- Press
Alt + F11to open the VBA editor. - In the Project pane, find your workbook and the sheet that contains the drop‑down cells (e.g.,
Sheet1). - Double‑click that sheet name.
- Paste code similar to this into the code window (simplified version based on common patterns):
vba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldValue As String
Dim NewValue As String
' Adjust this range to your drop-down cells
If Intersect(Target, Range("B2:B20")) Is Nothing Then Exit Sub
On Error GoTo ExitHandler
Application.EnableEvents = False
If Target.CountLarge > 1 Then GoTo ExitHandler
If Target.Value = "" Then GoTo ExitHandler
NewValue = Target.Value
Application.Undo
OldValue = Target.Value
If OldValue = "" Then
Target.Value = NewValue
Else
' Avoid duplicates
If InStr(1, OldValue, NewValue, vbTextCompare) = 0 Then
Target.Value = OldValue & ", " & NewValue
Else
Target.Value = OldValue
End If
End If
ExitHandler:
Application.EnableEvents = True
End Sub
Range("B2:B20")is where multi‑selection is enabled—change it to your own range.
- The code:
- Uses
Application.Undoto grab the previous cell content. - Builds a combined string like “Excel, Word, PowerPoint”.
- Skips adding a value if it’s already present.
- Uses
Step 4: Save as Macro‑Enabled Workbook
- Press Ctrl+S.
- In “Save as type”, choose “Excel Macro‑Enabled Workbook (*.xlsm)”.
- Close and reopen the file if Excel prompts about macros, then enable content so the code can run.
Now when you click the drop‑down in any cell of B2:B20 and select items one
by one, they’ll accumulate in the same cell instead of replacing the previous
selection.
Optional Tweaks (Nice Extras)
Change the Separator
In the code line:
vba
Target.Value = OldValue & ", " & NewValue
You can change the separator:
- Space:
" " & NewValue - Semicolon:
"; " & NewValue - Vertical bar:
" | " & NewValue
Put Each Selection on a New Line
Replace the concatenation line with:
vba
Target.Value = OldValue & vbCrLf & NewValue
This makes each choice appear on its own line inside the cell.
Make sure that:
- The cell’s “Wrap Text” is turned on so all lines are visible.
Limit Multi‑Select to Specific Rows/Columns
You can refine where the code runs:
-
For only row 3:
vba
If Not Target.Row = 3 Then GoTo ExitHandler
-
For only certain columns (e.g., column B):
vba
If Intersect(Target, Range("B:B")) Is Nothing Then GoTo ExitHandler
Combine these with the main Intersect check to target exactly where you want
multi‑select behavior.
Small HTML Table: Key Pieces
Here’s a quick HTML version of the essentials:
html
<table border="1">
<tr>
<th>Step</th>
<th>What You Do</th>
<th>Example</th>
</tr>
<tr>
<td>1</td>
<td>Create source list</td>
<td>Sheet2!A2:A6 = Excel, Word, PowerPoint, Outlook, Teams</td>
</tr>
<tr>
<td>2</td>
<td>Apply Data Validation (List)</td>
<td>Source = =Sheet2!$A$2:$A$6</td>
</tr>
<tr>
<td>3</td>
<td>Add Worksheet_Change VBA</td>
<td>Target range = B2:B20; append with “, ”</td>
</tr>
<tr>
<td>4</td>
<td>Save as .xlsm</td>
<td>Enable macros on reopen</td>
</tr>
</table>
Mini “Story” Example
Imagine you’re tracking team skills in 2026: in column A you list each employee, and in column B you want to quickly log their skills—Excel, Power BI, SQL, Python—without adding new columns.
With a multi‑select drop‑down, you click the arrow next to “Alex,” pick Excel , then Power BI , then SQL , and end up with “Excel, Power BI, SQL” in one tidy cell instead of juggling multiple columns or manual typing.
Quick SEO Bits
- Focus phrase used: how to create drop down list in excel with multiple selections appears in title and headings.
- Short, scannable sections and bullet lists keep it readable for tutorials and forum‑style “how do I do this in Excel?” questions.
Meta description idea:
Learn how to create a drop down list in Excel with multiple selections using
Data Validation and a simple VBA macro, including options to avoid duplicates
and separate choices with commas or line breaks.
Information gathered from public forums or data available on the internet and portrayed here.