5000 또는 2개 및 3개 셀 vba와 동일한 최상의 조합을 찾기 위해 열을 재정렬합니다.

5000 또는 2개 및 3개 셀 vba와 동일한 최상의 조합을 찾기 위해 열을 재정렬합니다.

우리 목표와 일치하도록 열을 재정렬하기 위해 vba 코드를 찾으려고 노력해 왔습니다. 솔버가 아마도 솔루션일 수도 있지만 인터넷이나 Excel에서 솔루션을 찾을 수 없다는 것을 알고 있습니다. 예 :

여기에 이미지 설명을 입력하세요

vba가 실행된 후 다음과 같이 재정렬됩니다.

여기에 이미지 설명을 입력하세요

원하는 결과는 각 행의 합이 5000이 되고 숫자는 한 번만 사용하면 된다는 것입니다. 생각이 있으시면 조언 부탁드립니다. (추가 결과는 무시하세요. 설명을 위한 것입니다.)

답변1

최소 제곱법을 사용하는 솔버를 통한 솔루션입니다.

여기에 이미지 설명을 입력하세요

A2:B7, F1 - source data
C2:C7 - the result (initial values are 1 for all cells)

방식:

B8=SUM(B2:B7)
F2=ROUND(B8/F1,0)
F3=B8/F2
H2=IF(ROW()>$F$2+1,"",ROW()-1) - drag down till H7
I2=SUMIF($C$2:$C$7,H2,$B$2:$B$7) - drag down till I7
J2=IF(I2=0,0,(I2-$F$3)^2) - drag down till J7
J8=SUM(J2:J7)

솔버 매개변수:

Optimization: $J$8 => minimal value
Altered cells: $C$2:$C$7
Restrictions: $C$2:$C$7 is integer
              $C$2:$C$7 >= 1
              $C$2:$C$7 <= $F$2

스크린샷에서 찾은 솔루션입니다.

관련 정보