質問

私はスポーツ選手のリスト、彼らの地位、それらの選手に割り当てられた給与、そして投影されたポイントの数のリストを持つ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の問題を解決するために、「選択した」プレイヤーを集計し、そのリストにはそれぞれのmin / maxがあるリストがあります。そのため、この例では1 pg、1 sg、および1gが必要です。そのため、Min 2、Min 1、Min 1、M max 2、gを持つSGカラムを1つ、MAX 2のPGカラムが必要です。 3つのmin 3と3のmax 3を持つpg / sgを追加する列は、ソルバー基準の一部がすべて最小/最大になる必要があります。

最初の列をPOS1とPOS2に分割して、2つの可能な位置を分割しましたが、ソルバー関数の両方を含める方法を理解することはできません。 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
.

SO、ソルバー基準は次のとおりです。

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
.

各プレイヤーは、2つの位置(POS1またはPOS2)の1つが基準に合うため、スロットに収まります。明らかに合計は合いませんので、これは実行可能な解決策ではないでしょうが、それはほんの一例です。

私は十分な詳細を提供したら、私に知らせないでください、そして私はそれ以上説明して幸せになるでしょう。事前にありがとうございます。

役に立ちましたか?

解決

あなたの給料帽子が50,000ドルであるので、あなたの質問はまだ少し曖昧ですが、選択した63,000ドルのプレーヤーを表示します。

仮定:
1.それ以来、5人のプレーヤーがプレーヤーフロアの数と、あなたのプレーヤーリストからなるチームを50,000ドル以下にする唯一の方法です。これはおそらくファンタジーフープであり、7または8が欲しいですが、ソリューションは依然として幅広いオプションリストと給与の下のリストを持つ8人のプレーヤーに勤務してください。
2.ここでは、どのようなものも提供していないため、少なくとも調整する必要がありませんので、ほとんどいいえVBAがないと仮定します。

私の解決策(まだテスト中のもの)は、POS1とPOS2のための投入/キャスト(またはVBAと同等の)を位置番号のテキスト(すなわち、1= Pg、2= 2= Sgなど)に投入することです。

次に、PGが11であるように=concatenate(Pos1, Pos2)が12、PG / SGは12などである(「G」はこのシナリオでは11台のものです)。

ポジションテーブルを最小/最大/ 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