Поиск_решения
Модератор: Naeel Maqsudov
Подскажите, как в Excel решить такую задачу:
Есть куча слагаемых (в столбик) из этих слагаемых нужно выбрать те которые будут равнять или приблизительно равны фиксированной сумме.
Пробовал через поиск_решения - не получается. Т.к. у меня нет изменяемых параметров. А есть включение или исключение тех или иных ячеек в расчет.
Есть куча слагаемых (в столбик) из этих слагаемых нужно выбрать те которые будут равнять или приблизительно равны фиксированной сумме.
Пробовал через поиск_решения - не получается. Т.к. у меня нет изменяемых параметров. А есть включение или исключение тех или иных ячеек в расчет.
=СУММЕСЛИ(диапазон условий;">12000";диапазон для суммирования)
Это кнопочка fx, там выбрать математические..
Это кнопочка fx, там выбрать математические..
Самоучка 

Что значит приблизительно равны? То есть заданы какие-то диапазоны или отклонение в процентах?
В поиске решения идет перебор разных вариантов. Если вам нужен любой вариант из возможных, лишь бы в сумме дал нужное число, то подойдет способ, предложенный выше. А если бы из полученных вариантов вам нужно было бы выбрать наилучший и для этого у вас был бы критерий отбора (определяющий, какой вариант считать лучшим), тогда - поиск решения.
Еще мог бы подойти Подбор параметра.
Но так как у вас параметры не меняются произвольно, а фиксированы (заданы дискретным набором), то правильным решением будет использование СУММАЕСЛИ.
В поиске решения идет перебор разных вариантов. Если вам нужен любой вариант из возможных, лишь бы в сумме дал нужное число, то подойдет способ, предложенный выше. А если бы из полученных вариантов вам нужно было бы выбрать наилучший и для этого у вас был бы критерий отбора (определяющий, какой вариант считать лучшим), тогда - поиск решения.
Еще мог бы подойти Подбор параметра.
Но так как у вас параметры не меняются произвольно, а фиксированы (заданы дискретным набором), то правильным решением будет использование СУММАЕСЛИ.
Здесь нужен критерий (>12000 в Вашем примере).
=СУММЕСЛИ(диапазон условий;">12000";диапазон для суммирования)
У меня критерий все элементы.
Практически задача звучит так: есть счета (пусть их будет 100), из них нужно выбрать те, сумма которых максимально приближается к 1'000'000.
т.е. нужно перебрать все варианты суммирования этих счетов.
Можно ли это сделать формулами Excel без VBA.
=СУММЕСЛИ(диапазон условий;">12000";диапазон для суммирования)
У меня критерий все элементы.
Практически задача звучит так: есть счета (пусть их будет 100), из них нужно выбрать те, сумма которых максимально приближается к 1'000'000.
т.е. нужно перебрать все варианты суммирования этих счетов.
Можно ли это сделать формулами Excel без VBA.
А какая практическая цель? Ну, переберете вы все варианты счетов, в сумме которые дадут 1000000, и? Вы же потом будете их по какому-то принципу отсеивать? (выбирая лучший) или вам нужно выбрать один вариант, потом, исключив элементы, которые вошли в него, перебирать остальные счета и так далее по циклу?
Не очень понял ответы про СУММЕСЛИ, но видно, что нормального алгоритма для поиска возможных слагаемых для фиксированной суммы так и нет.
Я понял kesar так (для простоты лучше не говорить "максимально приближается к", а "точно равно" сумме).
Есть ряд чисел, например 1, 2, 3, 4. Нужно найти всевозможные варианты сумм этих чисел, чтобы в итоге получалось 6. Каждое число можно в одном варианте использовать только один раз.
В данном примере варианты получаюся такие: 1+2+3=6 и 2+4=6, т.е только два варианта: первый из трёх слагаемых, второй - из двух.
Наверное, давно есть какие-либо математические алгоритмы для поиска всех возможных вариантов. И давно есть, я думаю, реализация такого поиска на VBA. Но кроме тупого перебора, ничего в голову не приходит (комбинаторику я проходил ещё в 19 веке....). А тем более, как это реализовать в VBA.
Возможно, это уже обсуждалось, но поиск в данном форуме привёт только к этой теме. Да и не совсем понятно, какие критерии задавать для поиска.
Если у кого-то есть рабочий код для решения данной проблемы, подскажите.
Я понял kesar так (для простоты лучше не говорить "максимально приближается к", а "точно равно" сумме).
Есть ряд чисел, например 1, 2, 3, 4. Нужно найти всевозможные варианты сумм этих чисел, чтобы в итоге получалось 6. Каждое число можно в одном варианте использовать только один раз.
В данном примере варианты получаюся такие: 1+2+3=6 и 2+4=6, т.е только два варианта: первый из трёх слагаемых, второй - из двух.
Наверное, давно есть какие-либо математические алгоритмы для поиска всех возможных вариантов. И давно есть, я думаю, реализация такого поиска на VBA. Но кроме тупого перебора, ничего в голову не приходит (комбинаторику я проходил ещё в 19 веке....). А тем более, как это реализовать в VBA.
Возможно, это уже обсуждалось, но поиск в данном форуме привёт только к этой теме. Да и не совсем понятно, какие критерии задавать для поиска.
Если у кого-то есть рабочий код для решения данной проблемы, подскажите.
ИМХО такие задачи решает "жадный алгоритм" В сети можно найти много таких.
Вот статья про жадный алгоритм:
http://window.edu.ru/window_catalog/fil ... _49-58.pdf
http://window.edu.ru/window_catalog/fil ... _49-58.pdf
Задам вопрос здесь, не разводя тем. Как разбить по ячейкам формулой номер и серию св-ва о регистрации "86РВ956875". 1 ячейка -""86"", 2-я="РВ" и 3-я ="956875".