Наряду со множеством других возможностей, в Microsoft Excel есть одна малоизвестная, но очень полезная функция под названием “Поиск решения”. Несмотря на то, что найти и освоить ее, может быть, непросто, ее изучение и применение может помочь в решении огромного количества задач. Функция берет данные, перебирает их и выдает самое оптимальное решение из возможных. Итак, давайте разберемся, как именно работает поиск решения и попробуем применить данную функцию на практике
Содержание
- Как включить функцию “Поиск решения”
- Подготовительный этап
- Применение функции и ее настройка
- Заключение
Как включить функцию “Поиск решения”
Несмотря на свою эффективность, функция “Поиск решения” не находится в первых рядах панели инструментов или контекстного меню. Многие пользователи, работающие в Excel годами, даже не подозревают о ее существовании. Дело в том, что по умолчанию она вообще отключена и для ее добавления на ленту нужно проделать следующие шаги:
- Открываем меню “Файл”, кликнув по соответствующему названию.
- Кликаем по разделу “Параметры”, который находится внизу вертикального перечня с левой стороны.
- Далее щелкаем по подразделу “Надстройки”. Здесь отображаются все надстройки программы, а внизу будет надпись “Управление”. Справа от нее представлено выпадающее меню, в котором должны быть выбраны “Надстройки Excel”, обычно уже установленные по умолчанию. Нажимаем кнопку “Перейти”.
- На экране появится новое вспомогательное окно “Надстройки”. Устанавливаем флажок напротив опции “Поиск решения” и нажимаем ОК.
- Все готово. Требуемая функция появится на ленте в правой части вкладки “Данные”.
Подготовительный этап
Добавить функцию на ленту программы – половина дела. Нужно еще понять принцип ее работы.
Итак, у нас есть данные про продаже товаров, представленные в табличном виде.
И перед нами стоит задача – назначить каждому товару скидку таким образом, чтобы сумма по всем скидкам составила 4,5 млн. рублей. Она должна отобразиться в отдельной ячейке, которая называется целевой. Ориентируясь на нее мы должны рассчитать остальные значения.
Наша задача – вычислить скидку, на которую будут умножены все суммы по продажам всех наименований. Она и будет найдена с помощью функции “Поиск решения”, а ячейка с этой скидкой будет называется искомой.
Данные ячейки (искомая и целевая) связываем вместе формулой, которую пишем в целевой ячейке следующим образом: =D13*$G$2, где ячейка D13 содержит итоговую сумму по продажам всех товаров, а ячейка $G$2 – абсолютные (неизменные) координаты искомой ячейки.
Применение функции и ее настройка
Формула готова. Теперь нужно применить саму функцию.
- Переключаемся во вкладку “Данные” и нажимаем кнопку “Поиск решения”.
- Откроются “Параметры”, где необходимо задать нужные настройки. В поле “Оптимизировать целевую функцию:” указываем адрес целевой ячейки, где планируется вывести сумму по всем скидкам. Можно прописать координаты вручную, либо выбрать из таблицы, для чего сначала кликаем по области ввода, затем – по нужной ячейке.
- Переходим к настройке других параметров. В пункте “До:” можно задать максимальную границу, минимальную границу или же точное число. Исходя из поставленной задачи ставим отметку рядом с опцией “Значение” и набираем “4500000” – сумма скидок по всем наименованиям.
- Следующее для заполнения поле – “Изменяя значения переменных:”. В него нужно внести координаты искомой ячейки, содержащей определенное значение. Это значение и есть та самая скидка, которую мы пытаемся вычислить. Также, как и с выбором целевой ячейки, координаты можно написать вручную, либо кликнуть по нужной ячейке в самой таблице.
- Теперь нужно отредактировать раздел “В соответствии с ограничениями:”, в котором задаем ограничения используемых данных. Например, можно исключить десятичные дроби или, скажем, отрицательные числа. Это делается через кнопку “Добавить”.
- Откроется вспомогательно окно, позволяющее добавить ограничения во время вычислений. В первом поле указываем координаты определенной ячейки или области ячеек, для которых это условие должно действовать. Согласно нашей задаче, указываем координаты искомой ячейки, в которой будет выводиться значение скидки. Следующий шаг – определить знак сравнения. Устанавливаем “больше или равно”, чтобы итоговое число не могло быть отрицательным. “Ограничение”, которое устанавливается в третьем поле, в этом случае будет равно цифре 0, поскольку именно относительно этого значения задается условие.Можно установить еще одно ограничение с помощью кнопки “Добавить”. Дальнейшие действия по его настройке будут аналогичными. По готовности щелкаем OK.
- После выполнения описанных выше действий в самом большом поле окна появится установленное только что ограничение. Список может быть довольно большим и зависит от сложности предполагаемых расчетов, но в данном случае будет достаточно и одного условия.Под этим полем также есть опция, позволяющая делать все остальные переменные, не затрагиваемые ограничениями, неотрицательными. Однако, будьте внимательны и проследите за тем, чтобы между этим параметром и поставленными ограничениями не было противоречия, иначе при расчете в программе может возникнуть конфликт.
- Также можно задать немалое количество дополнительных настроек. Чуть ниже справа есть кнопка “Параметры”, позволяющая это сделать. Нажимаем на нее и открываем новое окно.
- В этих настройках у нас есть возможность установить “Точность ограничения” и “Пределы решения”. В нашем случае задавать данные параметры нет необходимости, поэтому после ознакомления с представленным окном, его можно закрыть, нажав OK.
- Итак, все настройки выполнены и параметры установлены. Пора запускать функцию – для этого нажимаем кнопку “Найти решение”.
- После этого программа сделает все необходимые расчеты и выдаст результаты в нужных ячейках. При этом сразу же откроется окно “Результаты поиска решения”, где можно сохранить/отменить результаты или настроить параметры поиска заново. Если результаты нас устраивают, оставляем отметку напротив опции “Сохранить найденное решение” и нажимаем ОК. При этом, если мы предварительно установим галочку слева от надписи “Вернуться в диалоговое окно параметров поиска решения”, после того, как мы щелкнем OK, мы обратно переключимся к настройке функции поиска решения.
- Вполне вероятно, что расчеты могут показаться неправильными, либо возникнет желание немного изменить исходные данные и получить другой результат. В этом случае нужно снова открыть окно с параметрами поиска решения и внимательно посмотреть поля с введенными данными.
- Если с данными все нормально, можно попробовать задействовать другой метод решения. Для этого щелкаем по текущему варианту и из раскрывшегося перечня выбираем способ, который нам кажется наиболее подходящим:
- Первый – ищет решение методом обобщенного приведенного градиента (ОПГ) для нелинейных задач. Стандартно выбран именно этот вариант, но можно попробовать и другие.
- Второй – пытается отыскать решение для линейных задач, используя симплекс-метод.
- Третий – для выполнения поставленной задачи использует эволюционный поиск.
- В том случае, если ни один из методов не принес удовлетворительных результатов, стоит проверить данные в таблице и параметрах еще раз, поскольку именно это является самой частой ошибкой в подобного рода задачах.
- Теперь, когда мы получили требуемую скидку, осталось ее применить, чтобы рассчитать суммы скидок по всем наименованиям. Для этого отмечаем первую ячейку столбца “Сумма скидки”, пишем в ней формулу “=D2*$G$2” и нажимаем Enter. Знаки доллара ставятся для того, чтобы при растягивании/копировании формулы на другие строки, ячейка G2 со скидкой оставалась неизменной в расчетах.
- Мы получили сумму скидки для первого наименования. Теперь наводим курсор на нижний правый угол ячейки с результатом, как только он поменяет форму на крестик, зажав левую кнопку мыши растягиваем формулу на все строки, по которым хотим посчитать аналогичную сумму.
- Теперь наша таблица полностью готова в соответствии с поставленной задачей.
Заключение
Таким образом, функция “Поиск решения” в Эксель может помочь в решении определенных задач, которые достаточно сложно или невозможно решить простыми методами. Однако, проблема в использовании данного способа заключается в том, что по умолчанию данная функция скрыта в программе, из-за чего многие пользователи не догадываются о ее существовании. Также функция довольно трудна в освоении и использовании, но при ее должном изучении, она может принести значительную пользу и облегчить работу.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel для iPad Excel для iPhone Excel для планшетов с Android Excel 2010 Excel 2007 Excel для Mac 2011 Excel для телефонов с Android Excel Mobile Еще…Меньше
«Поиск решения» — это программная надстройка для Microsoft Office Excel, которая доступна при установке Microsoft Office или приложения Excel.
Чтобы можно было работать с надстройкой «Поиск решения», ее нужно сначала загрузить в Excel.
-
В Excel 2010 и более поздних версий выберите Файл > Параметры.
Примечание: В Excel 2007 нажмите кнопку Microsoft Office кнопку и выберите Excel параметры.
-
Выберите команду Надстройки, а затем в поле Управление выберите пункт Надстройки Excel.
-
Нажмите кнопку Перейти.
-
В окне Доступные надстройки установите флажок Поиск решения и нажмите кнопку ОК.
Примечания:
-
Если надстройка Поиск решения отсутствует в списке поля Доступные надстройки, нажмите кнопку Обзор, чтобы найти ее.
-
Если появится сообщение о том, что надстройка «Поиск решения» не установлена на компьютере, нажмите кнопку Да, чтобы установить ее.
-
-
После загрузки надстройки для поиска решения в группе Анализ на вкладки Данные становится доступна команда Поиск решения.
-
В меню Сервис выберите Надстройки Excel.
-
В поле Доступные надстройки установите флажок Поиск решения и нажмите кнопку ОК.
-
Если надстройка Поиск решения отсутствует в списке поля Доступные надстройкинажмите кнопку Обзор, чтобы найти ее.
-
Если появится сообщение о том, что надстройка «Поиск решения» не установлена на компьютере, нажмите в диалоговом окне кнопку Да, чтобы ее установить.
После загрузки надстройки «Поиск решения» на вкладке Данные станет доступна кнопка Поиск решения.
-
В настоящее время надстройка «Поиск решения», предоставляемая компанией Frontline Systems, недоступна для Excel на мобильных устройствах.
«Поиск решения» — это бесплатная надстройка для Excel 2013 с пакетом обновления 1 (SP1) и более поздних версий. Для получения дополнительной информации найдите надстройку «Поиск решения» в Магазине Office.
В настоящее время надстройка «Поиск решения», предоставляемая компанией Frontline Systems, недоступна для Excel на мобильных устройствах.
«Поиск решения» — это бесплатная надстройка для Excel 2013 с пакетом обновления 1 (SP1) и более поздних версий. Для получения дополнительной информации найдите надстройку «Поиск решения» в Магазине Office.
В настоящее время надстройка «Поиск решения», предоставляемая компанией Frontline Systems, недоступна для Excel на мобильных устройствах.
«Поиск решения» — это бесплатная надстройка для Excel 2013 с пакетом обновления 1 (SP1) и более поздних версий. Для получения дополнительной информации найдите надстройку «Поиск решения» в Магазине Office.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Постановка и решение задачи с помощью надстройки «Поиск решения»
Полные сведения о формулах в Excel
Рекомендации, позволяющие избежать появления неработающих формул
Обнаружение ошибок в формулах
Сочетания клавиш в Excel
Функции Excel (по алфавиту)
Функции Excel (по категориям)
Нужна дополнительная помощь?
Одной из самых интересных функций в программе Microsoft Excel является Поиск решения. Вместе с тем, следует отметить, что данный инструмент нельзя отнести к самым популярным среди пользователей в данном приложении. А зря. Ведь эта функция, используя исходные данные, путем перебора, находит наиболее оптимальное решение из всех имеющихся. Давайте выясним, как использовать функцию Поиск решения в программе Microsoft Excel.
Включение функции
Можно долго искать на ленте, где находится Поиск решения, но так и не найти данный инструмент. Просто, для активации данной функции, нужно её включить в настройках программы.
Для того, чтобы произвести активацию Поиска решений в программе Microsoft Excel 2010 года, и более поздних версий, переходим во вкладку «Файл». Для версии 2007 года, следует нажать на кнопку Microsoft Office в левом верхнем углу окна. В открывшемся окне, переходим в раздел «Параметры».
В окне параметров кликаем по пункту «Надстройки». После перехода, в нижней части окна, напротив параметра «Управление» выбираем значение «Надстройки Excel», и кликаем по кнопке «Перейти».
Открывается окно с надстройками. Ставим галочку напротив наименования нужной нам надстройки – «Поиск решения». Жмем на кнопку «OK».
После этого, кнопка для запуска функции Поиска решений появится на ленте Excel во вкладке «Данные».
Подготовка таблицы
Теперь, после того, как мы активировали функцию, давайте разберемся, как она работает. Легче всего это представить на конкретном примере. Итак, у нас есть таблица заработной платы работников предприятия. Нам следует рассчитать премию каждого работника, которая является произведением заработной платы, указанной в отдельном столбце, на определенный коэффициент. При этом, общая сумма денежных средств, выделяемых на премию, равна 30000 рублей. Ячейка, в которой находится данная сумма, имеет название целевой, так как наша цель подобрать данные именно под это число.
Коэффициент, который применяется для расчета суммы премии, нам предстоит вычислить с помощью функции Поиска решений. Ячейка, в которой он располагается, называется искомой.
Целевая и искомая ячейка должны быть связанны друг с другом с помощью формулы. В нашем конкретном случае, формула располагается в целевой ячейке, и имеет следующий вид: «=C10*$G$3», где $G$3 – абсолютный адрес искомой ячейки, а «C10» — общая сумма заработной платы, от которой производится расчет премии работникам предприятия.
Запуск инструмента Поиск решения
После того, как таблица подготовлена, находясь во вкладке «Данные», жмем на кнопку «Поиск решения», которая расположена на ленте в блоке инструментов «Анализ».
Открывается окно параметров, в которое нужно внести данные. В поле «Оптимизировать целевую функцию» нужно ввести адрес целевой ячейки, где будет располагаться общая сумма премии для всех работников. Это можно сделать либо пропечатав координаты вручную, либо кликнув на кнопку, расположенную слева от поля введения данных.
После этого, окно параметров свернется, а вы сможете выделить нужную ячейку таблицы. Затем, требуется опять нажать по той же кнопке слева от формы с введенными данными, чтобы развернуть окно параметров снова.
Под окном с адресом целевой ячейки, нужно установить параметры значений, которые будут находиться в ней. Это может быть максимум, минимум, или конкретное значение. В нашем случае, это будет последний вариант. Поэтому, ставим переключатель в позицию «Значения», и в поле слева от него прописываем число 30000. Как мы помним, именно это число по условиям составляет общую сумму премии для всех работников предприятия.
Ниже расположено поле «Изменяя ячейки переменных». Тут нужно указать адрес искомой ячейки, где, как мы помним, находится коэффициент, умножением на который основной заработной платы будет рассчитана величина премии. Адрес можно прописать теми же способами, как мы это делали для целевой ячейки.
В поле «В соответствии с ограничениями» можно выставить определенные ограничения для данных, например, сделать значения целыми или неотрицательными. Для этого, жмем на кнопку «Добавить».
После этого, открывается окно добавления ограничения. В поле «Ссылка на ячейки» прописываем адрес ячеек, относительно которых вводится ограничение. В нашем случае, это искомая ячейка с коэффициентом. Далее проставляем нужный знак: «меньше или равно», «больше или равно», «равно», «целое число», «бинарное», и т.д. В нашем случае, мы выберем знак «больше или равно», чтобы сделать коэффициент положительным числом. Соответственно, в поле «Ограничение» указываем число 0. Если мы хотим настроить ещё одно ограничение, то жмем на кнопку «Добавить». В обратном случае, жмем на кнопку «OK», чтобы сохранить введенные ограничения.
Как видим, после этого, ограничение появляется в соответствующем поле окна параметров поиска решения. Также, сделать переменные неотрицательными, можно установив галочку около соответствующего параметра чуть ниже. Желательно, чтобы установленный тут параметр не противоречил тем, которые вы прописали в ограничениях, иначе, может возникнуть конфликт.
Дополнительные настройки можно задать, кликнув по кнопке «Параметры».
Здесь можно установить точность ограничения и пределы решения. Когда нужные данные введены, жмите на кнопку «OK». Но, для нашего случая, изменять эти параметры не нужно.
После того, как все настройки установлены, жмем на кнопку «Найти решение».
Далее, программа Эксель в ячейках выполняет необходимые расчеты. Одновременно с выдачей результатов, открывается окно, в котором вы можете либо сохранить найденное решение, либо восстановить исходные значения, переставив переключатель в соответствующую позицию. Независимо от выбранного варианта, установив галочку «Вернутся в диалоговое окно параметров», вы можете опять перейти к настройкам поиска решения. После того, как выставлены галочки и переключатели, жмем на кнопку «OK».
Если по какой-либо причине результаты поиска решений вас не удовлетворяют, или при их подсчете программа выдаёт ошибку, то, в таком случае, возвращаемся, описанным выше способом, в диалоговое окно параметров. Пересматриваем все введенные данные, так как возможно где-то была допущена ошибка. В случае, если ошибка найдена не была, то переходим к параметру «Выберите метод решения». Тут предоставляется возможность выбора одного из трех способов расчета: «Поиск решения нелинейных задач методом ОПГ», «Поиск решения линейных задач симплекс-методом», и «Эволюционный поиск решения». По умолчанию, используется первый метод. Пробуем решить поставленную задачу, выбрав любой другой метод. В случае неудачи, повторяем попытку, с использованием последнего метода. Алгоритм действий всё тот же, который мы описывали выше.
Как видим, функция Поиск решения представляет собой довольно интересный инструмент, который, при правильном использовании, может значительно сэкономить время пользователя на различных подсчетах. К сожалению, далеко не каждый пользователь знает о его существовании, не говоря о том, чтобы правильно уметь работать с этой надстройкой. В чем-то данный инструмент напоминает функцию «Подбор параметра…», но в то же время, имеет и существенные различия с ним.
Создатель сложной таблицы в Microsoft Excel, в которой требуется найти оптимальное значение для определенного диапазона данных, может вручную перебирать все возможные варианты или использовать вспомогательные формулы для расчетов. Однако это все сложно и часто не нужно, ведь можно обратиться к надстройке «Поиск решения», задать для нее цель, ограничения и указать область с переменными значениями, чтобы программа сама высчитала идеальное решение для вас.
Как раз об этой опции и пойдет речь далее.
Используемый пример для поиска решения
Сначала я хочу остановиться на исходной таблице и разобраться, в каких целях может применяться рассматриваемая надстройка. К тому же описываемый далее шаблон сделает понятным принцип устанавливаемых целей и ограничений, чтобы вы могли использовать его как исходную точку, оптимизировав под себя. Поиск решения поможет вам рассчитать кредитную ставку, узнать, как лучше вкладывать средства для достижения желаемого результата, определить лучшие маршруты для логистики, сбалансировать цены и потребление и многое другое, что требуется для обработки довольно большого массива данных.
В моем примере мы возьмем два депозитных счета, на каждый из которых каждый цикл начисляется фиксированный процент. Это вы видите в обводке на следующем изображении, где двойкой отмечены начальные суммы на каждом счете. Именно от них и отталкиваются следующие расчеты.
Процент каждый раз начисляется одинаковый, поэтому является константой. Его я растягиваю на все допустимые циклы начислений. Не обращайте внимание на то, что какие-то значения уже есть, поскольку сначала нужно заполнить таблицу полностью, подставив любые значения для начислений.
Помимо начисления процентов каждый цикл я буду докладывать на каждый счет до 500 условных единиц. Для удобства разделю их пополам на каждый счет, чтобы каждый цикл поступало не больше 250 на отдельный баланс. В итоге количество этих довложений и будет считаться надстройкой, чтобы сэкономить максимальное количество средств до конца всех циклов.
Теперь нужно решить, к чему мы хотим прийти. Я выставил две отдельные цели для каждого счета, но они будут только примерными, поскольку в итоге я хочу прийти к общему балансу, чтобы он соответствовал моим требованиям.
Для этого я сначала добавляю функцию СУММ для суммы счетов и считаю сумму каждого в последнем цикле.
Если вы собираетесь строить примерно такую же таблицу, как у меня, обращу ваше внимание на то, что в начале каждого следующего цикла сумма на счете будет переноситься автоматически, поэтому нужно самостоятельно ссылаться во втором цикле на конечную сумму счета из первого, чтобы при растяжении таблицы всегда получать корректные результаты.
Сама сумма же формируется из исходного баланса, постоянного процента и суммы довложений, которая будет меняться в зависимости от того, как решит надстройка «Поиск решения».
Возможно, текстом описать принцип работы этой таблицы сложно, но я постарался сделать это максимально доходчиво. В итоге получил таблицу с двумя счетами с разными процентами начислений и разными целями. Общая сумма довложений не должна быть более 500, а цель является общей, поскольку предполагается, что весь баланс с депозитных счетов все равно будет выведен на один. Поэтому далее я сделаю так, чтобы баланс к концу всех циклов получился 32500 (7500 + 25000, это предполагаемые цели первого и второго счета). При этом количество довложений должно быть минимальным, чтобы не тратить личные средства, и, соответственно, не превышать установленное ограничение в 500 условных единиц. Теперь давайте разберемся с тем, как реализовать это при помощи рассматриваемой надстройки.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Включение надстройки «Поиск решения»
Прежде чем обращаться к самой надстройке, ее необходимо включить, поскольку по умолчанию в Экселе она не отображается на необходимой вкладке с инструментами. Выполните следующий алгоритм действий, чтобы активировать эту функцию.
-
В таблице перейдите на вкладку «Файл».
-
Откройте раздел «Другие».
-
Из появившегося меню выберите пункт «Параметры».
-
Откройте категорию настроек «Надстройки» и отыщите пункт с названием «Поиск решения», после чего выделите его нажатием левой кнопки мыши.
-
Кликните по кнопке «Перейти», находящейся внизу окна.
-
Активируйте галочку возле пункта «Поиск решения» и нажмите «ОК», чтобы выйти из данного окна.
-
Теперь давайте убедимся в том, что надстройка появилась в таблице. Для этого откройте вкладку «Данные» и найдите блок «Анализ», где и должен находиться соответствующий инструмент.
Надстройка включена, поэтому смело переходите к следующему разделу статьи, чтобы справиться с поставленной задачей. Как я уже и сказал, буду использовать таблицу из своего примера, а вы можете менять параметры в зависимости от личных целей.
Настройка «Поиска решений» для таблицы
Давайте каждое действие буду описывать максимально детально, разбирая то, какие значения я выбираю и что это даст в итоге. По сути, принцип действий с параметрами поиска решения заключается в том, что мы должны оптимизировать целевую функцию, изменяя ячейки переменных. Функцией у нас является сумма счетов по окончании цикла, а переменные – довложения в каждый цикл. Соответственно, программа будет искать вариант достижения цели с минимальными количествами довложений.
-
Выбрав пункт «Поиск решения» на панели, о которой говорилось выше, вы будете перенаправлены в окно с параметрами. Сначала выберите «Оптимизировать целевую функцию» и выберите ту ячейку, в которой отображается конечный результат всех циклов.
-
Для «Изменяя ячейки переменных» укажите область данных, куда могут вноситься изменения. В моем случае это будут довложения для каждого счета.
-
Теперь обратите внимание на «В соответствии с ограничениями». У нас есть ограничения, поэтому нужно указать их, чтобы программа понимала, какие значения может использовать и к какому результату ей стремиться. Нажмите «Добавить», чтобы создать первое ограничение.
-
В моем случае первое ограничение – итоговая сумма в функции, которой нужно добавиться. Вы можете указать разные знаки неравенства, если, например, можно выбрать одно значение или меньше. В моем случае я хочу получить точный результат, поэтому указываю знак = и ввожу само ограничение в виде суммы.
-
Вторым ограничением является максимальное количество довложений для каждой ячейки. Оно может равняться или быть меньше 250. Соответственно, в вашем случае это будут совершенно другие значения в зависимости от того, с какими исходными данными вы работаете.
-
Сейчас это были все ограничения, но, если у вас их больше, продолжайте добавление в таком же ключе. По завершении убедитесь в том, что метод решения выбран как ОПГ, после чего запустите «Найти решение».
-
Расчет происходит буквально за несколько секунд, после чего мы видим оптимальное решение. В моем случае каждый цикл на балансы начислялось меньше 250, в один месяц даже 0, а в конце всех циклов получилось достичь нужной суммы с точностью до сотых. «Найти решение» показало, как мне действовать каждый цикл, чтобы вкладывать минимальную сумму, но дойти до нужного результата в конце. У вас решение может быть совершенно другим.
-
Если же программа посчитала все возможные исходы и в итоге не нашла решения, на экране появится информация об ошибке. Сравните полученные значения в таблице, чтобы понять, на каком этапе произошло завершение вычислений, то есть программа уперлась в установленные ограничения. В итоге вам нужно будет увеличить количество циклов или изменить эти самые ограничения.
В этой инструкции я пошел по самому простому пути, поскольку объединил два счета в одну итоговую сумму и проигнорировал минимальные начисления на каждом из них. В итоге на одном счете получилось немного больше средств, на другом меньше, но сумма все равно соответствовала требуемым условиям. Вы можете добавлять больше ограничений и разных значений, чтобы получить более эффективную оптимизацию в соответствии с вашими задачами.
Я ставил цель показать вам, как работает программа «Поиск решения» в Microsoft Excel, чтобы вы узнали, как можно автоматически найти оптимальные значения для большой таблицы, избегая ручной переборки значений. Надеюсь, все объяснения и примеры были вам понятны, и теперь вы освоили еще одну очень удобную функцию, упрощающую взаимодействие с электронными таблицами, созданными в Экселе.
Самое понятное объяснение, как это работает + коллекция новых задач
25.07.2017, Елена Позднякова
-
Оглавление
-
Как это работает
-
Какой ассортимент выпускать
-
Трансфертные цены
-
Задача инвестора
-
Настройка надстройки
Приходилось ли Вам когда-нибудь составлять план продаж, маркетинговый бюджет или схему доставки грузов? Если да, то наверняка какое-то решение зависело только от вашего профессионального суждения… Вы когда-нибудь сомневались в том, что Ваше решение наилучшее? Сожалели ли Вы о том, что не имеете возможности просчитать все варианты, ведь факторов так много, а время ограничено?
Умение легко и быстро найти правильный ответ, а еще и своевременно сформулировать вопрос, отличает профессионала высокого класса от начинающего специалиста.
Программа Excel умеет находить наилучшее решение там, где, казалось бы, лучше уже нельзя.
Чтобы это сработало, нужно уметь правильно сформулировать условия, это мы и будем учиться делать в настоящей статье.
Поиск решения — это надстройка программы Excel, по умолчанию она не установлена, поэтому, если Вы никогда ранее ее не использовали, ее нужно настроить.
На одном листе Excel будут расположены все исходные данные, формулы, взаимосвязи и ограничения: это называется математическая модель. В составе модели пять типов данных:
Константы — это исходная информация, которая имеется в модели: маржинальная прибыль по каждому продукту, стоимости перевозки от каждого поставщика к каждому покупателю, нормы расхода материалов и т.д. Эти данные могут быть как внесены и виде констант, так и рассчитываться с помощью формул.
Изменяемые ячейки — это переменные, которые мы в итоге ищем: количество продукта, которое нужно производить, чтобы прибыль была максимальной или объемы перевозок от каждого поставщика к конкретному покупателю, чтобы затраты были минимальными и т.д.
Изменяемая ячейка может быть одна или диапазон из нескольких ячеек.
Эти ячейки мы будем указывать, но оставлять пустыми, надстройка «Поиск решения» сама заполнит их наилучшими данными.
Целевая функция— для того, чтобы программа понимала, какие данные считать наилучшими, мы зададим целевую функцию. Это всегда только одна ячейка, в которую внесена формула. Формула связана с теми данными, которые мы ищем. Например, если мы ищем ассортимент, максимизирующий прибыль, формула целевой функции будет задана как сумма произведений количества каждого продукта (изменяемые данные) и маржинальной прибыли по каждому продукту (константы, внесенные в модель).
При запуске надстройки мы будем указывать, какие данные будут наилучшими для целевой ячейки: максимальное значение, минимальное значение или конкретное число.
Подбор данных в изменяемых ячейках будет осуществляться таким образом, чтобы в ячейке с целевой функцией появилось наилучшее значение.
Ограничения — являются главным элементом в Поиске решения. Все ресурсы, которые участвуют в модели и имеют максимально допустимые значения — это ограничения: объем инвестирования, объем покупательского спроса, срок реализации проекта.
Например, на складе всего 5 000 кг материала, который входит в состав всех продуктов, а мы ищем ассортимент, который даст максимальную прибыль. Чтобы правильно учесть ограничение, потребуется внести формулу, которая рассчитает объем материала, который потребуется для производства ассортимента Х — наших переменных. Далее уже непосредственно в самой надстройке будет задано ограничение:
Важно учитывать, что если переменные должны быть выражены неотрицательным или целым числом — это тоже ограничения, которые необходимо задать.
Дополнительные формулы — в модель может быть внесено любое количество дополнительных формул, которые не влияют на целевую функцию и ограничения, а несут справочную информацию по проекту.
Как это работает: пошаговая инструкция
на примере задачи по распределению заказов
Попробуйте простыми расчетами решить такую задачу:
Компания занимается производством шкатулок ручной работы. В штате есть 4 мастера-надомника. Производительность мастеров в день представлена в таблице:
Мастер 1 — 3 шкатулки в день
Мастер 2 — 1,5 шкатулки в день
Мастер 3 — 2 шкатулки в день
Мастер 4 — 2,5 шкатулки в день
Поступил срочный заказ на 100 шкатулок и нужно раздать 100 заготовок, чтобы мастера успели справиться в самый короткий срок.
Сколько и кому раздать заготовок?
Эту задачу можно решить простыми расчетами, без использования поиска решений. Для начала так и поступим:
Рассчитаем, сколько шкатулок в день могут произвести все мастера:
3+1,5+2+2,5 = 9 шкатулок.
Теперь 100 шкатулок разделим на 9 шкатулок в день и получим 11,11 дней. Соответственно, сообщаем заказчику, что заказ будет готов за 12 дней
Распределим заготовки между мастерами с использованием округления:
Мастер 1: 3 х 11,11 = 33,33 Выдаем 34 заготовки
Мастер 2: 1,5 х 11,11 = 16,66 Выдаем 17 заготовок
Мастер 3: 2 х 11,11 = 22,22 Выдаем 21 заготовку
Мастер 4: 2,5 х 11,11 = 27,77 Выдаем 28 заготовок
А теперь дополним условие и введем индивидуальные тарифные ставки для мастеров за изготовление каждой шкатулки:
Мастер 1 — 1 500 руб
Мастер 2 — 950 руб
Мастер 3 — 1 100 руб
Мастер 4 — 1 150 руб
Рассчитаем для клиента, сколько стоит изготовить 100 шкатулок
34 х 1 500 = 51 000
17 х 950 = 16 150
21 х 1 100 = 23 100
28 х 1 150 = 32 200
Итого: 122 450
А теперь клиент задает нам вопрос, а если бы заказ был не срочный, во сколько минимально он мог бы обойтись? Как Вы думаете?
Посмотрим еще раз на таблицу с исходными данными:
Мы видим, что мастер 2, который работает медленнее всех — получает меньше всех. Значит, если мы не ограничены во времени и отдадим весь заказ ему, то вся работа будет стоить всего 95 000 (950 руб х 100 шкатулок). Но сколько это займет времени? 100/1,5 = 66,66 дней.
Таким образом, путем простых расчетов и логических рассуждений мы вывели основные отправные точки для диалога с клиентом:
Минимальный срок изготовления: 11,11 дней,
стоимость 122 450
Максимальный срок изготовления: 66,66 дней,
стоимость 95 000
Разница в сроке составляет 55,55 дней, а в сумме 27 450.
Вполне логично предположить, что клиент может задать вопрос:
А если я дам Вам срок 20 дней или месяц, как изменится стоимость?
Теоретически это задание можно решить простыми расчетами, но, надеюсь, Вы не затратили много времени на это, потому что нам пора применить опцию Поиск решения, чтобы мгновенно получать результат распределения заказов с учетом любых заданных ограничений!!!
Давайте вместе решим эту задачу с использованием надстройки «Поиск решения»
Создайте новый файл в программе Excel.
Проверьте, есть ли кнопка «Поиск решения» в закладке «Данные», если нет, то здесь инструкция, как ее установить.
Наша цель: как распределить заготовки, чтобы заказ был выполнен за 20 дней и стоимость была минимальной? Сколько будет стоить в этом случае выполнение заказа?Попытайтесь сами ответить на вопросы и записать ответы:
1. Какие у нас есть константы?
2. Что будет переменными?
3. Целевая функция
4. Ограничения
Константы: время выполнения заказа и ставка за одну шкатулку по каждому мастеру
Переменные: число заготовок, передаваемое каждому мастеру
Целевая функция: общая стоимость заказа (здесь формула: сумма произведений переменных на ставку за заказ), цель — минимум
Ограничения:
1. Число шкатулок в заказе = фиксированное значение 100 шт
2. Максимальное время для выполнения заказа <= фиксированное значение 20 дней
3. Переменные должны быть выражены неотрицательным и целым числом
А теперь найдите где какие данные расположены в этой таблице:
Заполните самостоятельно свою исходную таблицу в Excel в любой удобной для Вас форме.
Так выглядит окно Поиск решения
до того, как мы начали его заполнять,
После того, как Вы внесли все исходные данные, запускаем «Поиск решения» (вкладка «Данные»). Я покажу на примере Excel 2007 (Excel 2010 немножко отличается, но сам подход аналогичен).
1. Устанавливаем целевую ячейку E13. Это целевая функция, которая равна общей стоимости заказа. Переключаем цель, чтобы она была равной минимальному значению.
2. Вносим диапазон переменных D9:D12 в поле «Изменяя ячейки».
3. Вносим ограничения:
D13 (общее число заготовок) = 100 (внесем не значение 100, а ячейку D3, чтобы в дальнейшем можно было изменить количество шкатулок в задаче)
Диапазон переменных D9:D12 = целые
Диапазон переменных D9:D12 >= 0 (неотрицательные)
F13 (срок выполнения заказа: в эту ячейку внесена формула, которая выбирает максимальное значение из сроков по каждому мастеру, она выглядит так =МАКС(F9:F12)) <= 20 дней (внесем не значение 20, а ячейку D6, чтобы можно было изменять)
Осталось нажать кнопку «Выполнить»: переменные будут заполнены и появится окно с результатами. Обратите внимание на комментарий, что все ограничения и условия выполнены и решение найдено, если нет, возможно, исходные данные сформулированы неверно. Если все хорошо, нажимайте ОК, и ячейки с переменными останутся заполненными, если нажмете ОТМЕНА, заполненные данные не сохранятся.
Будьте внимательны! Всегда проверяйте, что написано в окне результаты, потому что результат бывает отрицательным: «Поиск не может найти подходящего решения».
В этом случае данные могут быть заполнены наилучшими по мнению надстройки, но эти данные могут быть неверными и не удовлетворять условию задачи!
Итоговый результат будет выглядеть так:
У Вас получилось? Если что-то непонятно или есть вопросы, скачайте мой файл с решением и проверьте в нем:
Теперь попробуйте самостоятельно рассчитать, сколько будет стоить заказ, если на него можно затратить 30 дней.
Молодцы, кто решил! С принципом работы надстройки Поиск решения мы разобрались, а теперь идем дальше — там еще интереснее!
Какой ассортимент выпускать, чтобы получить максимальную прибыль
классика жанра
Я решила не брать в качестве классического примера транспортную задачу, потому что она уже всем надоела, ее традиционно проходят в высших учебных заведениях и по ней написано множество инструкций в интернете.
В качестве классики приведу задачу из курса по управлению эффективностью бизнеса CIMA. Что интересно, сам поиск решения в рамках курса не проходят, а только учат формулировать целевую функцию и ограничения, а затем интерпретировать результаты. Что нужно сделать, чтобы этот результат получить, не знают даже выпускники CIMA!!!, но мы восполним этот пробел и раскроем тайну, как это делается.
Приведенную здесь задачу я взяла из курса подготовки к CIMA Кузьмина Михаила Юрьевича, который проходила в 2016 году. Было очень интересно, рекомендую и вам!
THS производит два продукта из различных комбинаций одних и тех же ресурсов. Ниже приведена информация о продуктах:
THS готовит план производства на следующий месяц. Максимально доступные (за месяц) объемы ресурсов приведены в таблице:
Материал А — 5 000 кг
Материал В — 5 400 кг
Работа оборудования — 3 000 часов
Квалифицированный труд — 4 500 часов
Задание:
Определить оптимальный план производства, максимизирующий прибыль.
Подготовим расчеты для компьютерной обработки данных
Для решения задачи требуется рассчитать маржинальную прибыль по каждому продукту:
Переменные:
х — количество продукта Е
у — количество продукта R
Маржинальная прибыль от всего объема выпуска будет рассчитана по формуле:
35x + 66y
Наша цель: найти такой объем выпуска, который даст максимальное значение
Ограничения:
Материал А: 3х+2у<=5000
Материал В: 4x+3у<=5400
Работа оборудования: 2х+3у<=3000
Квалифицированный труд: 2х+5у<=4500
Объем спроса: y<=1500
Неотрицательность: х>=0, y>=0
Подготовим в Excel таблицу для ввода данных
Колонка «Значение»
По строкам 1 и 2 в будет внесено оптимальное количество продуктов. Сейчас их оставляем пустыми, функция сама их заполнит. На эти ячейки ссылаются все последующие формулы.
По строке 3 «Целевая функция» — вносим формулу со ссылкой на ячейки Х и У выше. Пока она равна нулю, ПОИСК РЕШЕНИЯ будет ее максимизировать и заполнит значение.
Далее по строкам 4-10 вносим ограничения в виде формул. Например, 3х+2у, также со ссылками на ячейки Х и У.
Колонка «Ограничение»
Ограничения можно внести как в ячейки на листе, так и непосредственно в окне «Поиск решения». В данном случае они внесены в таблицу, чтобы можно было заполнить формулу в следующей колонке (которая называется «Излишек»), т.к. она участвует в финальной матрице.
Колонка «Излишек»
Здесь вносим формулу: Ограничение — Значение. После того, как функция рассчитает все значения, мы сразу сможем видеть ограниченные ресурсы и излишки.
Итак, таблица готова и выглядит, как приведено выше.
Переходим к функции «Поиск решения»
Нажимаем кнопку «Поиск решения» в закладке «Данные» (если нет кнопки, настройка здесь)
Ограничения вносятся так:
Ограничения НЕ ОТРИЦАТЕЛЬНОСТИ можно вносить, выделяя целый диапазон ячеек:
В окне «Результаты поиска решения» проверьте, что решение найдено. И еще выберите тип дополнительного отчета: «Устойчивость», он появится на дополнительном листе, там будет полезная информация о теневой цене (что это, поясню далее).
Интерпретация полученных результатов
В итоге таблица выглядит так:
Максимальное значение прибыли 62 625 долл, достигается при выпуске оптимального ассортимента: Продукт Е — 375 ед, Продукт R — 750 ед. Смотрим колонку «Избыток»
Имеется избыток Материала А и материала В в размере 2 375 ед и 1 650 ед, соответственно.
На продукт У имеется нереализованный спрос 750 ед.
Оборудование и труд являются ограничивающими ресурсами. Это значит, что если бы у нас имелись дополнительные единицы этих ресурсов, мы могли бы произвести еще продукт и получить дополнительную прибыль.
Поиск решения позволяет проводить углубленный анализ модели и рассчитывает «теневую цену» — сложнейшее для понимания экономистов понятие.
Надбавка к номинальной цене за единицу ограниченного ресурса, которую имело бы смысл заплатить, чтобы получить еще одну дополнительную единицу ограниченного ресурса, называется теневая цена.
Теневая цена ограниченного ресурса -это дополнительная маржинальная прибыль, которая возникла бы, если бы имелась одна дополнительная единица ограниченного ресурса, либо потерянная маржинальная прибыль, которая возникла бы, если бы объем ограниченного ресурса был на единицу меньше.
Теневую цену смотрим из отчета по устойчивости:
Теперь объясню, что это значит на цифрах.
Еще одна дополнительная единица продукта, которую мы могли бы произвести, при наличии еще одной единицы ограниченного ресурса, представляет собой условную единицу. Это не одна единица E или R, а условная единица, в состав которой входят и Е, и R в той пропорции, в которой определен оптимальный план
Продукты E и R входят в оптимальный план в пропорции 375:750 или 1:2. Давайте рассмотрим минимальный набор оптимального плана, который включает 3 единицы: 1 единицу продукта Е и 2 единицы продукта R.
Вернемся к таблице с расчетом маржинальной прибыли:
Если мы приобретем все ресурсы, которые входят в состав по тем же ценам, что и прежде, то получим маржинальную прибыль 1 х 35 + 2 х 66 = 167$
Однако ресурс работы оборудования и рабочее время рабочих исчерпаны, а все остальные ресурсы есть. Значит, если мы можем арендовать дополнительную единицу оборудования и нанять еще рабочих, можно было бы доплатить. Сейчас оборудование стоит 7$ в час, труд – 10$ в час и мы и имеем маржинальную прибыль. Теневая цена показывает, что можно доплатить за 1 час работы оборудования — 10,75 (тогда он будет стоить 17,75), а за 1 час труда — 6,75 (будет стоить 16,75) — это максимальные суммы, при которых маржинальная прибыль будет равна нулю:
Итак, мы можем вести переговоры о приобретении дополнительных ресурсов с надбавкой к текущей стоимости в пределах теневой цены и нам это будет выгодно.
Если остались вопросы, скачайте мой файл с решением:
Трансфертные цены
Как установить цену продажи внутри группы, чтобы минимизировать налоги
Когда я писала эту статью, мне очень хотелось придумать задачу на Поиск решения, которая была бы полезна в реальной практике. Я опросила множество экономистов, никто из моих знакомых Поиск решения в своей работе не применял.
А у Вас есть идея,
как применить Поиск решения на практике?
Пишите мне на почту или в комментариях.
Если идея будет рабочая, я составлю задачу и опубликую ее здесь!
За идею задачи про трансфертные цены, которую я привожу в этом разделе, благодарю очень талантливого экономиста Алексея Д.!
Есть группа из 3 компаний. ООО «Крона» закупает телефоны в Китае, ООО «Стрим» продает телефоны мелкооптовыми партиями по России, ООО «Маркет» торгует телефонами через розничные точки.
Стрим и Маркет закупают телефоны у Кроны. Учитывая, что все 3 юридических лица входят в группу и имеют одного собственника, их можно рассматривать как подразделения одной компании. Перед финансовым директором стоит задача запланировать оптимальные трансфертные цены.
Трансфертная цена – это цена, по которой товары или услуги передаются между подразделениями одной и той же компании.
Имеется следующая информация о показателях деятельности на квартал:
Маркет несет дополнительные расходы в виде 30% процентов от маржинальной прибыли по сделкам, это премия управляющему директору. Сумма премии при выполнении плана реализации в 1000 штук в квартал, не может быть меньше 150 000 руб.
Ограничения:
В целях минимизации налоговых рисков в задаче установлены следующие ограничения:
Цена
Минимальная трансфертная цена не может быть ниже себестоимости, увеличенной на 5%.
Максимальная трансфертная цена для компании не может быть больше чем средняя продажная цена покупателям уменьшенная на 5%.
Цены не должны отличаться между собой не более, чем на 20%.
Прибыль
Прибыль после уплаты налогов по каждой компании должна составить не менее 1% от выручки.
Задание. Найти оптимальные трансфертные цены для реализации с Крона на Стрим и Маркет, при которых прибыль после уплаты налогов будет максимальной.
Оптимальные трансфертные цены должны удовлетворять следующим условиям:
1) распределять налоговую нагрузку внутри компании с целью минимизации налога на прибыль
2) находиться в рамках допустимого диапазона, чтобы дать возможность обосновать для контролирующих органов, что аналогичные цены использовали бы компании, действующие независимо друг от друга
3) обеспечить справедливую оценку деятельности подразделений
Для решения перенесем данные в Excel.
Сначала заполним исходные данные, которые будут участвовать в расчетах:
Теперь подготовим поля для переменных. Это 2 ячейки: цена с Кроны на Стрим и цена с Кроны на Маркет. Пока они остаются пустыми, Поиск решений сам их заполнит.
Заполним таблицу с финансовыми результатами
Это нужно, чтобы рассчитать результат целевой функции. В формулах уже участвуют ячейки с трансфертными ценами, но пока они не заполнены, итоговые значения в формулах будут нулевыми.
Выручка по Кроне рассчитывается по формуле:
количество единиц, проданных со Стрима, умноженное на трансфертную цену + количество единиц проданных с Маркета, умноженное на трансфертную цену
Выручка по Стриму и Маркету нам известна: умножаем продажи на цену
Себестоимость по Кроне нам известна: умножаем общую сумму продаж со Стрима и Маркета на покупную цену.
По Стриму и Маркету в расчете себестоимости участвуют трансфертные цены, поэтому заполним формулы, но значения пока равны нулю.
Маржинальная прибыль рассчитывается по формуле: выручка минус себестоимость
Налог. Для Кроны и Стрима используется формула маржинальная прибыль на ставку налога, у Маркета другая формула: выручка на 6%.
Премия управляющему: вносим только для Маркета: маржинальная прибыль, умноженная на 30%
Прибыль после уплаты налога по формуле: маржинальная прибыль минус премия минус налог
Целевая функция. Сумма прибыли после уплаты налога по всем компаниям
Рядом с премией управляющему сразу установим ограничение >= 150 000
Минимальное ограничение цены: 4 400 х 1,05 = 4 620
Максимальная возможная цена на Стрим: 15 200 х 0,95 = 14 440
Максимальная возможная цена на Маркет: 17 860 х 0,95 = 17 860
Для того, чтобы задать ограничение по диапазону удобно использовать формулу отношение одной цены к другой. Предварительно требуется прикинуть, какая из цен будет стремиться в большую сторону. В данном случае я сделала оценку, что цена на Маркет чем больше, тем лучше, потому что ставка премии управляющему директору выше, чем ставка налога в Кроне, а цена на Стрим, наоборот, чем меньше, чем лучше, потому что ставка налога в Стриме ниже. Можно не делать предварительную оценку, а запустить поиск решения без учета этого ограничения: выяснить максимальную цену, а затем задать ограничение. Ограничение диапазона в пределах 20% будет выглядеть так:
Значение цена на Маркет/цена на Стрим <= 1,2
И последнее ограничение: минимальная сумма прибыли после уплаты налогов. Здесь значение будем задавать через формулу: выручка, умноженная на 1%, потому что на Кроне в зависимости от изменения трансфертных цен выручка будет изменяться.
Прибыль будет максимальной — 23 246 500 руб, если мы установим цену с Кроны на Стрим — 14 100 руб и цену на Маркет — 16 920.
Задача инвестора.
Что построить на участке?
Сможете сами решить?
Инвестор приобрел 400 соток земли под застройку. На участке можно построить 3 типа объектов: коттеджи, дуплексы и пятиэтажные дома на 30 квартир.
Имеется следующая информация об объектах:
По условиям договора с покупателями управляющая компания не может быть заменена в течение 5 лет с момента начала реализации проекта, а значит, управляющая компания инвестора будет получать в дальнейшем прибыль от эксплуатации объекта
Размер инвестиций ограничен суммой 330 млн.
Вопрос: что построить на участке, чтобы в течение 5 лет с начала проекта получить максимальную прибыль и сколько это будет?
Когда я составляла эту задачу, я подгоняла условия, чтобы получить наилучший ответ, который уже был мне известен. Каково же было мое удивление, когда я запустила Поиск решения – и получила совершенно другой результат! Специально пока его не публикую, чтобы было интереснее решать.
А Вы сможете решить эту задачу? Напишите свой ответ в комментариях, и нравятся ли Вам такие задачи? И идеи, идеи!
Как настроить функцию «Поиск решения»
если у вас нет кнопки «Поиск решения» во вкладке «Данные»
Поиск решения в Excel расположен на вкладке «Данные»
Если вы у себя в Excel не видите такой кнопки, значит нужно ее настроить. Делается это так. Шаг 1: Открыть «Параметры Excel»
Шаг 2: В открывшемся окне переключиться в закладку «Надстройки», выделить приложение «Поиск решения» и нажать на кнопку «Перейти».
Шаг 3: Появится окно «Надстройки», здесь отметить галочкой надстройку «Поиск решения», нажать «ОК» и все готово.
Понравилась статья?
Поделитесь в соцсетях:
Подпишитесь на обновления, чтобы первыми узнавать о публикации новых статей