Excel 에서 주어진 합계와 일치하는 모든 조합을 찾는 방법은 무엇인가요?
목록 내에서 특정 합계와 동일한 모든 가능한 숫자 조합을 찾는 것은 예산 책정, 계획 수립 또는 데이터 분석 목적 등 다양한 상황에서 많은 Excel 사용자가 마주치는 과제입니다。
이 예제에서는 숫자 목록이 주어졌으며, 목표는 이 목록에서 합계가 480 가 되는 조합을 식별하는 것입니다. 제공된 스크린샷은 이 합계를 달성하는 다섯 가지 가능한 조합 그룹이 있음을 보여줍니다. 예를 들어 300+120+60, 250+120+60+50 등의 조합이 있습니다. 본 문서에서는 Excel 에서 지정된 값과 동일한 합계를 이루는 숫자 조합을 정확히 찾아내는 다양한 방법을 살펴보겠습니다。

솔버 함수로 주어진 합계와 동일한 셀 조합 찾기
Excel 에서 특정 숫자와 동일한 합계를 이루는 셀 조합을 찾는 작업은 처음에는 어렵게 느껴질 수 있지만, 솔버 추가 기능을 사용하면 매우 간단해집니다。 솔버를 설정하고 적절한 셀 조합을 찾는 간단한 단계를 안내해 드리겠습니다。 이를 통해 복잡해 보이던 작업이 쉽고 실현 가능하게 바뀝니다。
1 단계 1: 솔버 추가 기능 활성화
- 파일File>옵션으로 이동한 후,Excel 옵션대화 상자에서 왼쪽 창의추가 기능을 클릭하고, 그 다음이동버튼을 클릭하세요。 스크린샷 참조:

- 그러면추가 기능대화 상자가 나타납니다。 여기서솔버 추가 기능옵션을 선택한 후확인을 클릭하여 이 추가 기능을 성공적으로 설치합니다。

2 단계 2: 수식 입력
솔버 추가 기능을 활성화한 후 셀 B11 에 다음 수식을 입력해야 합니다:
=SUMPRODUCT(B2:B10,A2:A10)

3 단계 3: 솔버를 구성하고 실행하여 결과 얻기
- 데이터Data>솔버를 클릭하여솔버 매개변수대화 상자로 이동합니다。 대화 상자에서 다음 작업을 수행하세요:
- (1.)
버튼을 클릭하여 수식이 있는 셀B11을(를)목표 설정섹션에서 선택하세요; - (2.)그런 다음대상섹션에서값을(를) 선택하고 필요에 따라 대상 값을 입력하세요480;
- (3.)변수 셀 변경으로섹션에서
버튼을 클릭하여 해당 숫자가 표시될 셀 범위B2:B10을(를) 선택하세요。 - (4.)그런 다음추가버튼을 클릭하세요。

- (1.)
- 그러면제약 조건 추가대화 상자가 표시됩니다。
버튼을 클릭하여 셀 범위B2:B10을 선택한 후 드롭다운 목록에서bin을 선택합니다。 마지막으로확인버튼을 클릭하세요。 스크린샷 참조:
- 솔버 매개변수대화 상자에서해결버튼을 클릭합니다。 몇 분 후솔버 결과대화 상자가 팝업되며, 주어진 합계 480 와 일치하는 셀 조합이 열 B 에서 1 로 표시됩니다。솔버 결과대화 상자에서 선택하세요솔버 해결책 유지옵션을 선택하고확인을 클릭하여 대화 상자를 종료하세요。 스크린샷 참조:

