메인 컨텐츠로 가기

Excel 드롭다운 목록에서 여러 항목 선택 – 전체 가이드

Excel 드롭다운 목록은 데이터 일관성과 입력 용이성을 보장하는 환상적인 도구입니다. 그러나 기본적으로 하나의 항목만 선택하도록 제한됩니다. 하지만 동일한 드롭다운 목록에서 여러 항목을 선택해야 하는 경우에는 어떻게 해야 할까요? 이 포괄적인 가이드에서는 Excel 드롭다운 목록에서 다중 선택을 활성화하고, 중복 항목을 관리하고, 사용자 정의 구분 기호를 설정하고, 이러한 목록의 범위를 정의하는 방법을 살펴봅니다.

: 다음 방법을 적용하기 전에 미리 워크시트에 드롭다운 목록을 생성했는지 확인하세요. 데이터 유효성 검사 드롭다운 목록을 만드는 방법을 알고 싶다면 이 문서의 지침을 따르세요. Excel에서 데이터 유효성 검사 드롭다운 목록을 만드는 방법.

드롭다운 목록에서 다중 선택 활성화

이 섹션에서는 Excel의 드롭다운 목록에서 다중 선택을 활성화하는 데 도움이 되는 두 가지 방법을 제공합니다.

VBA 코드 사용

드롭다운 목록에서 다중 선택을 허용하려면 다음을 사용할 수 있습니다. 응용 프로그램을위한 Visual Basic (VBA) 엑셀에서. 스크립트는 드롭다운 목록의 동작을 수정하여 객관식 목록으로 만들 수 있습니다. 다음과 같이 해주세요.

1단계: 시트(코드) 편집기 열기
  1. 다중 선택을 활성화하려는 드롭다운 목록이 포함된 워크시트를 엽니다.
  2. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 코드보기 컨텍스트 메뉴에서.
2단계: VBA 코드 사용

이제 다음 VBA 코드를 복사하여 오프닝 시트(코드) 창에 붙여넣습니다.

VBA 코드: Excel 드롭다운 목록에서 다중 선택을 활성화합니다.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub

결과

워크시트로 돌아가면 드롭다운 목록에서 여러 옵션을 선택할 수 있습니다. 아래 데모를 참조하세요.

노트:
위의 VBA 코드는 다음과 같습니다.
  • 기존 워크시트와 향후 생성되는 워크시트 모두에 있는 모든 데이터 유효성 검사 드롭다운 목록에 적용됩니다.
  • 각 드롭다운 목록에서 동일한 항목을 두 번 이상 선택하는 것을 방지합니다.
  • 선택한 항목에 대한 구분 기호로 쉼표를 사용합니다. 다른 구분 기호를 사용하려면 구분 기호를 변경하려면 이 섹션을 확인하세요..

몇 번의 클릭만으로 Excel용 Kutools 사용하기

VBA에 익숙하지 않다면 더 쉬운 대안은 다음과 같습니다. Excel 용 Kutools's 다중 선택 드롭 다운 목록 특징. 이 사용자 친화적인 도구는 드롭다운 목록에서 다중 선택을 단순화하고 특정 범위, 현재 워크시트, 전체 통합 문서 또는 열려 있는 모든 통합 문서와 같은 다양한 범위를 제공합니다. 또한 다양한 요구 사항을 충족하기 위해 구분 기호를 사용자 정의하고 중복 항목을 쉽게 관리할 수 있습니다.

Excel 용 Kutools 설치,로 이동 쿠툴 탭에서 드롭 다운 목록 > 다중 선택 드롭 다운 목록. 그러면 다음과 같이 구성해야 합니다.

  1. 이 기능을 적용할 위치를 지정하세요. 범위 설정 안내
  2. 셀에서 선택한 항목에 대한 구분 기호를 지정합니다.
  3. 텍스트 방향을 결정합니다.
  4. OK.
결과

이제 드롭다운 목록이 있는 셀을 클릭하면 그 옆에 목록 상자가 나타납니다. 항목 옆에 있는 "+" 버튼을 클릭하여 드롭다운 셀에 추가하고, "-" 버튼을 클릭하여 원하지 않는 항목을 제거하세요. 아래 데모를 참조하세요.

주의 사항: 이 기능을 적용하려면 Excel 용 Kutools 다운로드 및 설치 먼저.

다중 선택 드롭다운 목록에 대한 추가 작업

이 섹션에서는 데이터 유효성 검사 드롭다운 목록에서 다중 선택을 활성화할 때 필요할 수 있는 다양한 시나리오를 수집합니다.


