Иллюстрируя решение, которое довольно близко к тому, что предложил @ErwinKalvelagen.
- Колонка А имена 153 игроков в гольф
- Колонка B является зарплаты игрока-(генерируется
=RANDBETWEEN(50, 125)*100
, заполненный вниз, а затем копировать/вставить значения)
- Колонка C является игроками в гольф средние баллы (генерируемые по
=RANDBETWEEN(70, 85)
, заполнены, затем скопируйте/вставьте значения)
- Столбец D является 0 или 1, чтобы указать, включен ли игрок в гольф.
- Cell
F2
является общей зарплатой, задаваемого =SUMPRODUCT(B2:B154,D2:D154)
- Cell
G2
этого количеством игроков в гольф, задаваемый =SUM(D2:D154)
- Cell
H2
является средним баллом команды, задаваемого =SUMPRODUCT(C2:C154,D2:D154)/G2
страница выглядит так, прежде чем устанавливать Solver ...
Установка Solver выглядит следующим образом ...
Согласно помощи, он говорит, чтобы использовать Эволюционную двигатель для негладких задач. В Options мне нужно было увеличить максимальное время без улучшения с 30 до 300 (возможно, было достаточно 60).
потребовалось несколько минут для того, чтобы закончить. Он достиг решения 70 довольно быстро, но потратил больше времени на поиск лучшего ответа.
И вот шесть игроков в гольф он придумал.
Из игроков в гольф с в среднем 70 лет, он мог бы найти более низкую зарплату.
В Cell I2
добавил формулу =F2+F2*(H2-70)
, которая, по существу, зарплата штрафуется увеличивается в средний балл выше 70 ...
... и использовать ту же установку Solver, кроме как свернуть Клеточные ячейки I2
вместо H2
...
и эти игроки в гольф он выбрал ...
Опять же - похоже, есть еще лучшее решение. Он мог бы выбрать Name97 вместо Name96.
Это оптимизирует сумму среднего балла * –
Фильтр для окладов <$ 50,000, сортировать по среднему балу по убыванию (так что сверху сверху), а затем первые 6 - это то, что вы ищете. – tigeravatar
@tigeravatar Я думаю, что Op хочет, чтобы общая сумма зарплат составляла менее 50 000 человек. Но сегодня я ушел из своего понимания, чтобы твоя правда была правильной. –