اكسل حلالا مع متغيرات الإدخال متعددة
سؤال
لدي ورقة اكسل يحتوي على قائمة من اللاعبين الرياضيين, مواقفهم, راتب المخصصة لهؤلاء اللاعبين, والمبلغ المتوقع من النقاط.
أنا حاليا باستخدام حلالا لخلق أفضل مجموعة من اللاعبين الرياضيين ممكن مع بعض القيود موقف وضمن سقف الراتب محددة مسبقا.
في المثال المحدد الخاص بي ، مواقف اللاعب المختلفة هي:بغ ، سغ ، سف ، يف ، ج ، ز ، وف.لاحظ أن ز يمكن أن يكون إما خريج أو سغ ، و و يمكن أن يكون إما سادس أو يف.
يعمل هذا الحل حاليا ، ولكن في بعض الحالات قد يكون للاعب مواقع متعددة.لذلك ، على سبيل المثال ، لاعب ويمكن استخدام سادس أو سان جرمان.
هل هناك أي طريقة لحساب هذا ضمن وظيفة حلالا بحيث لاعب في السؤال يمكن استخدامها في أي فتحة?
للمساعدة في التوضيح ، سأقدم بعض الأمثلة على البيانات المستخدمة.فيما يلي عينة صغيرة من قائمة اللاعبين:
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
لحل قضية ز و و ، لدي قائمة أن احصاء اللاعبين "المحدد" ، وهذه القائمة لديها دقيقة/ماكس لكل منهما.لذلك في هذا المثال أحتاج 1 بغ ، 1 سغ ، و 1 ز.لذلك لدي عمود بغ مع دقيقة من 1 والحد الأقصى من 2 ، عمود سغ مع دقيقة من 1 والحد الأقصى من 2 ، وعمود ز ، الذي يضيف بغ/سغ معا التي لديها دقيقة من 3 والحد الأقصى من 3.ثم جزء من معايير حلالا هو كل دقيقة / ماكس يجب أن تتطابق.
لقد تقسيم العمود الأول إلى بوس 1 و بوس 2 لفصل اثنين من المواقف المحتملة ، ولكن لا أستطيع معرفة كيفية تضمين كل من في وظيفة حلالا.لاعب مثل كيفن الحب, أريد حلالا أن تأخذ في الاعتبار أنه يمكن وضعها في أي يف, و, أو ج البقع.
هنا هو أن الجدول:
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
يتناسب كل لاعب مع الفتحة الخاصة به لأن أحد موقعيهما (نقاط البيع 1 أو نقاط البيع 2) يناسب المعايير.من الواضح أن المجموع لا يصلح ، لذلك لن يكون هذا حلا قابلا للتطبيق ، لكنه مجرد مثال.
آمل أن أكون قد قدمت تفاصيل كافية ، ولكن إذا لم يكن الأمر كذلك ، فيرجى إخباري وسأكون سعيدا بشرح المزيد.شكرا مقدما.
المحلول
لا يزال سؤالك غامضا بعض الشيء لأن سقف راتبك هو 50000 دولار ولكنك تظهر 63000 دولار من اللاعبين المختارين.
الافتراضات:
1.تريد 5 لاعبين لأن هذا هو عدد اللاعبين في الطابق والطريقة الوحيدة للحصول على فريق يتكون من قائمة اللاعبين الخاصة بك أقل من 50000 دولار.وربما هذا هو الأطواق الخيال وتريد 7 أو 8, ولكن الحل يجب أن لا تزال تعمل ل 8 لاعبين إما مع قائمة أوسع من الخيارات ورواتب أقل.
2.سأفترض أيضا أن هناك القليل-لا فبا هنا لأنك لم تقدم أي - أو على الأقل لا شيء من ذلك يحتاج إلى تعديل.
حل بلدي (الذي لا يزال في الاختبار) هو رمي/يلقي (أو ما يعادلها فبا) ل بوس 1 و بوس 2 إلى نص رقم الموقف (أي 1 = بغ ، 2=سغ ، الخ.).
التالي, =concatenate(Pos1, Pos2)
بحيث بغ هو 11 ، بغ / سغ هو 12 ، الخ.("ز" هو أيضا 11 في هذا السيناريو الذي قد يضع خلل في المنطق بلدي).
تغيير الجدول موقفكم مع مين / ماكس / قيم كور يبدو شيئا من هذا القبيل:
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
(القيم هي بلدي).