드롭다운 목록에서 중복 항목 허용

드롭다운 목록에서 여러 항목을 선택할 수 있으면 중복이 문제가 될 수 있습니다. 위의 VBA 코드는 드롭다운 목록에서 중복 항목을 허용하지 않습니다. 중복 항목을 유지해야 하는 경우 이 섹션의 VBA 코드를 사용해 보세요.

VBA 코드: 데이터 유효성 검사 드롭다운 목록에서 중복 허용

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        Target.Value = xValue1 & delimiter & xValue2
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub
결과

이제 현재 워크시트의 드롭다운 목록에서 여러 항목을 선택할 수 있습니다. 드롭다운 목록 셀의 항목을 반복하려면 목록에서 해당 항목을 계속 선택하세요. 스크린샷 보기:


드롭다운 목록에서 기존 항목 제거

드롭다운 목록에서 여러 항목을 선택한 후 드롭다운 목록 셀에서 기존 항목을 제거해야 하는 경우가 있습니다. 이 섹션에서는 이 작업을 수행하는 데 도움이 되는 또 다른 VBA 코드를 제공합니다.

VBA 코드: 드롭다운 목록 셀에서 기존 항목을 제거합니다.

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRngDV As Range
    Dim TargetRange As Range
    Dim oldValue As String
    Dim newValue As String
    Dim delimiter As String
    Dim allValues As Variant
    Dim valueExists As Boolean
    Dim i As Long
    Dim cleanedValue As String

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Set your desired delimiter here

    If Target.CountLarge > 1 Then Exit Sub

    ' Check if the change is within the specific range
    If Intersect(Target, TargetRange) Is Nothing Then Exit Sub

    On Error Resume Next
    Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
    If xRngDV Is Nothing Or Target.Value = "" Then
        ' Skip if there's no data validation or if the cell is cleared
        Application.EnableEvents = True
        Exit Sub
    End If
    On Error GoTo 0

    If Not Intersect(Target, xRngDV) Is Nothing Then
        Application.EnableEvents = False
        newValue = Target.Value
        Application.Undo
        oldValue = Target.Value
        Target.Value = newValue

        ' Split the old value by delimiter and check if new value already exists
        allValues = Split(oldValue, delimiter)
        valueExists = False
        For i = LBound(allValues) To UBound(allValues)
            If Trim(allValues(i)) = newValue Then
                valueExists = True
                Exit For
            End If
        Next i

        ' Add or remove value based on its existence
        If valueExists Then
            ' Remove the value
            cleanedValue = ""
            For i = LBound(allValues) To UBound(allValues)
                If Trim(allValues(i)) <> newValue Then
                    If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
                    cleanedValue = cleanedValue & Trim(allValues(i))
                End If
            Next i
            Target.Value = cleanedValue
        Else
            ' Add the value
            If oldValue <> "" Then
                Target.Value = oldValue & delimiter & newValue
            Else
                Target.Value = newValue
            End If
        End If

        Application.EnableEvents = True
    End If
End Sub
결과

이 VBA 코드를 사용하면 드롭다운 목록에서 여러 항목을 선택하고 이미 선택한 항목을 쉽게 제거할 수 있습니다. 여러 항목을 선택한 후 특정 항목을 제거하려면 목록에서 해당 항목을 다시 선택하면 됩니다.


사용자 정의 구분 기호 설정

위의 VBA 코드에서는 구분 기호가 쉼표로 설정되어 있습니다. 이 변수를 원하는 문자로 수정하여 드롭다운 목록 선택 항목의 구분 기호로 사용할 수 있습니다. 방법은 다음과 같습니다.

보시다시피 위의 VBA 코드에는 모두 다음 줄이 있습니다.

delimiter = ", "

필요에 따라 쉼표를 구분 기호로 변경하면 됩니다. 예를 들어 항목을 세미콜론으로 구분하려면 행을 다음과 같이 변경합니다.

delimiter = "; "
참고: 이러한 VBA 코드에서 구분 기호를 줄 바꿈 문자로 변경하려면 이 줄을 다음과 같이 변경하세요.
delimiter = vbNewLine

특정 범위 설정

위의 VBA 코드는 현재 워크시트의 모든 드롭다운 목록에 적용됩니다. VBA 코드를 특정 범위의 드롭다운 목록에만 적용하려면 다음과 같이 위 VBA 코드에서 범위를 지정할 수 있습니다.

보시다시피 위의 VBA 코드에는 모두 다음 줄이 있습니다.

