Я хотел бы выполнить следующую задачу. Есть три столбца данных. Колонка А представляет собой цену, в которой сумма должна храниться менее 100 000 долларов США. Столбец B представляет значение. Столбец C представляет собой имя, привязанное к столбцам A & B.Найти верхние значения n в диапазоне, сохраняя при этом сумму значений в другом диапазоне под значением x
Из 100 строк данных мне нужно найти самые высокие значения 8 в столбце B, сохраняя при этом сумму цен в столбце A менее 100 000 долларов США. И затем верните 8 имен из столбца C.
Можно ли это сделать?
EDIT:
Я попытался решение Solver ж/не повезло. 200 строк выглядят как max w/Solver, и это то, что я сейчас использую. Вот шаги, которые я взял:
Создать столбец называется ранг RANK (B2, $ B $ 2: $ B $ 200) (? Используется столбец D - какова цель этого)
Создать столбец под названием флаг просто положить в нули (используется столбец E)
Создать 3 всего клетки TOTAL_PRICE (= СУММ (А2: А200)), total_value (= СУММ (В2: B200)) и total_flag (= (E2: E200))
Использовать решатель для минимизации total_value (разве это не должно быть максимально?)
Добавить ограничения -Total_price < = 100000 -Total_flag = 8 -Flag клетки являются бинарными
Использование Simplex LP, он просто меняет флаги для первых 8 значений. Однако общая стоимость первых 8 значений составляет> 100 000 долларов США (140 тыс. Долларов США). Я попытался изменить некоторые параметры в параметрах Solver, а также использовать различные методы решения безрезультатно. Я хотел бы опубликовать изображение параметров параметров, но не хватает «репутации».
EDIT # 2:
Первые 5 строк выглядит так, цена идет вниз до ~ $ 6k в нижней части таблицы.
Price Value Name Rank Flag
$22,538 42.81905675 Blow, Joe 1 0
$22,427 37.36240932 Doe, Jane 2 0
$17,158 34.12127693 Hall, Cliff 3 0
$16,625 33.97654031 Povich, John 4 0
$15,631 33.58212402 Cow, Holy 5 0
Вы знаете, как определить приоритеты в столбце B? Например, если бы у вас была возможность сохранить самое высокое значение, но затем выбирая кучу низких чисел (например, 1,50,51,52 и т. Д.) В отличие от возможности выбирать значения от 2-го по 9-й (2,3, 4 и т. Д.), При этом общая сумма ниже $ 100 000. – gtwebb
Как описано в настоящее время: сортировать colB по убыванию, добавить текущую итоговую сумму в зависимости от цены в текущей строке + 7 строк, а затем выбрать первый экземпляр, где эта сумма составляет <100k. –
Я думаю, что проблема здесь в том, что значения не могут быть последовательными в зависимости от того, существует ли прямая связь между ценой и стоимостью. Лучшим решением может быть выбор значений (1,3,8,12 и т. Д.) До (3,4,5,6, ...), которые ваше решение не поймает. Кажется, что вопросы касаются комбинаций из 8 из 100, что означает оптимизацию из огромного количества возможностей 1.9e11. Я не уверен, как это сделать в excel или vba без кучи вложенных циклов, и много времени или решатель должен работать, если количество записей составляет 100 или меньше. – gtwebb