Excel에서 모든 순열을 생성하는 방법

Written by

Editorial Team

Reviewed by

Laura Tsitlidze

Last updated on 10월 18, 2023

이 튜토리얼에서는 Excel에서 모든 순열을 생성하는 방법을 설명합니다.

vba 순열 인트로

모든 순열 생성

VBA 매크로를 사용하면 주어진 문자 집합의 가능한 모든 순열을 생성할 수 있습니다. 작은 코드를 만들고 입력 문자를 입력하기만 하면 됩니다.

  1. 리본메뉴에서 개발 도구 > Visual Basic으로 이동합니다. 이 탭을 사용할 수 없는 경우 개발도구 탭을 추가하는 방법을 알아보세요.

vba 순열 개발도구

  1. VBA 창에서 삽입 > 모듈로 이동합니다.

vba 순열 모듈

  1. 오른쪽의 코드 창에 다음 코드를 붙여 넣고 저장합니다.
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

vba 순열 생성 코드

  1. 이제 문자열가져오기  매크로를 만들었으며 실행할 수 있습니다. 리본메뉴에서 개발 도구 > 매크로로 이동합니다.

vba 매크로버튼

  1. 매크로가 아직 선택되어 있지 않은 경우 매크로를 선택하고 실행을 클릭합니다.

vba 순열 매크로실행

  1. 팝업 창에서 순열이 필요한 문자를 입력하고 (여기서는 abcde) 확인을 클릭합니다.

vba 순열 텍스트입력창

결과적으로 A 열에 입력한 문자의 가능한 모든 순열(120개)이 표시됩니다.

vba 순열 결과

위에서 설명한 매크로 외에도 Excel에는 주어진 숫자에 대해 얼마나 많은 순열이 발생하는지 계산할 수 있는 함수인 PERMUT 함수가 내장되어 있습니다. 이 함수는 텍스트가 아닌 숫자에만 작동합니다.

AI Formula Generator

무료로 체험하기

전체 노하우 튜토리얼 보기