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

  1. Type your options in a single column, e.g. Sheet2!A2:A6:
    • Excel
    • Word
    • PowerPoint
    • Outlook
    • Teams
  1. 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

  1. Go to the sheet where users will choose multiple items.
  2. Select the cell(s) that should have the drop‑down, e.g. B2:B20.
  3. On the ribbon, choose Data → Data Validation.
  1. In “Allow”, choose “List”.
  1. 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).
  1. 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.

  1. Press Alt + F11 to open the VBA editor.
  2. In the Project pane, find your workbook and the sheet that contains the drop‑down cells (e.g., Sheet1).
  3. Double‑click that sheet name.
  4. 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.Undo to grab the previous cell content.
    • Builds a combined string like “Excel, Word, PowerPoint”.
    • Skips adding a value if it’s already present.

Step 4: Save as Macro‑Enabled Workbook

  1. Press Ctrl+S.
  2. In “Save as type”, choose “Excel Macro‑Enabled Workbook (*.xlsm)”.
  1. 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.