문제

스포츠 선수 목록, 직위, 해당 선수에게 할당된 급여 및 예상 포인트 금액이 포함된 Excel 시트가 있습니다.

저는 현재 솔버를 사용하여 특정 포지션 제한과 미리 정의된 급여 한도 내에서 가능한 최고의 스포츠 선수 그룹을 만들고 있습니다.

내 구체적인 예에서 다양한 플레이어 위치는 다음과 같습니다.PG, SG, SF, PF, C, G, F.G는 PG 또는 SG일 수 있고 F는 SF 또는 PF일 수 있습니다.

이 솔버는 현재 작동 중이지만 경우에 따라 플레이어가 여러 위치를 가질 수 있습니다.예를 들어 플레이어 A는 SF 또는 SG로 사용될 수 있습니다.

문제의 플레이어가 두 슬롯 중 하나에서 사용될 수 있도록 솔버 기능 내에서 이를 설명할 수 있는 방법이 있습니까?

설명을 돕기 위해 사용되는 데이터의 몇 가지 예를 제공하겠습니다.다음은 플레이어 목록의 작은 샘플입니다.

Position Player             Salary     Game                Points   Pos 1   Pos 2
PF/C    Kevin Love          $10,400     Pho@Min 09:30PM ET  53.17    PF      C
PG/SG   Stephen Curry       $10,000     GS@Bkn 07:30PM ET   47.50    PG      SG
SG/SF   James Harden        $9,500  LAL@Hou 08:00PM ET  41.13    SG      SF 
PF/C    LaMarcus Aldridge   $9,500  Orl@Por 10:00PM ET  45.22    PF      C
PF/C    Anthony Davis       $9,200  Was@NO 08:00PM ET   42.97    PF      C
PF/C    Blake Griffin       $9,000  Bos@LAC 10:30PM ET  42.66    PF      C
PG      John Wall           $8,900  Was@NO 08:00PM ET   42.09    PG
PF/C    Dwight Howard       $8,700  LAL@Hou 08:00PM ET  41.19    PF      C
SG/SF   Paul George         $8,600  Ind@Atl 07:30PM ET  40.06    SG      SF
PF      Paul Millsap        $8,400  Ind@Atl 07:30PM ET  37.96    PF
PF/C    Al Horford          $8,300  Ind@Atl 07:30PM ET  37.33    PF      C

G 및 F 문제를 해결하기 위해 "선택된" 플레이어를 집계하는 목록이 있고 해당 목록에는 각각의 최소/최대 값이 있습니다.따라서 이 예에서는 PG 1개, SG 1개, G 1개가 필요합니다.따라서 최소값이 1이고 최대값이 2인 PG 열, 최소값이 1이고 최대값이 2인 SG 열, 그리고 최소값이 3이고 최대값이 2인 PG/SG를 함께 추가하는 G 열이 있습니다. 최대 3개.그런 다음 솔버 기준의 일부는 모든 최소/최대가 일치해야 한다는 것입니다.

가능한 두 위치를 분리하기 위해 첫 번째 열을 POS1과 POS2로 분할했지만 솔버 기능에 두 위치를 모두 포함하는 방법을 알 수 없습니다.Kevin Love와 같은 플레이어의 경우 솔버가 그가 PF, F 또는 C 스팟에 배치될 수 있다는 점을 고려하기를 바랍니다.

그 테이블은 다음과 같습니다.

    PG  SG  SF  PF  C   G   F   Ttl
Min 1   1   1   1   1   3   3   8
Max 3   3   3   3   2   4   4   8
Cur 1   3   1   2   1   4   3   8

예를 들어 해 찾기 기준은 다음과 같습니다.

Sum of Salary <= Salary Cap (50000)
PG Cur >= PG Min
Repeat for all Min
PG Cur <= PG Max
Repeat for all Max
Maximize Points

마지막으로 해결 방법의 예는 다음과 같습니다.

PG   Stephen Curry    $10,000     47.5
SG   James Harden     $9,500      41.13
SF   Paul George      $8,600      40.06
PF   Dwight Howard    $8,700      41.19
C    Blake Griffin    $9,000      42.66
G    John Wall        $8,900      42.09
F    Al Horford       $8,300      37.33
Total                 $63,000     292.5

두 포지션(POS1 또는 POS2) 중 하나가 기준에 적합하므로 각 플레이어는 자신의 슬롯에 맞습니다.당연히 합계가 맞지 않으므로 실행 가능한 솔루션은 아니지만 단지 예일 뿐입니다.

자세한 내용을 충분히 제공해 드렸기를 바라지만, 그렇지 않은 경우 알려주시면 기꺼이 더 자세히 설명해 드리겠습니다.미리 감사드립니다.

도움이 되었습니까?

해결책

귀하의 연봉 상한액은 $50,000인데 선택된 플레이어는 $63,000로 표시되기 때문에 귀하의 질문은 여전히 ​​다소 모호합니다.

가정:
1.당신은 5명의 플레이어를 원합니다. 왜냐하면 그것이 플레이어 수이고 $50,000 미만의 플레이어 목록으로 구성된 팀을 구성할 수 있는 유일한 방법이기 때문입니다.이것은 아마도 판타지 농구이고 당신은 7이나 8을 원하지만 솔루션은 더 넓은 옵션 목록과 더 낮은 급여를 가진 8명의 플레이어에게 여전히 작동해야 합니다.
2.또한 VBA를 제공하지 않았거나 최소한 조정할 필요가 없기 때문에 여기에는 VBA가 거의 없다고 가정하겠습니다.

내 솔루션(아직 테스트 중)은 Pos1 및 Pos2에 대해 위치 번호 텍스트(예: 1 = PG, 2=SG 등)에 던지거나 캐스팅하는 것입니다.

다음, =concatenate(Pos1, Pos2) 즉, PG는 11이고 PG/SG는 12입니다.(이 시나리오에서는 "G"도 11이므로 내 논리에 결함이 있을 수 있습니다.)

Min/Max/Cur 값으로 포지션 테이블을 변경하면 다음과 같습니다.

Pos.    | PG | G  | PG/SG | SG | SG/SF | SF/PF | F  | PF | PF/C | C  
--------------------------------------------------------------------  
Pos1    | 1  | 1  | 1     | 2  | 2     | 3     | 3  | 4  | 4    | 5  
Pos2    | 1  | 2  | 2     | 2  | 3     | 4     | 4  | 4  | 5    | 5  
PosNbr  | 11 | 12 | 12    | 22 | 23    | 34    | 34 | 44 | 45   | 55  
--------------------------------------------------------------------  
Min     | 1  | 3  | 3     | 1  |       | 3     | 4  | 1  |      | 1  
Max     | 3  | 4  | 4     | 3  |       | 4     | 4  | 3  |      | 2  
Curr    | 1  | 1  | 1     | 0  | 0     | 0     | 0  | 0  | 3    | 0  

(가치는 내 자신의 것입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top