위 그림에 따라 공식을 설정한 후 나머지 작업은 VBA 에서 수행되므로 셀 F6 만 있으면 워크시트를 계속 계산할 수 있습니다. = 1, F7=0, 적합한 그룹을 찾아 결과를 출력합니다 (19 행 이하). 여기서 1 군, 2 군, 3 군 인원이 충분하고 그 중 2 개는 6 이고 수동으로 군순서를 조정할 수 있습니다.
Sub? Sss ()
대답? =? 19
뭐 때문에? 나? =? 1? 어디 가? 10000?
Z 1? =? "1 그룹:":? Z2? =? "두 번째 그룹:":? Z3? =? "세 번째 그룹:"
만약? 세포 (6, 6)? & lt& gt? 1? 아니면? 세포 (7, 6)? & lt& gt? 0? 그리고는요?
ActiveSheet 입니다. 계산
고토? 10
끝? 만약
뭐 때문에? J? =? 2? 어디 가? 17
선택? 사건? 세포 (j, 3)
사건? 1
Z 1? =? Z 1? & amp? 세포 (j, 1)? & amp? ","
사건? 2
Z2? =? Z2? & amp? 세포 (j, 1)? & amp? ","
사건? 기타
Z3? =? Z3? & amp? 세포 (j, 1)? & amp? ","
끝? 고르다
그리고 나서
세포 (하나, 1)? =? 왼쪽 (z 1,? Len(z 1)? -응? 1)? & amp? ";" -응? & amp? 왼쪽 (z2, Len(z2)? -응? 1)? & amp? ";" -응? & amp? 왼쪽 (z3, Len(z3)? -응? 1)
대답? =? 대답? +? 1
10
그리고 나서
끝? 잠수함
위쪽 루프의 상한은 재계산을 설정하는 횟수입니다. 무작위 함수이기 때문에 결과를 찾을 수 있다는 보장은 없습니다. 루프 상한선이 클수록 결과를 찾을 확률이 높지만 실행 시간이 길어집니다. 이 코드는 여전히 매우 거칠다. 10000 회 반복하면 5 ~ 6 개의 결과를 찾을 수 있고, 경우에 따라 1 개의 결과만 찾을 수 있습니다.