Excel Dropdown List: How to Select Multiple Items

How-to basics · Updated November 3, 2026

Excel Dropdown List: How to Select Multiple Items

Excel’s standard Data Validation dropdown lets you select only one item at a time. To keep several selections in the same cell, you need a VBA worksheet macro; if macros are unavailable or unsuitable, use a different layout, such as one row per selection or separate Yes/No columns.

How Excel dropdowns work by default

A dropdown made with Data Validation is designed to restrict a cell to one permitted value. When you choose another option, Excel replaces the cell’s existing value rather than adding to it. This is true even if the list contains many options: the dropdown is a single-choice control, not a set of checkboxes.

For example, a cell with a list of project skills can contain “Excel” or “Power BI.” Choosing “Power BI” after “Excel” replaces “Excel.” Excel does not provide a built-in setting in the Data Validation dialog to change that behavior to multi-select.

That distinction matters when planning a workbook. If each choice needs to be counted, filtered, or reported separately, storing a collection of comma-separated choices in one cell may not be the best data structure. If the goal is simply to record a short list for a person to read, a macro that appends choices can be convenient.

Create the standard dropdown first

Set up the regular list before adding any multi-select behavior. In Excel for Microsoft 365 on Windows, put the allowed choices in a range, select the cells where users will make selections, then choose Data > Data Validation. On the Settings tab, set Allow to List and enter the list range in Source. Select In-cell dropdown if you want the arrow to appear in the cell, then choose OK.

  1. Place choices in a single column, such as H2:H6: Design, Research, Writing, Testing, and Support.
  2. Select the intended entry cells, for example B2:B100.
  3. Open Data > Data Validation, choose List, and set Source to =$H$2:$H$6.
  4. Confirm In-cell dropdown is selected and save the workbook.

You can also type a short, fixed list directly into Source, separated by the list separator Excel expects for your regional settings. A cell range is easier to maintain: changing a choice in the source range updates the available options without editing the validation rule. The steps are broadly similar in Excel for Mac, though ribbon details can vary by release. Excel for the web supports ordinary data-validation dropdowns, but it cannot run VBA macros.

Add multiple selections with VBA

To append each new choice to the existing cell value, use a Worksheet_Change event macro. This example applies only to B2:B100 on the worksheet containing the code. It joins choices with a comma and a space, and it avoids adding the same choice twice. If a choice is already present, selecting it again leaves the existing text unchanged; this example does not treat a repeat selection as a way to remove an item.

In desktop Excel for Windows, right-click the relevant sheet tab, choose View Code, and paste the following procedure into that sheet’s code window—not into a standard module. Change the range if needed. Save the workbook as an Excel Macro-Enabled Workbook (.xlsm).

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim oldValue As String
    Dim newValue As String
    Dim separator As String

    ' Handle one cell in the intended input range only.
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Me.Range("B2:B100")) Is Nothing Then Exit Sub

    On Error GoTo CleanUp
    If Target.Validation.Type <> xlValidateList Then Exit Sub

    Application.EnableEvents = False
    newValue = CStr(Target.Value)
    Application.Undo
    oldValue = CStr(Target.Value)
    Target.Value = newValue

    If Len(oldValue) = 0 Or Len(newValue) = 0 Then GoTo CleanUp

    separator = ", "
    If InStr(1, separator & oldValue & separator, _
             separator & newValue & separator, vbTextCompare) = 0 Then
        Target.Value = oldValue & separator & newValue
    Else
        Target.Value = oldValue
    End If

CleanUp:
    Application.EnableEvents = True
End Sub

Make a copy of the workbook before running or changing VBA. Macros cannot be undone with Ctrl+Z, and a macro-enabled file may be blocked by security settings. Only enable macros in workbooks you trust. Excel for Mac has a VBA editor and supports many VBA macros, but the web version does not execute this event code; people using the web version will get the ordinary one-choice behavior instead.

What the macro does—and what it changes

Excel raises the worksheet change event when a user changes a cell. The procedure first ignores edits outside the specified range and changes affecting multiple cells. It then checks for list validation, remembers the newly selected value, and uses Application.Undo to recover the cell’s previous value. Finally, it restores the new choice and combines it with the previous text.

Disabling events while the procedure edits the cell prevents those edits from triggering the same event repeatedly. The cleanup section turns events back on after normal processing or an error. The macro also uses a separator to test whether the new complete choice is already in the cell, rather than searching for a partial word. For example, that helps distinguish “Art” from “Cart” when checking repeated entries.

