Excel : 주어진 합계에 더해지는 숫자의 하위 집합을 찾으십니까?


답변:


25

Solver 애드 인 *으로 가능합니다. 다음 단계는 Excel 2007 및 2010에서 효과적이었습니다.

  1. 결과를 보유 할 셀을 지정하십시오 (이 예에서는 C1). 이것은 목표 셀이며 스크래치 작업에 사용할 수있는 열 (이 예에서는 B1 : B100)
  2. 대상 군에서 수식 "= SUMPRODUCT (A1 : A100, B1 : B100)"(따옴표 없음)을 입력하십시오. 이것은 A1 * B1 + A2 * B2 + ...의 합을 계산합니다.
  3. 솔버 열기 (데이터 탭, 분석 그룹)를 선택하십시오.
  4. 대상 군은 분명해야합니다 (이 예에서는 $ C $ 1).
  5. 'Equal To :'에 대해 'Value of :'를 선택하고 원하는 값을 입력하십시오.
  6. '셀을 변경하여'에서 "$ B $ 1 : $ B $ 100"을 입력하십시오 (따옴표는 없으며이 값을 0으로 초기화해야 할 수도 있습니다)
  7. 변경할 수있는 셀에 제약 조건을 추가하십시오. 풀다운에서 'bin'(바이너리)을 선택하십시오. 이렇게하면이 셀의 값이 0 (해당 A 셀을 합에서 제거) 또는 1 (해당 A 셀을 합에 추가)로 제한합니다.
  8. 'Solve'를 클릭하고 기다리십시오. 찾고있는 부분 집합의 일부는 B 열에 1이 있습니다.

예


솔버가 오랜 시간이 걸리는 경우 분명히 작동하지 않는 행을 제거하여 해결할 수 있습니다 (총액은 달러이며 한 행에만 0이 아닌 센트가 있습니다)


보너스 : 셀에 조건부 서식을 추가하여 원하는 셀을 자동으로 강조 표시 할 수 있습니다. 서식을 지정할 모든 셀을 선택하고 (홈 탭) >> (스타일 그룹) >> 조건부 서식 >> 새 규칙에서 '수식을 사용하여 서식을 지정할 셀 결정'을 선택하십시오. 수식에 '= $ B1 = 1'(따옴표 없음)을 입력하면 B 열의 해당 행이 1 인 경우 true로 평가됩니다. 형식의 경우 원하는 항목 (굵게, 기울임 꼴, 녹색 채우기, 기타).

중요한 행을 찾는 또 다른 쉬운 방법은 열 B Z-> A를 정렬하는 것이며 모든 1이 맨 위에 오게됩니다.


*이 단계를 사용하여 솔버 추가 기능을 설치할 수 있습니다

  1. Microsoft Office 단추를 클릭 한 다음 Excel 옵션을 클릭하십시오.
  2. 추가 기능을 클릭 한 다음 관리 상자에서 Excel 추가 기능을 선택합니다.
  3. 이동을 클릭하십시오.
  4. 사용 가능한 추가 기능 상자에서 솔버 추가 기능 확인란을 선택한 다음 확인을 클릭합니다. (사용 가능한 추가 기능 상자에 솔버 추가 기능이 없으면 찾아보기를 클릭하여 추가 기능을 찾습니다.)
  5. Solver Add-in이 컴퓨터에 현재 설치되어 있지 않다는 메시지가 표시되면 예를 클릭하여 설치하십시오.

1
Excel 2013에서는 옵션 메뉴에서 "정수 제약 조건 무시"를 선택 해제해야합니다. 그렇지 않으면 0과 1에 대해 INT가 아닌 값을 얻습니다
Omar Shahine

1
이 작업을 올바르게 수행하려면 다음과 같이하십시오. 1. 셀 C1의 수식은 sum이 아니라 sumPRODUCT 여야합니다. 2. 열 B의 셀에는 모두 입력이 없어야합니다.

감사! 나에게 이전 단계는 여전히 작동하지만 배열 수식 기능에 의존하지 않기 때문에 sumproduct가 더 좋습니다.
Nate Parsons

어쨌든 모든 조합을 찾으려면 ... 해결사가 하나의 솔루션을 찾았지만 다른 솔루션을 찾는 방법은 무엇입니까 ?? 내 배열은 다음과 같습니다. v = [1100, 1105, 11830, 14790, 2325, 2455, 2555, 2935, 3050, 3150, 3185, 3370, 3475, 350, 3530, 3590, 3680, 3745, 885, 9624] sum = 43029 ... solution1 = [350, 1100, 2325, 2455, 2555, 2935, 3150, 3745, 9624, 14790], solution2 = [350, 885, 1100, 1105, 2325, 2455, 2555, 3530, 3590, 3680 , 9624, 11830]
ihightower

2

저렴한 Excel 추가 기능 SumMatch가 있으며 , 이는 대상 합계에 더해지는 숫자의 하위 집합을 강조 표시합니다.

여기에 이미지 설명을 입력하십시오


1
안녕하세요 AIsoft, 잘 찾았습니다. 다음에 더 많은 정보를 추가 할 수 있습니다.
nixda

@pnuts 실수 했나요? AUD $ 30의 의미를 이해하지 못합니다
nixda

@pnuts 아 좋아요, 좋은 지적입니다.
nixda

6
나 자신을위한 참고 : AUD $ 30 = 30 호주 달러. 고정 컬럼 엑셀 셀 [AUD30] 위해 참조되지 ... : D
nixda

1
명확한 지시가 없기 때문에 가격표는 단점입니다. 실제로 제품 웹 사이트에서 1 문장 이상 1 장 이상의 사진이 있습니다.
Nate Parsons
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.