Set TargetRange = Me.UsedRange

줄을 다음과 같이 변경하면 됩니다.

Set TargetRange = Me.Range("C2:C10")
주의 사항: 여기 C2 : C10 다중 선택으로 설정하려는 드롭다운 목록이 포함된 범위입니다.

보호된 워크시트에서 실행

"라는 비밀번호로 워크시트를 보호했다고 가정해 보세요.123"를 선택하고 드롭다운 목록 셀을 "로 설정합니다.잠금 해제"를 활성화하기 전에 보호를 활성화하기 전에 다중 선택 기능이 보호 후에도 활성 상태로 유지되도록 합니다. 그러나 위에서 언급한 VBA 코드는 이 경우 작동할 수 없으며 이 섹션에서는 다중 선택 기능을 처리하도록 특별히 설계된 다른 VBA 스크립트에 대해 설명합니다. 보호된 워크시트에서

VBA 코드: 중복 없이 드롭다운 목록에서 다중 선택 활성화


Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range
    Dim isProtected As Boolean
    Dim pswd As Variant

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    
    ' Check if sheet is protected
    isProtected = Me.ProtectContents
    If isProtected Then
        ' If protected, temporarily unprotect. Adjust or remove the password as needed.
        pswd = "yourPassword" ' Change or remove this as needed
        Me.Unprotect Password:=pswd
    End If

    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then
        If isProtected Then Me.Protect Password:=pswd
        Exit Sub
    End If
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0

    ' Re-protect the sheet if it was protected
    If isProtected Then
        Me.Protect Password:=pswd
    End If
End Sub
주의 사항: 코드에서 "너의 비밀번호"라는 줄에 pswd = "비밀번호" 워크시트를 보호하기 위해 사용하는 실제 비밀번호를 사용하세요. 예를 들어, 비밀번호가 "abc123", 그러면 그 줄은 다음과 같아야 합니다. pswd = "abc123".

Excel 드롭다운 목록에서 다중 선택을 활성화하면 워크시트의 기능과 유연성을 크게 향상시킬 수 있습니다. VBA 코딩에 익숙하든 Kutools와 같은 보다 간단한 솔루션을 선호하든 이제 표준 드롭다운 목록을 동적 다중 선택 도구로 변환할 수 있습니다. 이러한 기술을 사용하면 이제 더욱 동적이고 사용자 친화적인 Excel 문서를 만들 수 있습니다. Excel의 기능을 더 깊이 탐구하고 싶은 사람들을 위해 당사 웹사이트는 풍부한 튜토리얼을 자랑합니다. 여기에서 더 많은 Excel 팁과 요령을 알아보세요..

최고의 사무 생산성 도구

인기 기능: 중복 항목 찾기, 강조 표시 또는 식별   |  빈 행 삭제   |  데이터 손실 없이 열이나 셀 결합   |   수식없이 반올림 ...
슈퍼 조회: 다중 기준 VLookup    다중 값 VLookup  |   여러 시트에 걸친 VLookup   |   퍼지 조회 ....
고급 드롭다운 목록: 드롭다운 목록을 빠르게 생성   |  종속 드롭다운 목록   |  다중 선택 드롭 다운 목록 ....
열 관리자: 특정 개수의 열 추가  |  열 이동  |  Toggle 숨겨진 열의 가시성 상태  |  범위 및 열 비교 ...
특색 지어진 특징: 그리드 포커스   |  디자인보기   |   큰 수식 바    통합 문서 및 시트 관리자   |  리소스 라이브러리 (자동 텍스트)   |  날짜 선택기   |  워크 시트 결합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터 (굵게/기울임꼴/취소선 필터링...) ...
상위 15개 도구 세트12 본문 도구 (텍스트 추가, 문자 제거,...)   |   50+ 거래차트 유형 (Gantt 차트,...)   |   40+ 실용 방식 (생일을 기준으로 나이 계산,...)   |   19 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입,...)   |   12 매출 상승 도구 (숫자를 단어로, 환율,...)   |   7 병합 및 분할 도구 (고급 결합 행, 셀 분할,...)   |   ... 그리고 더

Excel용 Kutools로 Excel 기술을 강화하고 이전과는 전혀 다른 효율성을 경험해 보세요. Excel용 Kutools는 생산성을 높이고 시간을 절약하기 위해 300개 이상의 고급 기능을 제공합니다.  가장 필요한 기능을 얻으려면 여기를 클릭하십시오...

kte 탭 201905


Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!