Excel 드롭다운 목록에서 여러 항목 선택 – 전체 가이드
Excel 드롭다운 목록은 데이터 일관성과 입력 용이성을 보장하는 환상적인 도구입니다. 그러나 기본적으로 하나의 항목만 선택하도록 제한됩니다. 하지만 동일한 드롭다운 목록에서 여러 항목을 선택해야 하는 경우에는 어떻게 해야 할까요? 이 포괄적인 가이드에서는 Excel 드롭다운 목록에서 다중 선택을 활성화하고, 중복 항목을 관리하고, 사용자 정의 구분 기호를 설정하고, 이러한 목록의 범위를 정의하는 방법을 살펴봅니다.
드롭다운 목록에서 다중 선택 활성화
이 섹션에서는 Excel의 드롭다운 목록에서 다중 선택을 활성화하는 데 도움이 되는 두 가지 방법을 제공합니다.
VBA 코드 사용
드롭다운 목록에서 다중 선택을 허용하려면 다음을 사용할 수 있습니다. 응용 프로그램을위한 Visual Basic (VBA) 엑셀에서. 스크립트는 드롭다운 목록의 동작을 수정하여 객관식 목록으로 만들 수 있습니다. 다음과 같이 해주세요.
1단계: 시트(코드) 편집기 열기
- 다중 선택을 활성화하려는 드롭다운 목록이 포함된 워크시트를 엽니다.
- 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 코드보기 컨텍스트 메뉴에서.
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 설치,로 이동 쿠툴 탭에서 드롭 다운 목록 > 다중 선택 드롭 다운 목록. 그러면 다음과 같이 구성해야 합니다.
- 여러 항목을 선택해야 하는 드롭다운 목록이 포함된 범위를 지정합니다.
- 드롭다운 목록 셀에서 선택한 항목에 대한 구분 기호를 지정합니다.
- 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 = "; "
delimiter = vbNewLine
특정 범위 설정
위의 VBA 코드는 현재 워크시트의 모든 드롭다운 목록에 적용됩니다. VBA 코드를 특정 범위의 드롭다운 목록에만 적용하려면 다음과 같이 위 VBA 코드에서 범위를 지정할 수 있습니다.
보시다시피 위의 VBA 코드에는 모두 다음 줄이 있습니다.
Set TargetRange = Me.UsedRange
줄을 다음과 같이 변경하면 됩니다.
Set TargetRange = Me.Range("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
Excel 드롭다운 목록에서 다중 선택을 활성화하면 워크시트의 기능과 유연성을 크게 향상시킬 수 있습니다. VBA 코딩에 익숙하든 Kutools와 같은 보다 간단한 솔루션을 선호하든 이제 표준 드롭다운 목록을 동적 다중 선택 도구로 변환할 수 있습니다. 이러한 기술을 사용하면 이제 더욱 동적이고 사용자 친화적인 Excel 문서를 만들 수 있습니다. Excel의 기능을 더 깊이 탐구하고 싶은 사람들을 위해 당사 웹사이트는 풍부한 튜토리얼을 자랑합니다. 여기에서 더 많은 Excel 팁과 요령을 알아보세요..
관련 기사
Excel 드롭 다운 목록에 입력 할 때 자동 완성
큰 값이있는 데이터 유효성 검사 드롭 다운 목록이있는 경우 적절한 항목을 찾기 위해 목록에서 아래로 스크롤하거나 전체 단어를 목록 상자에 직접 입력해야합니다. 드롭 다운 목록에 첫 글자를 입력 할 때 자동 완성을 허용하는 방법이 있다면 모든 것이 더 쉬워 질 것입니다. 이 튜토리얼은 문제를 해결하는 방법을 제공합니다.
Excel의 다른 통합 문서에서 드롭 다운 목록 만들기
통합 문서 내의 워크 시트간에 데이터 유효성 검사 드롭 다운 목록을 만드는 것은 매우 쉽습니다. 그러나 데이터 유효성 검사에 필요한 목록 데이터가 다른 통합 문서에있는 경우 어떻게 하시겠습니까? 이 자습서에서는 Excel의 다른 통합 문서에서 드롭 fown 목록을 만드는 방법에 대해 자세히 알아 봅니다.
Excel에서 검색 가능한 드롭 다운 목록 만들기
값이 많은 드롭 다운 목록의 경우 적절한 값을 찾는 것은 쉬운 일이 아닙니다. 이전에는 드롭 다운 상자에 첫 글자를 입력 할 때 드롭 다운 목록을 자동 완성하는 방법을 도입했습니다. 자동 완성 기능 외에도 드롭 다운 목록에서 적절한 값을 찾을 때 작업 효율성을 높이기 위해 드롭 다운 목록을 검색 가능하게 만들 수도 있습니다. 드롭 다운 목록을 검색 가능하게 만들려면이 자습서의 방법을 시도하십시오.
Excel 드롭 다운 목록에서 값을 선택할 때 다른 셀 자동 채우기
셀 범위 B8 : B14의 값을 기반으로 드롭 다운 목록을 만들었다 고 가정 해 보겠습니다. 드롭 다운 목록에서 값을 선택할 때 셀 범위 C8 : C14의 해당 값이 선택한 셀에 자동으로 채워지기를 원합니다. 문제를 해결하기 위해이 튜토리얼의 방법이 도움이 될 것입니다.
최고의 사무 생산성 도구
🤖 | Kutools AI 보좌관: 다음을 기반으로 데이터 분석을 혁신합니다. 지능형 실행 | 코드 생성 | 사용자 정의 수식 만들기 | 데이터 분석 및 차트 생성 | Kutools 기능 호출... |
인기 기능: 중복 항목 찾기, 강조 표시 또는 식별 | 빈 행 삭제 | 데이터 손실 없이 열이나 셀 결합 | 수식없이 반올림 ... | |
슈퍼 조회: 다중 기준 VLookup | 다중 값 VLookup | 여러 시트에 걸친 VLookup | 퍼지 조회 .... | |
고급 드롭다운 목록: 드롭다운 목록을 빠르게 생성 | 종속 드롭다운 목록 | 다중 선택 드롭 다운 목록 .... | |
열 관리자: 특정 개수의 열 추가 | 열 이동 | Toggle 숨겨진 열의 가시성 상태 | 범위 및 열 비교 ... | |
특색 지어진 특징: 그리드 포커스 | 디자인보기 | 큰 수식 바 | 통합 문서 및 시트 관리자 | 리소스 라이브러리 (자동 텍스트) | 날짜 선택기 | 워크 시트 결합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵게/기울임꼴/취소선 필터링...) ... | |
상위 15개 도구 세트: 12 본문 도구 (텍스트 추가, 문자 제거,...) | 50+ 거래차트 유형 (Gantt 차트,...) | 40+ 실용 방식 (생일을 기준으로 나이 계산,...) | 19 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입,...) | 12 매출 상승 도구 (숫자를 단어로, 환율,...) | 7 병합 및 분할 도구 (고급 결합 행, 셀 분할,...) | ... 그리고 더 |
Excel용 Kutools로 Excel 기술을 강화하고 이전과는 전혀 다른 효율성을 경험해 보세요. Excel용 Kutools는 생산성을 높이고 시간을 절약하기 위해 300개 이상의 고급 기능을 제공합니다. 가장 필요한 기능을 얻으려면 여기를 클릭하십시오...
Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.
- Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
- 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!