Excel에서 모든 순열을 생성하는 방법
Written by
Reviewed by
Last updated on 10월 18, 2023
이 튜토리얼에서는 Excel에서 모든 순열을 생성하는 방법을 설명합니다.
모든 순열 생성
VBA 매크로를 사용하면 주어진 문자 집합의 가능한 모든 순열을 생성할 수 있습니다. 작은 코드를 만들고 입력 문자를 입력하기만 하면 됩니다.
- 리본메뉴에서 개발 도구 > Visual Basic으로 이동합니다. 이 탭을 사용할 수 없는 경우 개발도구 탭을 추가하는 방법을 알아보세요.
- VBA 창에서 삽입 > 모듈로 이동합니다.
- 오른쪽의 코드 창에 다음 코드를 붙여 넣고 저장합니다.
Sub 문자열가져오기()
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("순열할 텍스트를 입력하세요.:", "순열", , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "순열이 너무 많습니다!", vbInformation, "순열"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call 순열가져오기("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub 순열가져오기(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 순열가져오기(Str1 Mid(Str2, i, 1), Left(Str2, i - 1) Right(Str2, xLen - i), xRow)
Next
End If
End Sub
- 이제 문자열가져오기 매크로를 만들었으며 실행할 수 있습니다. 리본메뉴에서 개발 도구 > 매크로로 이동합니다.
- 매크로가 아직 선택되어 있지 않은 경우 매크로를 선택하고 실행을 클릭합니다.
- 팝업 창에서 순열이 필요한 문자를 입력하고 (여기서는 abcde) 확인을 클릭합니다.
결과적으로 A 열에 입력한 문자의 가능한 모든 순열(120개)이 표시됩니다.
위에서 설명한 매크로 외에도 Excel에는 주어진 숫자에 대해 얼마나 많은 순열이 발생하는지 계산할 수 있는 함수인 PERMUT 함수가 내장되어 있습니다. 이 함수는 텍스트가 아닌 숫자에만 작동합니다.