This is a convenience workaround, not a native multi-select control. The cell ultimately holds text such as Design, Testing; Excel does not store two separate validation values in it. That affects how formulas, filters, and other users interpret the result.

Limitations to consider before using it

  • Macros must be enabled. Users may see a security warning or work in an environment where macros are disabled. The web app cannot run the VBA event.
  • One cell holds combined text. A filter may treat “Design, Testing” as one text value, not as two independent categories. Counting each selection requires extra parsing or a different data layout.
  • Separators can collide with choice text. If a list item itself contains a comma followed by a space, the simple duplicate check can misread the entries. Use a separator that cannot occur in any item, or adopt a more carefully designed macro.
  • Editing is not the same as toggling. The sample macro ignores a duplicate selection rather than removing it. To remove a choice, edit the cell manually or use a macro specifically designed to toggle selections.
  • Pasting needs care. The code exits for a multi-cell change, so it is not designed to combine selections during a block paste. Test how the workbook behaves with the ways people actually enter data.
  • Undo behavior is affected. The procedure uses Excel’s undo operation to retrieve the previous cell value. VBA actions can disrupt Excel’s normal undo history, so users should not rely on Ctrl+Z to reverse a macro-driven selection.

Alternatives that avoid a multi-select cell

Choose the data layout based on what you need to do with the selections later. A compact cell is easy to read, but separate records are generally easier to sort, count, validate, and analyze.

  • Use one row per selection. Record a person or project identifier in one column and one selected category in another. A person with three skills gets three rows. This is often the clearest option for PivotTables, filtering, and summaries.
  • Use one column per option. For a small, stable set of choices, provide a Yes/No field or checkbox-style input for each option. This makes it easy to count each option, though a large or frequently changing list can make the sheet wide.
  • Use several validated cells. Give each record a fixed number of selection cells, each with the same dropdown. This works when the maximum number of choices is known and keeping the choices in separate cells is useful.
  • Use a form or database-style tool. If many people need a robust multi-select interface, consider a purpose-built form or data-entry solution that stores each selection separately. The right choice depends on the organization’s tools and reporting needs.

For instance, if a team needs to report how many projects involve Testing, storing one skill per row makes that analysis straightforward. If the cell is only a brief note for display and users all have desktop Excel with macros enabled, the VBA approach may be an acceptable trade-off.

Choosing the right approach

Before using VBA, ask who will open the workbook, where they will open it, and how the results will be used. A macro can make data entry feel faster, but it adds a dependency on desktop Excel and macro permissions. It can also complicate future maintenance if the workbook owner changes or the allowed choices move to another range.

  • Choose a standard dropdown if each cell should have exactly one answer.
  • Choose a VBA-enhanced dropdown if users need a compact combined entry and can reliably use desktop Excel with macros enabled.
  • Choose separate rows or fields if selections need to be counted, filtered, exported, or used in reports.

Whichever approach you pick, document the expected format. If users see comma-separated values, tell them whether commas are reserved as separators and how to remove an item. Test additions, repeated choices, clearing a cell, and edits to multiple cells before distributing the workbook.

Frequently Asked Questions

Can Excel select multiple items from a dropdown without VBA?

No. Excel’s standard Data Validation dropdown selects one value per cell. You can use multiple cells, separate rows, or another input design without VBA, but accumulating several dropdown choices in one cell requires VBA or another custom solution.

Does the multi-select VBA work in Excel for the web?

No. Excel for the web can display and use ordinary validation dropdowns, but it does not run VBA macros. The event procedure works in desktop Excel, subject to macro settings; web users should use a no-macro layout or make selections in the desktop app.

Can selecting an item again remove it?

Not with the example above. It prevents a repeated choice from being added but leaves the existing text in place. Removing an item requires manual editing or different VBA that explicitly removes a matching selection.

Will the selections stay separate for filtering and formulas?

No. Once combined, they are text in one cell. Excel does not automatically treat each comma-separated item as a separate category. For reliable analysis, store each selection in its own row or field, or deliberately split the text as part of a data-processing workflow.

Do I need to save the workbook as XLSM?

Yes, if the workbook needs to retain its VBA macro. Save it as an Excel Macro-Enabled Workbook (.xlsm) and make sure users understand that macros must be enabled for multi-select behavior. An ordinary .xlsx file cannot store VBA code.

Related

Try it: the Date Difference Calculator: days, months, years and weekdays between two dates, with the DATEDIF formulas.

More in How-to basics

Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources

Spotted an error in this guide? Let us know.