주어진 합계와 동일한 모든 숫자 조합 가져오기
Excel 의 고급 기능을 활용하면 특정 합계와 일치하는 모든 숫자 조합을 쉽게 찾아낼 수 있습니다。 이 섹션에서는 주어진 합계와 동일한 모든 숫자 조합을 찾는 두 가지 방법을 소개합니다。
사용자 정의 함수로 주어진 합계와 동일한 모든 숫자 조합 가져오기
특정 집합에서 주어진 값에 도달하는 모든 가능한 숫자 조합을 찾아내려면 아래에 설명된 사용자 정의 함수가 효과적인 도구가 됩니다。
1 단계 1: VBA 모듈 편집기를 열고 코드 복사
- Excel 에서ALT + F11키를 누르면Microsoft Visual Basic for Applications창이 열립니다。
- 삽입Insert>모듈을 클릭하고 모듈 창에 다음 코드를 붙여넣으세요。
VBA 코드: 주어진 합계와 동일한 모든 숫자 조합 가져오기Public Function MakeupANumber(xNumbers As Range, xCount As Long) 'updateby Extendoffice Dim arrNumbers() As Long Dim arrRes() As String Dim ArrTemp() As Long Dim xIndex As Long Dim rg As Range MakeupANumber = "" If xNumbers.CountLarge = 0 Then Exit Function ReDim arrNumbers(xNumbers.CountLarge - 1) xIndex = 0 For Each rg In xNumbers If IsNumeric(rg.Value) Then arrNumbers(xIndex) = CLng(rg.Value) xIndex = xIndex + 1 End If Next rg If xIndex = 0 Then Exit Function ReDim Preserve arrNumbers(0 To xIndex - 1) ReDim arrRes(0) Call Combinations(arrNumbers, xCount, ArrTemp(), arrRes()) ReDim Preserve arrRes(0 To UBound(arrRes) - 1) MakeupANumber = arrRes End Function Private Sub Combinations(Numbers() As Long, Count As Long, ArrTemp() As Long, ByRef arrRes() As String) Dim currentSum As Long, i As Long, j As Long, k As Long, num As Long, indRes As Long Dim remainingNumbers() As Long, newCombination() As Long currentSum = 0 If (Not Not ArrTemp) <> 0 Then For i = LBound(ArrTemp) To UBound(ArrTemp) currentSum = currentSum + ArrTemp(i) Next i End If If currentSum = Count Then indRes = UBound(arrRes) ReDim Preserve arrRes(0 To indRes + 1) arrRes(indRes) = ArrTemp(0) For i = LBound(ArrTemp) + 1 To UBound(ArrTemp) arrRes(indRes) = arrRes(indRes) & "," & ArrTemp(i) Next i End If If currentSum > Count Then Exit Sub If (Not Not Numbers) = 0 Then Exit Sub For i = 0 To UBound(Numbers) Erase remainingNumbers() num = Numbers(i) For j = i + 1 To UBound(Numbers) If (Not Not remainingNumbers) <> 0 Then ReDim Preserve remainingNumbers(0 To UBound(remainingNumbers) + 1) Else ReDim Preserve remainingNumbers(0 To 0) End If remainingNumbers(UBound(remainingNumbers)) = Numbers(j) Next j Erase newCombination() If (Not Not ArrTemp) <> 0 Then For k = 0 To UBound(ArrTemp) If (Not Not newCombination) <> 0 Then ReDim Preserve newCombination(0 To UBound(newCombination) + 1) Else ReDim Preserve newCombination(0 To 0) End If newCombination(UBound(newCombination)) = ArrTemp(k) Next k End If If (Not Not newCombination) <> 0 Then ReDim Preserve newCombination(0 To UBound(newCombination) + 1) Else ReDim Preserve newCombination(0 To 0) End If newCombination(UBound(newCombination)) = num Combinations remainingNumbers, Count, newCombination, arrRes Next i End Sub
2 단계 2: 사용자 정의 수식을 입력하여 결과 얻기
코드를 붙여넣은 후 코드 창을 닫고 워크시트로 돌아갑니다。 빈 셀에 다음 수식을 입력하여 결과를 출력한 후Enter키를 눌러 모든 조합을 가져오세요。 스크린샷 참조:
=MakeupANumber(A2:A10,B2)

=TRANSPOSE(MakeupANumber(A2:A10,B2))

- 이 사용자 정의 함수는 Excel 365 및 2021 에서만 작동합니다。
- 이 방법은 양수에만 효과적이며, 소수점 값은 자동으로 가장 가까운 정수로 반올림되고, 음수는 오류를 발생시킵니다。
강력한 기능으로 주어진 합계와 동일한 모든 숫자 조합 가져오기
앞서 설명한 함수의 제한 사항을 고려하여, 모든 Excel 버전과 호환되는 신속하고 포괄적인 솔루션인 Kutools for Excel 의 숫자 채우기 기능을 추천합니다。 이 기능은 양수, 소수, 음수까지 모두 처리할 수 있으며, 주어진 합계와 동일한 모든 조합을 빠르게 찾아냅니다。
- Kutools Kutools>콘텐츠>숫자 채우기를 클릭하세요。 스크린샷 참조:

- 그러면숫자 채우기대화 상자에서
버튼을 클릭하여 사용할 숫자 목록을원본 범위에서 선택한 후합계텍스트 상자에 총 숫자를 입력합니다。 마지막으로확인버튼을 클릭하세요。 스크린샷 참조:
- 그러면 결과를 표시할 셀을 선택하라는 메시지 창이 팝업됩니다。 이후확인을 클릭하세요。 스크린샷 참조:

- 이제 주어진 숫자와 동일한 모든 조합이 아래 스크린샷과 같이 표시되었습니다:

VBA 코드로 특정 범위의 합계와 동일한 모든 숫자 조합 가져오기
때때로 특정 범위 내의 합계와 동일한 모든 가능한 숫자 조합을 찾아야 하는 상황이 발생할 수 있습니다. 예를 들어, 총합이 470 과 480 사이에 있는 모든 가능한 숫자 그룹을 찾아야 할 수도 있습니다。
특정 범위 내의 값과 동일한 합계를 이루는 모든 가능한 숫자 조합을 찾아내는 것은 Excel 에서 매우 흥미롭고 실용적인 과제입니다。 이 섹션에서는 이 작업을 해결하기 위한 VBA 코드를 소개합니다。
1 단계 1: VBA 모듈 편집기를 열고 코드 복사
- Excel 에서ALT + F11키를 누르면Microsoft Visual Basic for Applications창이 열립니다。
- 삽입Insert>모듈을 클릭하고 모듈 창에 다음 코드를 붙여넣으세요。
VBA 코드: 특정 범위의 합계와 동일한 모든 숫자 조합 가져오기Sub Getall_combinations() 'Updateby Extendoffice Dim xNumbers As Variant Dim Output As Collection Dim rngSelection As Range Dim OutputCell As Range Dim LowLimit As Long, HiLimit As Long Dim i As Long, j As Long Dim TotalCombinations As Long Dim CombTotal As Double Set Output = New Collection On Error Resume Next Set rngSelection = Application.InputBox("Select the range of numbers:", "Kutools for Excel", Type:=8) If rngSelection Is Nothing Then MsgBox "No range selected. Exiting macro.", vbInformation, "Kutools for Excel" Exit Sub End If On Error GoTo 0 xNumbers = rngSelection.Value LowLimit = Application.InputBox("Select or enter the low limit number:", "Kutools for Excel", Type:=1) HiLimit = Application.InputBox("Select or enter the high limit number:", "Kutools for Excel", Type:=1) On Error Resume Next Set OutputCell = Application.InputBox("Select the first cell for output:", "Kutools for Excel", Type:=8) If OutputCell Is Nothing Then MsgBox "No output cell selected. Exiting macro.", vbInformation, "Kutools for Excel" Exit Sub End If On Error GoTo 0 TotalCombinations = 2 ^ (UBound(xNumbers, 1) * UBound(xNumbers, 2)) For i = 1 To TotalCombinations - 1 Dim tempArr() As Double ReDim tempArr(1 To UBound(xNumbers, 1) * UBound(xNumbers, 2)) CombTotal = 0 Dim k As Long: k = 0 For j = 1 To UBound(xNumbers, 1) If i And (2 ^ (j - 1)) Then k = k + 1 tempArr(k) = xNumbers(j, 1) CombTotal = CombTotal + xNumbers(j, 1) End If Next j If CombTotal >= LowLimit And CombTotal <= HiLimit Then ReDim Preserve tempArr(1 To k) Output.Add tempArr End If Next i Dim rowOffset As Long rowOffset = 0 Dim item As Variant For Each item In Output For j = 1 To UBound(item) OutputCell.Offset(rowOffset, j - 1).Value = item(j) Next j rowOffset = rowOffset + 1 Next item End Sub
2 단계 2: 코드 실행
- 코드를 붙여넣은 후F5키를 눌러 이 코드를 실행합니다。 첫 번째 팝업 대화 상자에서 사용할 숫자 범위를 선택하고확인을 클릭하세요。 스크린샷 참조:

- 두 번째 메시지 창에서 하한 값을 선택하거나 입력한 후확인을 클릭하세요。 스크린샷 참조:

- 세 번째 메시지 창에서 상한 값을 선택하거나 입력한 후확인을 클릭하세요。 스크린샷 참조:

- 마지막 메시지 창에서 결과가 출력될 시작 셀을 선택한 후확인을 클릭하세요。 스크린샷 참조:

결과
이제 각각의 조건을 충족하는 조합이 선택한 출력 셀부터 워크시트의 연속된 행에 나열됩니다。
Excel 에서는 특정 합계가 되는 숫자 그룹을 찾는 여러 가지 방법을 제공합니다. 각 방법은 작동 방식이 다르므로 Excel 에 익숙한 정도와 프로젝트 요구 사항에 따라 적절한 방법을 선택할 수 있습니다。 더 많은 Excel 팁과 기능을 알아보고 싶으시다면,저희 웹사이트에서 수천 개의 튜토리얼을 확인해 보세요。 읽어주셔서 감사드리며, 앞으로도 유용한 정보를 제공해 드릴 수 있기를 기대합니다!
관련 문서:
- 모든 가능한 조합 나열 또는 생성
- 예를 들어, 다음과 같은 두 열의 데이터가 있고, 이제 왼쪽 스크린샷과 같이 두 값 목록을 기반으로 모든 가능한 조합 목록을 생성하고자 합니다. 값이 적다면 하나하나 조합을 나열할 수 있지만, 여러 값이 포함된 여러 열의 가능한 조합을 나열해야 한다면, Excel 에서 이 문제를 해결하는 데 도움이 되는 몇 가지 빠른 팁을 소개합니다。
- 단일 열에서 모든 가능한 조합 나열
- Excel 에서 아래 스크린샷과 같은 결과를 얻기 위해 단일 열 데이터에서 모든 가능한 조합을 반환하려는 경우, 이 작업을 처리할 수 있는 빠른 방법이 있나요?
- 3 개 이상의 열에서 모든 조합 생성
- 예를 들어, 3 개의 데이터 열이 있으며, 이제 아래 스크린샷과 같이 이 3 개 열의 데이터를 기반으로 모든 가능한 조합을 생성하거나 모든 조합 나열 하려고 합니다. Excel 에서 이 작업을 해결할 수 있는 좋은 방법이 있나요?
- 모든 가능한 4 자리수 조합 목록 생성
- 어떤 경우에는 숫자 0 에서 9 까지의 모든 가능한 4 자리수 조합 목록을 생성해야 할 수도 있습니다. 즉, 0000, 0001, 0002…9999 의 목록을 생성해야 한다는 의미입니다. Excel 에서 이러한 목록 작업을 빠르게 해결하기 위해 몇 가지 팁을 소개합니다。
최고의 오피스 생산성 도구
| 🤖 | KUTOOLS AI 도우미: 다음을 기반으로 데이터 분석 혁신하기:지능형 실행 | 코드 생성| 사용자 지정 수식 생성 | 데이터 분석 및 차트 생성| 향상된 함수 호출… |
| 인기 기능:찾기, 강조 표시 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 결합 또는 셀 처리 | 공식을 사용하지 않는 반올림... | |
| 슈퍼 LOOKUP:다중 조건 VLookup | 다중 값 VLookup | 여러 시트에서 VLookup | 퍼지 매치.... | |
| 고급 드롭다운 목록:드롭다운 목록 빠르게 생성 | 종속형 드롭다운 목록 | 다중 선택 드롭다운 목록.... | |
| 열 관리자:특정 수의 열 추가|열 이동|숨겨진 열의 표시 상태 전환|범위 및 열 비교... | |
| 추천 기능:그리드 포커스 | 디자인 보기 |향상된 수식 표시줄 | 워크북 및 시트 관리자 | 자원 라이브러리(자동 텍스트)| 날짜 선택기 | 워크시트 병합 | 암호화/셀 해독 | 목록 기반 이메일 발송 | 슈퍼 필터 | 특수 필터(굵은 글꼴이 있는 셀 필터링/기울임꼴/취소선。。。) 。。。 | |
| 상위 15 도구 모음:12 텍스트도구(텍스트 추가,특정 문자 삭제, ...)| 50+차트유형(간트 차트, ...)| 40+ 실용적인수식(생일을 기준으로 나이 계산, ...)| 19 삽입도구(QR 코드 삽입,경로에서 그림 삽입, ...)| 12 변환도구(단어로 변환하기,환율 변환, ...)| 7 병합 및 분할도구(고급 행 병합,셀 분할, ...)|。。。 외에도 더 많은 기능 |
Kutools for Excel 로 Excel 실력을 한 단계 끌어올리고 전에 없던 효율성을 경험하세요。Kutools for Excel 는 생산성을 향상시키고 저장 시간하기 위한 300 개 이상의 고급 기능을 제공합니다。지금 가장 필요한 기능을 얻으려면 여기를 클릭하세요。。。
Office Tab Office 에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만들어 줍니다
- Word, Excel, PowerPoint, Publisher, Access, Visio 및 Project 에서 탭 기반 편집 및 읽기 활성화。
- 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 생성합니다。
- 매일 수백 번의 마우스 클릭을 줄여 50% 만큼 생산성을 높여줍니다!
모든 Kutools 애드인。 하나의 설치 프로그램
Kutools for Office스위트는 Excel, Word, Outlook 및 PowerPoint 용 추가 기능과 Office Tab Pro 을 번들로 제공하여 Office 앱 전반에서 협업하는 팀에 이상적입니다。
- 올인원 스위트— Excel, Word, Outlook 및 PowerPoint 애드인 + Office Tab Pro
- 하나의 설치 프로그램, 하나의 라이선스— 몇 분 안에 설정 완료(MSI 지원)
- 함께 사용할수록 더 효과적— Office 앱 전반에서 생산성 향상
- 30 일간 전체 기능 무료 체험— 등록이나 신용카드 불필요
- 최고의 가성비— 개별 애드인 구매 대비 절약


버튼을 클릭하여 수식이 있는 셀B11을(를)목표 설정섹션에서 선택하세요;



버튼을 클릭하여 사용할 숫자 목록을원본 범위에서 선택한 후합계텍스트 상자에 총 숫자를 입력합니다。 마지막으로확인버튼을 클릭하세요。 스크린샷 참조:





