Excel에서 모든 가능한 순열을 생성하거나 나열하려면 어떻게 해야 하나요?
예를 들어, XYZ라는 세 글자가 있을 때, 이 세 글자에 기반하여 여섯 가지 다른 결과를 얻기 위해 모든 가능한 순열을 나열하고 싶습니다. 즉, XYZ, XZY, YXZ, YZX, ZXY 및 ZYX와 같은 결과를 얻고자 합니다. Excel에서는 다양한 글자 수에 따라 모든 순열을 빠르게 생성하거나 나열하려면 어떻게 해야 할까요?
VBA 코드를 사용하여 문자에 기반한 모든 가능한 순열 생성 또는 나열하기
VBA 코드를 사용하여 문자에 기반한 모든 가능한 순열 생성 또는 나열하기
다음 VBA 코드는 특정 글자 수에 따라 모든 순열을 나열하는 데 도움이 될 수 있습니다. 아래 단계를 따르세요:
1. ALT + F11 키를 눌러 Microsoft Visual Basic for Applications 창을 엽니다.
2. 삽입 > 모듈을 클릭하고 모듈 창에 다음 코드를 붙여넣습니다.
VBA 코드: Excel에서 모든 가능한 순열 나열하기
Sub GetString()
'Updateby Extendoffice
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen < 2 Then
Range("A" & xRow) = Str1 & Str2
xRow = xRow + 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
Next
End If
End Sub
3. 그런 다음 이 코드를 실행하기 위해 F5 키를 누르면, 원하는 순열을 모두 나열하기 위해 입력해야 할 문자를 알려주는 프롬프트 상자가 나타납니다. 스크린샷 참조:
4. 문자를 입력한 후 확인 버튼을 클릭하면, 활성 워크시트의 A 열에 모든 가능한 순열이 표시됩니다. 스크린샷 참조:
참고: 입력된 문자 길이가 8자 이상인 경우 이 코드는 너무 많은 순열로 인해 작동하지 않습니다.
여러 열에서 모든 가능한 조합 나열 또는 생성하기
여러 열 데이터에 기반하여 모든 가능한 조합을 생성해야 하는 경우, 이를 처리하기 위한 좋은 방법은 없을 수 있습니다. 하지만 Kutools for Excel의 모든 조합 나열 기능을 사용하면 모든 가능한 조합을 빠르고 쉽게 나열할 수 있습니다. Kutools for Excel을 다운로드하려면 여기를 클릭하세요!
Kutools for Excel: 300개 이상의 유용한 Excel 추가 기능이 포함되어 있으며, 30일 동안 제한 없이 무료로 사용해 볼 수 있습니다. 지금 다운로드하고 무료로 사용해 보세요!
최고의 오피스 생산성 도구
🤖 | Kutools AI Aide: 지능형 실행을 기반으로 데이터 분석 혁신 지능형 실행 | 코드 생성 | 사용자 정의 수식 생성 | 데이터 분석 및 차트 생성 | Kutools Functions 호출… |
인기 기능: 중복 찾기, 강조 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 병합 | 반올림... | |
슈퍼 LOOKUP: 다중 조건 VLookup | 다중 값 VLookup | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 드롭다운 목록 신속 생성 | 의존형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
열 매니저: 지정 개수 열 추가 | 열 이동 | 숨겨진 열 표시 상태 전환 | 범위 및 열 비교 ... | |
주요 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 & 시트 관리 | 자동 텍스트 라이브러리 | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록별 이메일 보내기 | 슈퍼 필터 | 특수 필터 (굵게/이탤릭/취소선 필터...)... | |
Top15 도구 세트: 12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...) | 50+ 차트 유형(간트 차트, ...) | 40+ 실용 수식(생일을 기반으로 나이 계산, ...) | 19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...) | 12개 변환 도구(단어로 변환하기, 통화 변환, ...) | 7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...) | ... 그리고 그 외 |
Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...
Office Tab이 오피스에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다
- Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
- 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
- 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!