3 что такое неизвестные задачи в эксель
Перейти к содержимому

3 что такое неизвестные задачи в эксель

  • автор:

3 что такое неизвестные задачи в эксель

Поиск решения будем рассматривать в MS EXCEL 2010 (эта надстройка претерпела некоторые изменения по сравнению с предыдущей версией в MS EXCEL 2007) . В этой статье рассмотрим:

  • создание оптимизационной модели на листе MS EXCEL
  • настройку Поиска решения;
  • простой пример (линейная модель).

Установка Поиска решения

Команда Поиск решения находится в группе Анализ на вкладке Данные .

Если команда Поиск решения в группе Анализ недоступна, то необходимо включить одноименную надстройку. Для этого:

  • На вкладке Файл выберите команду Параметры , а затем — категорию Надстройки ;
  • В поле Управление выберите значение Надстройки Excel и нажмите кнопку Перейти;
  • В поле Доступные надстройки установите флажок рядом с пунктом Поиск решения и нажмите кнопку ОК.

Примечание . Окно Надстройки также доступно на вкладке Разработчик . Как включить эту вкладку читайте здесь .

После нажатия кнопки Поиск решения в группе Анализ, откроется его диалоговое окно .

При частом использовании Поиска решения его удобнее запускать с Панели быстрого доступа, а не из вкладки Данные. Чтобы поместить кнопку на Панель, кликните на ней правой клавишей мыши и выберите пункт Добавить на панель быстрого доступа .

О моделях

Этот раздел для тех, кто только знакомится с понятием Оптимизационная модель.

Совет . Перед использованием Поиска решения настоятельно рекомендуем изучить литературу по решению оптимизационных задач и построению моделей.

Ниже приведен небольшой ликбез по этой теме.

Надстройка Поиск решения помогает определить лучший способ сделать что-то :

  • «Что-то» может включать в себя выделение денег на инвестиции, загрузку склада, доставку товара или любую другую предметную деятельность, где требуется найти оптимальное решение.
  • «Лучший способ» или оптимальное решение в этом случае означает: максимизацию прибыли, минимизацию затрат, достижение наилучшего качества и пр.

Вот некоторые типичные примеры оптимизационных задач:

  • Определить план производства , при котором доход от реализации произведенной продукции максимальный;
  • Определить схему перевозок , при которой общие затраты на перевозку были бы минимальными;
  • Найти распределение нескольких станков по разным видам работ , чтобы общие затраты на производство продукции были бы минимальными;
  • Определить минимальный срок исполнения всех работ проекта (критический путь).

Для формализации поставленной задачи требуется создать модель, которая бы отражала существенные характеристики предметной области (и не включала бы незначительные детали). Следует учесть, что модель оптимизируется Поиском решения только по одному показателю (этот оптимизируемый показатель называется целевой функцией ). В MS EXCEL модель представляет собой совокупность связанных между собой формул, которые в качестве аргументов используют переменные. Как правило, эти переменные могут принимать только допустимые значения с учетом заданных пользователем ограничений. Поиск решения подбирает такие значения этих переменных (с учетом заданных ограничений), чтобы целевая функция была максимальной (минимальной) или была равна заданному числовому значению.

Примечание . В простейшем случае модель может быть описана с помощью одной формулы. Некоторые из таких моделей могут быть оптимизированы с помощью инструмента Подбор параметра . Перед первым знакомством с Поиском решения имеет смысл сначала детально разобраться с родственным ему инструментом Подбор параметра . Основные отличия Подбора параметра от Поиска решения :

  • Подбор параметра работает только с моделями с одной переменной;
  • в нем невозможно задать ограничения для переменных;
  • определяется не максимум или минимум целевой функции, а ее равенство некому значению;
  • эффективно работает только в случае линейных моделей, в нелинейном случае находит локальный оптимум (ближайший к первоначальному значению переменной).

Подготовка оптимизационной модели в MS EXCEL

Поиск решения оптимизирует значение целевой функции. Под целевой функцией подразумевается формула, возвращающая единственное значение в ячейку. Результат формулы должен зависеть от переменных модели (не обязательно напрямую, можно через результат вычисления других формул). Ограничения модели могут быть наложены как на диапазон варьирования самих переменных, так и на результаты вычисления других формул модели, зависящих от этих переменных. Все ячейки, содержащие переменные и ограничения модели должны быть расположены только на одном листе книги. Ввод параметров в диалоговом окне Поиска решения возможен только с этого листа. Целевая функция (ячейка) также должна быть расположена на этом листе. Но, промежуточные вычисления (формулы) могут быть размещены на других листах.

Совет . Организуйте данные модели так, чтобы на одном листе MS EXCEL располагалась только одна модель. В противном случае, для выполнения расчетов придется постоянно сохранять и загружать настройки Поиска решения (см. ниже).

Приведем алгоритм работы с Поиском решения , который советуют сами разработчики ( ]]> www.solver.com ]]> ):

  • Определите ячейки с переменными модели (decision variables);
  • Создайте формулу в ячейке, которая будет рассчитывать целевую функцию вашей модели (objective function);
  • Создайте формулы в ячейках, которые будут вычислять значения, сравниваемые с ограничениями (левая сторона выражения);
  • С помощью диалогового окна Поиск решения введите ссылки на ячейки содержащие переменные, на целевую функцию, на формулы для ограничений и сами значения ограничений;
  • Запустите Поиск решения для нахождения оптимального решения.

Проделаем все эти шаги на простом примере.

Простой пример использования Поиска решения

Необходимо загрузить контейнер товарами, чтобы вес контейнера был максимальным. Контейнер имеет объем 32 куб.м. Товары содержатся в коробках и ящиках. Каждая коробка с товаром весит 20кг, ее объем составляет 0,15м3. Ящик — 80кг и 0,5м3 соответственно. Необходимо, чтобы общее количество тары было не меньше 110 штук.

Данные модели организуем следующим образом (см. файл примера ).

Переменные модели (количество каждого вида тары) выделены зеленым. Целевая функция (общий вес всех коробок и ящиков) – красным. Ограничения модели: по минимальному количеству тары (>=110) и по общему объему ( =СУММПРОИЗВ(B8:C8;B6:C6) – это общий вес всех коробок и ящиков, загруженных в контейнер. Аналогично рассчитываем общий объем — =СУММПРОИЗВ(B7:C7;B8:C8) . Эта формула нужна, чтобы задать ограничение на общий объем коробок и ящиков ( =СУММ(B8:C8) . Теперь с помощью диалогового окна Поиск решения введем ссылки на ячейки содержащие переменные, целевую функцию, формулы для ограничений и сами значения ограничений (или ссылки на соответствующие ячейки). Понятно, что количество коробок и ящиков должно быть целым числом – это еще одно ограничение модели.

После нажатия кнопки Найти решение будут найдены такие количества коробок и ящиков, при котором общий их вес (целевая функция) максимален, и при этом выполнены все заданные ограничения.

Совет : в статье » Поиск решения MS EXCEL. Экстремум функции с несколькими переменными. Граничные условия заданы уравнениями » показано решение задачи, в которой функция и граничные условия заданы в явном виде, т.е. математическими выражениями типа F(x1, x2, x3)=x1+2*x2+6*x3, что существенно облегчает построение модели, т.к. не требуется особо осмыслять задачу: можно просто подставить переменные x в поле переменные, а ограничения ввести в соответствующее поле окна Поиска решения.

Резюме

На самом деле, основной проблемой при решении оптимизационных задач с помощью Поиска решения является отнюдь не тонкости настройки этого инструмента анализа, а правильность построения модели, адекватной поставленной задаче. Поэтому в других статьях сконцентрируемся именно на построении моделей, ведь «кривая» модель часто является причиной невозможности найти решение с помощью Поиска решения . Зачастую проще просмотреть несколько типовых задач, найти среди них похожую, а затем адаптировать эту модель под свою задачу. Решение классических оптимизационных задач с помощью Поиска решения рассмотрено в этом разделе .

Поиску решения не удалось найти решения (Solver could not find a feasible solution)

Это сообщение появляется, когда Поиск решения не смог найти сочетаний значений переменных, которые одновременно удовлетворяют всем ограничениям. Если вы используете Симплекс метод решения линейных задач , то можно быть уверенным, что решения действительно не существует. Если вы используете метод решения нелинейных задач, который всегда начинается с начальных значений переменных, то это может также означать, что допустимое решение далеко от этих начальных значений. Если вы запустите Поиск решения с другими начальными значениями переменных, то, возможно, решение будет найдено. Представим, что при решении задачи нелинейным методом, ячейки с переменными были оставлены не заполненными (т.е. начальные значения равны 0), и Поиск решения не нашел решения. Это не означает, что решения действительно не существует (хотя это может быть и так). Теперь, основываясь на результатах некой экспертной оценки, в ячейки с переменными введем другой набор значений, который, по Вашему мнению, близок к оптимальному (искомому). В этом случае, Поиск решения может найти решение (если оно действительно существует).

Примечание . О влиянии нелинейности модели на результаты расчетов можно прочитать в последнем разделе статьи Поиск решения MS EXCEL (4.3). Выбор места открытия нового представительства .

В любом случае (линейном или нелинейном), Вы должны сначала проанализировать модель на непротиворечивость ограничений, то есть условий, которые не могут быть удовлетворены одновременно. Чаще всего это связано с неправильным выбором соотношения (например, =) или граничного значения. Если, например, в рассмотренном выше примере, значение максимального объема установить 16 м3 вместо 32 м3, то это ограничение станет противоречить ограничению по минимальному количеству мест (110), т.к. минимальному количеству мест соответствует объем равный 16,5 м3 (110*0,15, где 0,15 – объем коробки, т.е. самой маленькой тары). Установив в качестве ограничения максимального объема 16 м3, Поиск решения не найдет решения.

При ограничении 17 м3 Поиск решения найдет решение.

Некоторые настройки Поиска решения

Метод решения Рассмотренная выше модель является линейной, т.е. целевая функция (M – общий вес, который может быть максимален) выражена следующим уравнением M=a1*x1+a2*x2, где x1 и x2 – это переменные модели (количество коробок и ящиков), а1 и а2 – их веса. В линейной модели ограничения также должны быть линейными функциями от переменных. В нашем случае ограничение по объему V=b1*x1+b2*x2 также выражается линейной зависимостью. Очевидно, что другое ограничение — Максимальное количество тары (n) – также линейно x1+x2

Мануал по решению типизированных задач в Microsoft Excel

Время от времени некоторым (а может и более, чем некоторым) из нас приходится сталкиваться с задачами по обработке небольших массивов данных, начиная от составления и анализа домашнего бюджета и заканчивая какими-либо расчетами по работе, учебе и т.д. Пожалуй, наиболее подходящим инструментом для этого является Microsoft Excel (или возможно иные его аналоги, но они менее распространены).

Поиск выдал мне всего одну статью на Хабре по схожей тематике — «Талмуд по формулам в Google SpreadSheet». В ней дано хорошее описание базовых вещей для работы в excel (хотя он и не 100% про сам excel).

Таким образом, накопив определенный пул запросов/задач, появилась идея их типизировать и предложить возможные решения (пусть не все возможные, но быстро дающие результат).

Речь пойдет о решении наиболее распространенных задач, с которыми сталкиваются пользователи.

Описание решений построено следующим образом – дается кейс, содержащий исходное задание, которое постепенно усложняется, к каждому шагу дано развернутое решение с пояснениями. Наименования функций будут даваться на русском языке, но в скобках при первом упоминании будет приводиться оригинальное наименование на английском языке (т.к. по опыту у подавляющего большинства пользователей установлена русскоязычная версия).

Кейс_1: Логические функции и функции поиска совпадений
«У меня есть набор значений в табличке и необходимо что бы при выполнении определенного условия/набора условий выводилось определенное значение» (с) Пользователь

Данные, как правило, представлены в табличной форме:

image

  • если значение в столбце «Количество» больше 5,
  • то нужно вывести в колонке «Результат» значение «Заказ не требуется»,
  • Лог_выражение — выражение, дающее в результате значение ИСТИНА или ЛОЖЬ.
  • Значение_если_истина — значение, которое выводится, если логическое выражение истинно
  • Значение_если_ложь — значение, которое выводится, если логическое выражение ложно

На выходе получаем результат:

image

  • если значение в столбце «Количество» больше 5, а значение в колонке «Тип» равно «А»
  • то нужно вывести в колонке «Результат» значение «1», в обратном случае «0».
  • Логическое_значение1-2 и т.д. — проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ

Таким образом, используя сочетание 2-х формул, мы находим решение нашей задачи и получаем результат:

image

  • если значение в столбце «Количество» равно 10, а значение в колонке «Тип» равно «А»
  • или же значение в столбце «Количество» больше или равно 5, а значение «Тип» равен «Б»
  • то нужно вывести в колонке «Результат» значение «1», в обратном случае «0».

Как видно из записи, в формулу «ЕСЛИ» включено одно условие «ИЛИ» (OR) и два условия с использованием формулы «И», включенных в него. Если хотя бы одно из условий 2-го уровня имеет значение «ИСТИНА», то в колонку «Результат» будет выведен результат «1», в противном случае будет «0».
Результат:

image

  • 1 = А
  • 2 = Б
  • 3 = В
  • 4 = Г

image

Как видно, написание подобной формулы не только не очень удобно и громоздко, но и может занять некоторое время на ее редактирование у неопытного пользователя в случае ошибки.
Минус подобного подхода в том, что он применим для небольшого количества условий, ведь, все их придется набирать вручную и «раздувать» нашу формулу до больших размеров, однако подход отличает полная «всеядность» к значениям и универсальность использования.

  • Номер_индекса — номер выбираемого аргумента-значения. Номер индекса должен быть числом от 1 до 254, формулой или ссылкой на ячейку, содержащую число в диапазоне от 1 до 254.
  • Значение1, значение2,… — значение от 1 до 254 аргументов-значений, из которых функция «ВЫБОР», используя номер индекса, выбирает значение или выполняемое действие. Аргументы могут быть числами, ссылками на ячейки, определенными именами, формулами, функциями или текстом.
  • 1 = А
  • 2 = Б
  • 3 = В
  • 4 = Г
  • 1 = А
  • 2 = Б
  • 3 = В
  • 5 = Г

Как видно, значение «4» в формуле нам приходится оставить пустым и перенести результат «Г» на порядковый номер «5».

  • Искомое_значение – значение, поиск которого осуществляется функцией.
  • Таблица – диапазон ячеек, содержащий данные. Именно в этих ячейках будет происходить поиск. Значения могут быть текстовыми, числовыми или логическими.
  • Номер_столбца — номер столбца в аргументе «Таблица», из которого будет выводиться значение в случае совпадения. Важно понимать, что отсчет столбцов происходит не по общей сетке листа (A.B,C,D и т.д.), а внутри массива, указанного в аргументе «Таблица».
  • Интервальный_просмотр — определяет, какое совпадение должна найти функция — точное или приблизительное.

image

Затем в рабочей части таблицы уже прописывается формула со ссылкой на справочник, заполненный ранее. Т.е. в справочнике в столбце «D» происходит поиск значения из столбца «А» и при нахождении соответствия выводится значение из столбца «Е» в столбец «В».
Синтаксис формулы:
Вывод результата в ячейку B2:

image

Теперь представим ситуацию, когда необходимо подтянуть данные в одну таблицу из другой, при этом таблицы не идентичны. См. пример ниже

image

Видно, что строки в столбцах «Продукт» обеих таблиц не совпадают, однако, это не является препятствием для использования функции «ВПР».
Вывод результата в ячейку B2:

  • Ссылка — ячейка или диапазон ячеек, для которых требуется возвратить номер столбца.

Вместо числа «1» можно использовать любое число (а также не только вычитать его, но и прибавлять к полученному значению), для получения желаемого результата, если нет желания ссылаться на определенную ячейку в столбце с нужным нам номером.
Получившийся результат:

image

  • Если в столбце «Справочник» указано число 1, данные должны тянуться из таблицы «Справочник_1», если число 2, то из таблицы «Справочник_2» в соответствии с указанным месяцем

image

Вариант решения, который сразу приходит на ум, следующий:
Вывод результата в ячейку C3:

Плюсы: формула может включать до 254 наименований справочников, минусы – их наименование должно быть строго числовым.
Результат для формулы с использованием функции «ВЫБОР»:

image

  • Представим, что у нас как всегда есть массив данных в табличной форме (если нет, то мы к нему приводим данные), из массива по определенным признакам необходимо получить значения и поместить их в другую табличную форму.

image

Как видно из табличных форм, каждая позиция имеет не только наименование (которое не является уникальным), но также и относится к определенному классу и имеет свой вариант фасовки.
Используя сочетание имени и класса и фасовки, мы можем создать новый признак, для этого в таблице с данными создаем дополнительный столбец «Доп.признак», который заполняем при помощи следующей формулы:

В функции «ВПР» в качестве аргумента «искомое_значение» используем все ту же связку трех признаков (наименование_класс_фасовка), но берем ее уже в таблице для заполнения и заносим непосредственно в аргумент (как вариант, можно было бы выделить значение для аргумента в дополнительный столбец в таблице для заполнения, но это действие будет излишним).
Напоминаю, что использование функции «ЕСЛИОШИБКА» (IFERROR) необходимо, если искомое значение так и не будет найдено, и функция «ВПР» выведет нам значение «#Н/Д» (об этом ниже).
Результат на картинке ниже:

image

Данный прием можно использовать и для большего количества признаков, единственное условие – уникальность получаемых комбинаций, если она не соблюдается, то результат будет некорректным.

Кейс_3 Поиск значения в массиве, или когда ВПР не в силах нам помочь

  • в столбце «Условие поиска» указано значение и необходимо определить, присутствует ли оно в столбце «Массив для поиска»

image

Как мы видим, функция «ВПР» тут бессильна, т.к. мы ищем не точное совпадение, а именно наличие в ячейке нужного нам значения.
Для решения задачи необходимо использовать комбинацию нескольких функций, а именно:
«ЕСЛИ»
«ЕСЛИОШИБКА»
«СТРОЧН»
«НАЙТИ»

По порядку обо всех, «ЕСЛИ» мы уже разобрали ранее, потому перейдем к функции «ЕСЛИОШИБКА» (IFERROR)

  • Значение — аргумент, проверяемый на возникновение ошибок.
  • Значение_при_ошибке — значение, возвращаемое при ошибке при вычислении по формуле. Возможны следующие типы ошибок: #Н/Д, #ЗНАЧ!, #ССЫЛКА!, #ДЕЛ/0!, #ЧИСЛО!, #ИМЯ? и #ПУСТО!.
  • Текст — текст, преобразуемый в нижний регистр.

Теперь подробнее о синтаксисе функции «НАЙТИ» (FIND).

  • Искомый_текст — текст, который необходимо найти.
  • Просматриваемый_текст — текст, в котором нужно найти искомый текст.
  • Нач_позиция — знак, с которого нужно начать поиск. Первый знак в тексте «просматриваемый_текст» имеет номер 1. Если номер не указан, он по умолчанию считается равным 1.
  1. СТРОЧН(A2) – преобразует аргумент «Искомый_текст» в ячейке в А2 в текст с нижним регистром
  2. Функция «НАЙТИ» начинает поиск преобразованного аргумента «Искомый_текст» в массиве «Просматриваемый_текст», который преобразовывается функцией «СТРОЧН(E2)», также в текст с нижним регистром.
  3. В случае если, функция находит совпадение, т.е. возвращает порядковый номер первого символа совпадающего слова/значения, срабатывает условие ИСТИНА в формуле «ЕСЛИ», т.к. полученное значение не равно нулю. Как результат, в столбце «Результат» будет выведено значение «Bingo!»
  4. Если же, функция не находит совпадение т.е. порядковый номер первого символа совпадающего слова/значения не указывается и вместо значения возвращается ошибка, срабатывает условие, заложенное в формулу «ЕСЛИОШИБКА» и возвращается значение равное «0», что соответствует условию ЛОЖЬ в формуле «ЕСЛИ», т.к. полученное значение равно «0». Как результат, в столбце «Результат» будет выведено значение «fail».

image

Как видно из рисунка выше, благодаря функциям «СТРОЧН» и «НАЙТИ» мы находим искомые значения вне зависимости от регистра символов, и места нахождения в ячейке, но необходимо обратить внимание на строку 5.
Условие поиска задано как «111», но в массиве поиска указано значение «1111111 печенюшки», однако формула выдает результат «Bingo!». Это происходит потому, что значение «111» входит в ряд значений «1111111», как следствие находится совпадение. В обратном случае данное условие не сработает.

Кейс_4 Поиск значения в массиве по нескольким условиям, или когда ВПР тем более не в силах нам помочь

Представим ситуацию, когда необходимо найти значение из «Таблица с результатом» в двумерном массиве «Справочник» по нескольким условиям, а именно по значению «Наименование» и «Месяц».
Табличная форма задания будет иметь следующий вид:

image

  • В таблицу с результатом необходимо подтянуть данные в соответствии с совпадением условий «Наименование» и «Месяц».

Синтаксис функции «ИНДЕКС» (INDEX)

  • Массив — диапазон ячеек, из которого будут показываться значения в случае совпадения условий их поиска.
  • Если массив содержит только одну строку или один столбец, аргумент «номер_строки» или «номер_столбца» соответственно не является обязательным.
  • Если массив занимает больше одной строки и одного столбца, а из аргументов «номер_строки» и «номер_столбца» задан только один, то функция «ИНДЕКС» возвращает массив, состоящий из целой строки или целого столбца аргумента «массив».
  • Номер_строки — номер строки в массиве, из которой требуется возвратить значение.
  • Номер_столбца — номер столбца в массиве, из которого требуется возвратить значение.

Синтаксис функции «ПОИСКПОЗ» (MATCH)

  • Искомое_значение — значение, которое сопоставляется со значениями в аргументе просматриваемый_массив. Аргумент искомое_значение может быть значением (числом, текстом или логическим значением) или ссылкой на ячейку, содержащую такое значение.
  • Просматриваемый_массив — диапазон ячеек, в которых производится поиск.
  • Тип_сопоставления — необязательный аргумент. Число -1, 0 или 1.

возвращает значение #Н/Д, т.к. значение «1» отсутствует в просматриваемом диапазоне.

Таким образом, мы получили координаты точки (1; #Н/Д) которые функция «ИНДЕКС» использует для поиска в аргументе «Массив».
Полностью написанная функция для ячейки B4 будет иметь следующий вид:

Поскольку, аргумент «Номер_столбца» имеет значение «#Н/Д», то результат для ячейки «B4» будет соответствующий.
Как видно из получившегося результата не все значения в таблице с результатом находят совпадение со справочником и в итоге мы видим, что часть значений в таблице выводится в виде «#Н/Д», что затрудняет использование данных для дальнейших расчетов.
Результат:

image

Что бы нейтрализовать этот негативный эффект используем функцию «ЕСЛИОШИБКА», о которой мы читали ранее, и заменяем значение, возвращающееся при ошибке на «0», тогда формула будет иметь вид:
Вывод результата в ячейку B4:

image

Как видно на картинке, значения «#Н/Д» более не мешают нам в последующих вычислениях с использованием значений в таблице с результатом.

Кейс_5 Поиск значения в диапазоне чисел

  • От 0 до 1000 = А
  • От 1001 до 1500 = Б
  • От 1501 до 2000 = В
  • От 2001 до 2500 = Г
  • Более 2501 = Д

image

Функция ПРОСМОТР (LOOKUP) возвращает значение из строки, столбца или массива. Функция имеет две синтаксических формы: векторную и форму массива.

  • Искомое_значение — значение, которое функция ПРОСМОТР ищет в первом векторе. Искомое_значение может быть числом, текстом, логическим значением, именем или ссылкой на значение.
  • Просматриваемый_вектор — диапазон, состоящий из одной строки или одного столбца. Значения в аргументе просматриваемый_вектор могут быть текстом, числами или логическими значениями.
  • Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания: . -2, -1, 0, 1, 2, . A-Z, ЛОЖЬ, ИСТИНА; в противном случае функция ПРОСМОТР может возвратить неправильный результат. Текст в нижнем и верхнем регистрах считается эквивалентным.
  • Вектор_результатов — диапазон, состоящий из одной строки или столбца. Вектор_результатов должен иметь тот же размер, что и просматриваемый_вектор.

Вывод результата в ячейку B3:

image

Аргументы «Просматриваемый_вектор» и «Вектор_результата» можно записать в форме массива – в этом случае не придется выводить их в отдельную таблицу на листе Excel.
В этом случае функция будет выглядеть следующим образом:
Вывод результата в ячейку B3:
=ПРОСМОТР(E3; ; )

Кейс_6 Суммирование чисел по признакам

Для суммирования чисел по определенным признакам можно использовать три разных функции:
СУММЕСЛИ (SUMIF) – суммирует только по одному признаку
СУММЕСЛИМН (SUMIFS) – суммирует по множеству признаков
СУММПРОИЗВ (SUMPRODUCT) – суммирует по множеству признаков
Существует также вариант с использованием «СУММ» (SUM) и функции формулы массивов, когда формула «СУММ» возводится в массив:
(
но такой подход довольно неудобен и полностью перекрывается по функционалу формулой «СУММПРОИЗВ»
Теперь подробнее по синтаксису «СУММПРОИЗВ»:

  • Массив1 — первый массив, компоненты которого нужно перемножить, а затем сложить результаты.
  • Массив2, массив3… — от 2 до 255 массивов, компоненты которых нужно перемножить, а затем сложить результаты.
  • Найти общую сумму по стоимости отгрузок по каждому из продуктов за определенный период:

image

Как видно из таблицы с данными, что бы посчитать стоимость необходимо цену умножить на количество, а полученное значение, применив условия отбора переносить в таблица с результатом.
Однако, формула «СУММПРОИЗ» позволяет проводить такие расчеты внутри формулы.
Вывод результата в ячейку B4:

– перемножаем столбцы «Количество» и «Цена» в таблице с данными.
Несомненным плюсом данной функции является свободный порядок записи условий, их можно записывать в любом порядке, на результат это не повлияет.
Результат:

image

Теперь усложним условие и добавим требование, что бы отбор по наименованию «печеньки» происходил только по классам «малые» и «большие», а по наименованию «булки» все, кроме по классу «с джемом»:

Вывод результата в ячейку B4:

– на самом деле, в данной формуле можно было написать условие отбора также как и при отборе по печенькам, но тогда, пришлось бы перечислять три условия в формуле, в данном случае, проще написать исключение – не равно «с джемом» для этого используем значение «<>».
Вообще, если группы признаков/классов заранее известны, то лучше объединять их в эти группы, создавая справочники, чем записывать все условия в функцию, раздувая ее.
Результат:

image

Что ж, вот мы и подошли к концу нашего краткого мануала, который на самом деле мог бы быть намного больше, но целью было все-таки дать решение наиболее встречающихся ситуаций, а не описывать решение частных (но гораздо более интересных случаев).
Надеюсь, что мануал поможет кому-нибудь в решении задач при помощи Excel, ведь это будет значить, что мой труд не пропал зря!

Решение прикладных задач в Excel

Задача учителя: Показать приемы использования функций Excel Поиск решения и Подбор параметра.

Методика проведения урока

Excel позволяет не только производить расчеты, но и решать сложные задачи из различных сфер деятельности, такие как решение уравнений, задачи прогнозирования и оптимизации и другие. Решение задач такого вида может быть осуществлено с помощью инструмента Поиск решения.

Формулировка таких задач может представлять собой систему уравнений с несколькими неизвестными и набор ограничений на решения. Поэтому решение задачи надо начинать с построения соответствующей модели.

Для того чтобы надстройка Поиск решения загружалась сразу при запуске Excel:

  • Выберите команду Кнопка Office, Параметры Excel;
  • В диалоговом окне слева выберите команду Надстройки, а справа выделите команду Поиск решения и нажмите ОК.

Для того чтобы команда Подбор параметра находилась на панели быстрого доступа необходимо:

  • Выберите команду Кнопка Office, Параметры Excel;
  • Слева в диалоговом окне выберите команду Настройки, справа – все команды и ОК;
  • В окне команд выберите команду Подбор параметра и нажмите Добавить.

Познакомимся с этими командами на примере.

Задача. Предположим, что мы решили производить 2 вида полок А и В. На изготовление модели А требуется 3 м 3 досок, на изготовление модели В — 4 м 3 досок. За неделю можно получить не более 1800 м 3 досок. На изготовление модели А требуется – 15 минут, модели В – 30 минут. Рабочая неделя для 4 сотрудников составляет 160 часов. Сколько полок А и В надо изготовить, чтобы получить максимальную прибыль, если полка А стоит 3500 рублей, полка В – 4800 рублей.

Технология работы:

  • Запустите табличный процессор Excel.
  • Заполните таблицу в соответствии с образцом:

Поиск решений как сделать в excel 2007

поиск решений как сделать в excel 2007

Одной из самых интересных функций в программе Microsoft Excel является Поиск решения. Вместе с тем, следует отметить, что данный инструмент нельзя отнести к самым популярным среди пользователей в данном приложении. А зря. Ведь эта функция, используя исходные данные, путем перебора, находит наиболее оптимальное решение из всех имеющихся. Давайте выясним, как использовать функцию Поиск решения в программе Microsoft Excel.

Включение функции

Можно долго искать на ленте, где находится Поиск решения, но так и не найти данный инструмент. Просто, для активации данной функции, нужно её включить в настройках программы.

Для того, чтобы произвести активацию Поиска решений в программе Microsoft Excel 2010 года, и более поздних версий, переходим во вкладку «Файл». Для версии 2007 года, следует нажать на кнопку Microsoft Office в левом верхнем углу окна. В открывшемся окне, переходим в раздел «Параметры».

поиск решений как сделать в excel 2007

В окне параметров кликаем по пункту «Надстройки». После перехода, в нижней части окна, напротив параметра «Управление» выбираем значение «Надстройки Excel», и кликаем по кнопке «Перейти».

поиск решений как сделать в excel 2007

Открывается окно с надстройками. Ставим галочку напротив наименования нужной нам надстройки – «Поиск решения». Жмем на кнопку «OK».

поиск решений как сделать в excel 2007

После этого, кнопка для запуска функции Поиска решений появится на ленте Excel во вкладке «Данные».

поиск решений как сделать в excel 2007

Подготовка таблицы

Теперь, после того, как мы активировали функцию, давайте разберемся, как она работает. Легче всего это представить на конкретном примере. Итак, у нас есть таблица заработной платы работников предприятия. Нам следует рассчитать премию каждого работника, которая является произведением заработной платы, указанной в отдельном столбце, на определенный коэффициент. При этом, общая сумма денежных средств, выделяемых на премию, равна 30000 рублей. Ячейка, в которой находится данная сумма, имеет название целевой, так как наша цель подобрать данные именно под это число.

поиск решений как сделать в excel 2007

Коэффициент, который применяется для расчета суммы премии, нам предстоит вычислить с помощью функции Поиска решений. Ячейка, в которой он располагается, называется искомой.

поиск решений как сделать в excel 2007

Целевая и искомая ячейка должны быть связанны друг с другом с помощью формулы. В нашем конкретном случае, формула располагается в целевой ячейке, и имеет следующий вид: «=C10*$G$3», где $G$3 – абсолютный адрес искомой ячейки, а «C10» — общая сумма заработной платы, от которой производится расчет премии работникам предприятия.

поиск решений как сделать в excel 2007

Запуск инструмента Поиск решения

После того, как таблица подготовлена, находясь во вкладке «Данные», жмем на кнопку «Поиск решения», которая расположена на ленте в блоке инструментов «Анализ».

поиск решений как сделать в excel 2007

Открывается окно параметров, в которое нужно внести данные. В поле «Оптимизировать целевую функцию» нужно ввести адрес целевой ячейки, где будет располагаться общая сумма премии для всех работников. Это можно сделать либо пропечатав координаты вручную, либо кликнув на кнопку, расположенную слева от поля введения данных.

поиск решений как сделать в excel 2007

После этого, окно параметров свернется, а вы сможете выделить нужную ячейку таблицы. Затем, требуется опять нажать по той же кнопке слева от формы с введенными данными, чтобы развернуть окно параметров снова.

поиск решений как сделать в excel 2007

Под окном с адресом целевой ячейки, нужно установить параметры значений, которые будут находиться в ней. Это может быть максимум, минимум, или конкретное значение. В нашем случае, это будет последний вариант. Поэтому, ставим переключатель в позицию «Значения», и в поле слева от него прописываем число 30000. Как мы помним, именно это число по условиям составляет общую сумму премии для всех работников предприятия.

поиск решений как сделать в excel 2007

Ниже расположено поле «Изменяя ячейки переменных». Тут нужно указать адрес искомой ячейки, где, как мы помним, находится коэффициент, умножением на который основной заработной платы будет рассчитана величина премии. Адрес можно прописать теми же способами, как мы это делали для целевой ячейки.

поиск решений как сделать в excel 2007

В поле «В соответствии с ограничениями» можно выставить определенные ограничения для данных, например, сделать значения целыми или неотрицательными. Для этого, жмем на кнопку «Добавить».

поиск решений как сделать в excel 2007

После этого, открывается окно добавления ограничения. В поле «Ссылка на ячейки» прописываем адрес ячеек, относительно которых вводится ограничение. В нашем случае, это искомая ячейка с коэффициентом. Далее проставляем нужный знак: «меньше или равно», «больше или равно», «равно», «целое число», «бинарное», и т.д. В нашем случае, мы выберем знак «больше или равно», чтобы сделать коэффициент положительным числом. Соответственно, в поле «Ограничение» указываем число 0. Если мы хотим настроить ещё одно ограничение, то жмем на кнопку «Добавить». В обратном случае, жмем на кнопку «OK», чтобы сохранить введенные ограничения.

поиск решений как сделать в excel 2007

Как видим, после этого, ограничение появляется в соответствующем поле окна параметров поиска решения. Также, сделать переменные неотрицательными, можно установив галочку около соответствующего параметра чуть ниже. Желательно, чтобы установленный тут параметр не противоречил тем, которые вы прописали в ограничениях, иначе, может возникнуть конфликт.

поиск решений как сделать в excel 2007

Дополнительные настройки можно задать, кликнув по кнопке «Параметры».

поиск решений как сделать в excel 2007

Здесь можно установить точность ограничения и пределы решения. Когда нужные данные введены, жмите на кнопку «OK». Но, для нашего случая, изменять эти параметры не нужно.

поиск решений как сделать в excel 2007

После того, как все настройки установлены, жмем на кнопку «Найти решение».

поиск решений как сделать в excel 2007

Далее, программа Эксель в ячейках выполняет необходимые расчеты. Одновременно с выдачей результатов, открывается окно, в котором вы можете либо сохранить найденное решение, либо восстановить исходные значения, переставив переключатель в соответствующую позицию. Независимо от выбранного варианта, установив галочку «Вернутся в диалоговое окно параметров», вы можете опять перейти к настройкам поиска решения. После того, как выставлены галочки и переключатели, жмем на кнопку «OK».

поиск решений как сделать в excel 2007

Если по какой-либо причине результаты поиска решений вас не удовлетворяют, или при их подсчете программа выдаёт ошибку, то, в таком случае, возвращаемся, описанным выше способом, в диалоговое окно параметров. Пересматриваем все введенные данные, так как возможно где-то была допущена ошибка. В случае, если ошибка найдена не была, то переходим к параметру «Выберите метод решения». Тут предоставляется возможность выбора одного из трех способов расчета: «Поиск решения нелинейных задач методом ОПГ», «Поиск решения линейных задач симплекс-методом», и «Эволюционный поиск решения». По умолчанию, используется первый метод. Пробуем решить поставленную задачу, выбрав любой другой метод. В случае неудачи, повторяем попытку, с использованием последнего метода. Алгоритм действий всё тот же, который мы описывали выше.

Как видим, функция Поиск решения представляет собой довольно интересный инструмент, который, при правильном использовании, может значительно сэкономить время пользователя на различных подсчетах. К сожалению, далеко не каждый пользователь знает о его существовании, не говоря о том, чтобы правильно уметь работать с этой надстройкой. В чем-то данный инструмент напоминает функцию «Подбор параметра…», но в то же время, имеет и существенные различия с ним.

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Надстройка Поиск решений в Excel 2007 не является стандартной. Она предназначается для сложных вычислений, когда имеется больше одной неизвестной. Поэтому она не включается в обычный набор параметров программы. Но если в ней есть необходимость, то она способна предложить пользователю эффективную работу и высокую продуктивность.

Что такое Поиск решений?

Поиск решений в Excel 2007 является надстройкой программы. Это означает, что в обычной конфигурации, выпускаемой производителем, этот пакет не устанавливается. Его нужно загружать и настраивать отдельно. Дело в том, что чаще всего пользователи обходятся без него. Также надстройку нередко называют «Решатель», поскольку она способна вести точные и быстрые вычисления, зачастую независимо от того, насколько сложная задача ей представлена.

Если версия Microsoft Office является оригинальной, тогда проблем с установкой не возникнет. Пользователю нужно сделать несколько переходов:

Откроется окно, в котором есть кнопка перехода. После клика на нее на экране появится список всех предлагаемых надстроек, как установленных, так и неиспользуемых. Теперь нужно найти Поиск решений, затем поставить галочку. Инструмент активизирован, можно пользоваться им в любое время.

Зачем нужен Решатель?

Для чего можно использовать Поиск решений в Excel 2007, и стоит ли вообще его устанавливать? Когда у пользователя присутствует целевая функция, зависящая от нескольких параметров, надстройка будет подбирать решения задачи в соответствии с исходными данными. Таковыми может оказаться переменная, неизвестная или, например, итоговое значение. То есть, пользователь может иметь начальные характеристики и ответ, а программа подберет ход решения, предоставит формулу.

Таким образом, посредством надстройки можно найти:

  • Удачное распределение рабочих ресурсов, чтобы достичь максимальной прибыли в ходе деятельности компании или отдельного отдела, филиала.
  • Распределение вложений при минимизированных рисках.
  • Решение задач, где есть больше одной неизвестной (будет предложено несколько вариантов ответов, из которых пользователь сам подберет наиболее подходящий).
  • Сохранение и загрузка модели решения. Оптимальный вариант для сотрудников, которые вынуждены постоянно менять компьютер или ноутбук.
  • Решение сразу нескольких задач с разными переменными, неизвестными, формулами и интегралами.

Программа открывает большие возможности, но ею нужно научиться правильно пользоваться.

Как работает Решатель?

Помимо решателя, в Excel есть такая функция, как подбор параметра. Она рекомендована к использованию в случаях, когда имеется только одно неизвестное значение. Эта возможность программы требует намного меньше ресурсных компьютерных затрат, поэтому быстрее выдаст результат.

Поиск решений в Excel 2007 применяется для самых сложных задач, где имеется несколько неизвестных, часто встречаются переменные. В общей постановке их можно сформулировать следующим образом:

  1. Найти неизвестные→несколько «x».
  2. При условии, что→формула или функция.
  3. При ограничениях→здесь обычно указывается неравенство, либо минимальные/максимальные значения.

Также нужно указать на ячейки, с которыми следует проводить вычисления. Есть возможность решать несколько разных задач, если задать программе соответствующие параметры.

Настройка параметров Поиска решений

Чтобы функция Поиска решений в Excel 2007 работала так, как необходимо пользователю, нужно ввести правильные параметры. Обычно они ограничиваются 1-3 характеристиками, но с более сложными задачами потребуется глобальная настройка.

Параметры в Поиске решений программы Office Excel 2007 могут быть следующими:

  • Максимальное время – количество секунд, которые пользователь выделяет программе на решение. Оно зависит от сложности задачи.
  • Максимальное число интеграций. Это количество ходов, которые делает программа на пути к решению задачи. Если оно увеличивается, то ответ не будет получен.
  • Погрешность или точность, чаще всего применяется при решении десятичных дробей (к примеру, до 0,0001).
  • Допустимое отклонение. Используется при работе с процентами.
  • Неотрицательные значения. Применяется тогда, когда решается функция с двумя правильными ответами (например, +/-X).
  • Показ результатов интеграций. Такая настройка указывается в случае, если важен не только результат решений, но и их ход.
  • Способ поиска – выбор оптимизационного алгоритма. Обычно применяется «метод Ньютона».

После того как все настройки выбраны, обязательно нужно нажать кнопку сохранения.

Параметры задачи в функции Поиска решений

Работа такой надстройки, как Поиск решения в Excel, осуществляется в соответствии с заданными характеристиками вычисления. Наиболее важной из них является метод. Есть два их варианта. «Метод Ньютона» является настройкой по умолчанию. Он способен работать с большей памятью, но меньшими интеграциями. Поэтому для стандартных и не особо сложных уравнений он вполне подойдет.

Также есть «метод сопряженных градиентов». Здесь запрашивается меньше памяти, но требуется больше интеграций. Следовательно, при его использовании можно решать самые сложные уравнения, использовать масштабные формулы и функции.

Формула в Excel

Есть обязательный элемент, без которого не сможет функционировать надстройка Поиска решений в программе Excel 2007 – формулы. Они представляют собой такое выражение, которое выполняет то или иное вычисление. Без равенства формул не существует. Поэтому программа не начнет распознавать таковую, когда отсутствует соответствующий знак.

Формула может включать в себя следующее:

  1. Функция. Это стандартная формула, где присутствует определенный и конкретный порядок действий, поменять который не удастся.
  2. Ссылка. Она указывает на количество клеток, которые нужно решить. При этом ячейки могут располагаться хаотично или в определенном порядке.
  3. Оператор. Это символ, который задает тип вычисления (+ – сложение, * – умножение и т.д.).
  4. Константа. Постоянное значение, которое никогда не меняется. Также для его получения не нужно производить вычисления.

Решение формул осуществляется слева направо при соблюдении всех математических правил.

Создание формулы

Формулы являются уравнениями, которые способствуют выполнению вычислений программы. Если таковые не вводить, то не будет работать Поиск решения в Excel. Задачи, соответственно, тоже не станут решаться. Поэтому для удачного выполнения поставленного задания необходимо правильно ввести формулу.

Вычисление начинается со знака равенства. К примеру, если в ячейке указывается «=КОРЕНЬ(номер клетки)», то будет использована соответствующая функция.

После того как была напечатана основная формула со знаком «=», нужно указать на данные, с которыми она будет взаимодействовать. Это может быть одна или несколько ячеек. Если формула подходит для 2-3 клеток, то объединить их можно, используя знак «+».

Чтобы найти нужную информацию, можно воспользоваться функцией поиска. Например, если нужна формула с буквой «A», то ее и надо указывать. Тогда пользователю будут предложены все данные, ее в себя включающие.

Заключение

В заключении в программе Excel 2007 нужно сохранить заданные параметры решения задач. Сделать это можно несколькими способами. Стандартный вариант с кликом на соответствующую кнопку подойдет в том случае, если для всех данных используется один метод вычислений.

Когда нужно решить сразу несколько уравнений, к примеру, найти минимум и максимум функций, то нужно сохранять не все вычисление, а его модели. Затем пользователь сможет применить их к тому или иному решению.

Надстройка Microsoft Excel «Поиск решения» является мощным средством поиска решений и применяется при решении задач оптимизации. Процедура поиска решения позволяет находить оптимальное значение формулы содержащейся в ячейке, которую называют целевой. Процедура работает с группой ячеек, прямо или косвенно связанных с формулой в целевой ячейке.

Краткое описание надстройки

Для получения заданного результата по формуле, процедура изменяет значения во влияющих ячейках. Для уменьшения интервала значений, используемых в модели, используются ограничения значений. Надстройка поиск решений является стандартной надстройкой Microsoft Office Excel и доступна сразу при установке Microsoft Office в целом или Microsoft Excel в частности.

Как установить надстройку?

Надстройку «Поиск решения» можно установить двумя способами. Стандартные надстройки, такие как «Поиск решения» и «Пакет анализа» устанавливаются вместе с MS Office или MS Excel. Если при первоначальной установке стандартная надстройка не была установлена, то следует запустить процесс установки повторно. Рассмотрим установку надстройки «Поиск решения» на примере Microsoft Office 2010. В версиях 2003 и 2007 все делается аналогично.

Итак, запускаем установочный диск с пакетом приложений MS Office 2010 и выбираем опцию «Добавить или удалить компоненты».

Далее, нажимаем кнопку «Продолжить», в параметрах установки находим приложение Microsoft Excel, в компонентах этого приложения находим раздел «Надстройки», выбираем надстройку «Поиск решения» и устанавливаем параметр «Запускать с моего компьютера».

Опять жмем кнопку «Продолжить» и ожидаем пока надстройка установится.

Как подключить надстройку?

Перед использованием необходимо предварительно включить надстройку, поставив галочку перед ее названием в списке доступных надстроек диалогового окна «Надстройки».

Вызов этого окна несколько различается в зависимости от версии приложения. Подробно об этом написано в отдельной статье «Как установить надстройку для Excel 2003/2007/2010?» со скриншотами для каждой из трех версий приложения Excel, поэтому не буду повторяться. Да, добавлю лишь несколько слов о втором способе установки этой надстройки. Можно отыскать на просторах Интернета файл с названием Solver.xla (это и есть надстройка «Поиск решения») и произвести установку в соответствии с описанием по ссылке выше.

Где найти надстройку «Поиск решения» в Excel 2003/2007/2010?

После установки и подключения надстройки в Excel 2007/2010 на вкладке «Данные» появляется группа «Анализ» с новой командой «Поиск Решения». В Excel 2003 — появляется новый пункт меню «Сервис» с одноименным названием. Поиск решения — стандартная надстройка, существуют также и другие надстройки для Excel, служащие для добавления в MS Excel различных специальных возможностей.

Чтобы познакомиться с мощным инструментом Excel Поиск решения, рассмотрим и решим с вами задачу.

Необходимо найти оптимальные объемы выпуска трех видов продукции для получения максимальной прибыли от их продажи.

При решении данной задачи должны быть учтены следующие ограничения:

  • общий объем производства – всего 300 изделий;
  • должно быть произведено не менее 50 изделий А;
  • должно быть произведено не менее 40 изделий В;
  • должно быть произведено не более 40 изделий С.

1. Внести в новый рабочий лист данные для вычисления прибыли от продажи трех видов продукции, причем в ячейки столбца D, и в ячейку B6 должны быть введены формулы.

2. Запустить задачу поиска решений. Для этого: выполнить команду в Excel 2003 Сервис | Поиск решений … (В Excel 2007 и 2010 необходимо зайти в раздел Данные | Поиск решения)

Поиск решения и подбор параметров

Для анализа данных в состав Microsoft Excel встроены такие средства как Подбор параметров и Поиск решения. Подбор параметров предназначен для нахождения по известному значению функции y=f(x) неизвестного значения величины х. Поиск решения позволяет среди всех возможных допустимых решений найти оптимальное решение при заданных ограничениях. Рассмотрим использование данных средств на примерах.

Поиск решения

Поиск управленческого решения зачастую бывает связан с решением оптимизационных задач, которые имеют следующие основные особенности:

задана целевая функция, которую требуется максимизировать или минимизировать, или приравнять результат к конкретному значению;

на неизвестные наложены ограничения в форме неравенств или уравнений;

ряд неизвестных должен быть неотрицателен.

Большой класс оптимизационных задач составляют задачи, математической моделью которых является модель линейного программирования. В таких моделях целевая функция является линейной функцией и ограничения заданы в виде линейных неравенств и уравнений. В Excel есть мощное средство решения оптимизационных задач, в частности задач линейного программирования — Поиск решения. Рассмотрим две типичные задачи такого рода.

В таблице приведены данные о предприятии, производящем продукцию двух видов Р1 и Р2 из сырья трех видов S1, S2, S3. Запасы сырья равны соответственно b1, b2, b3. Расход i-го вида сырья S1 на единицу j-го вида продукции Рj равен aij. Доход, получаемый предприятием от реализации единицы j-го вида продукции Рj равен сj.

Найти план производства, обеспечивающий предприятию максимум дохода с помощью средства Поиск решения.

Решение данной задачи целесообразно выполнить в три этапа.

Первый этап: Сформулируйте экономико-математическую модель задачи (определите неизвестные, целевую функцию, ограничения на неизвестные). Для этого выполните следующие действия:

В предлагаемом примере неизвестные величины х1 и х2.обозначают соответственно планируемое количество продукции первого вида Р1 и планируемое количество продукции второго вида Р2, которые должны обеспечить предприятию максимальный доход. Эти величины должны быть неотрицательны.

Целевая функция (линейная форма) представляет суммарный доход предприятия от реализации продукции и равна

Расход сырья вида S1, S2, и S3 на производство продукции ограничен его запасами b1, b2, b3. Таким образом, возникают ограничения:

В результате приходим к математической формулировке задачи: среди неотрицательных решений системы линейных неравенств (2) найти решение, дающее максимум целевой функции z (1).

Второй этап: Введите исходные данные сформулированной модели на рабочий лист следующим образом (рис.7.1):

Рисунок 7.45.. Информационная среда для решения задачи линейного программирования

Сначала введите заголовки для всех исходных данных, участвующих в задании модели.

В ячейку B1 введите заголовок Искомые переменные.

В ячейки В2 и С2 введите соответственно обозначения для количества производимой продукции первого и второго вида х1 и х2 (мы помним, что это неизвестные величины, значения которых при заданных условиях хотим найти).

В ячейку А3 введите текст Значения искомых переменных.

В ячейку А4 введите текст Коэффициенты в целевой функции.

В ячейке D3 введите текст Целевая функция.

В ячейку А5 введите текст Ограничения.

В ячейку А6 введите текст Виды ресурсов.

В ячейки А7, А8, А9 соответственно введите названия вида сырья S1, S2, и S3.

Отформатируйте таблицу так, как показано на рис.1.

Таким образом, в этой модели диапазон ячеек B3:C3 будет содержать оптимальное количество продукции вида Р1 и вида Р2. В качестве начальных значений принимаются нули. После применения Поиска решения в них будет помещен результат решения задачи. Ячейки B3 и C3 называются изменяемыми ячейками, т.к. значения в них будут изменяться в ходе решения для того, чтобы максимизировать результат в оптимизируемой (целевой) ячейке D4. Поиск решения позволяет задавать до 200 изменяемых ячеек. Изменяемые ячейки не должны содержать формул и их изменение влияет на результат в оптимизируемой ячейке.

Диапазон ячеек B4:C4 должен содержать стоимость единицы продукции первого и второго вида, в терминах математической модели – это коэффициенты в целевой функции.

D4 – оптимизируемая ячейка должна содержать формулу, определяющую суммарный доход предприятия от продажи произведенной продукции.

Диапазон ячеек B7:C9 должен содержать количество сырья вида S1, S2, и S3 используемого на единицу выпускаемой продукции вида Р1 и вида Р2.

В диапазоне ячеек D7:D9 вычисляется объем используемого сырья. Очевидно, что количество использованного сырья не может превышать количество имеющегося на складе. Количество сырья на складе содержится в диапазоне ячеек F7:F9.

Введите в созданную форму остальной текст и исходные данные (см. рис.7. 1), а затем добавьте формулы:

В ячейку D4 введите формулу =B4*B3+C4*C3, определяющую суммарный доход предприятия от реализации продукции. Поскольку доход нужно максимизировать, то ячейку D4 назовем оптимизируемой или целевой ячейкой.

В ячейку D7 введем формулу, вычисляющую количество сырья вида S1 , необходимого для производства продуктов вида Р1 и вида Р2. Эта формула представляет собой сумму произведений значений ячеек диапазона B3:C3 на соответствующие значения ячеек из диапазона B7:В9. Формулу можно записать самим, а можно воспользоваться функцией СУММПРОИЗВ. В случае использования функции выполните следующие действия:

Активизируйте ячейку D7.

Вызовите Мастер функций, нажав в строке формул кнопку fx.

В появившемся диалоговом окне Мастер функций шаг 1 из 2 в окне Категория выделите Математические, а в окне Выберите Функцию щелкните мышью по СУММПРОИЗВ и нажмите на кнопку ОК.

Во втором диалоговом окне установите курсор ввода символов в поле ввода Массив 1. Затем протащите мышь при нажатой левой кнопке мыши по ячейкам B3:C3, предварительно отодвинув активное диалоговое окно с этих ячеек.

Установите курсор ввода символов в поле ввода Массив 2. Затем протащите мышь при нажатой левой кнопке мыши по ячейкам B7:C7, предварительно отодвинув активное диалоговое окно с этих ячеек, и нажмите на кнопку ОК или клавишу Enter. Таким образом, функция введена в ячейку D7 и имеет вид =СУММПРОИЗВ(B3:C3; B7:C7).

Аналогичные функции должны быть введены в ячейки D8 и D9. Они отличаются от введенной в D7 функции диапазоном ячеек второго массива, а первый массив во всех трех случаях одинаков. Поэтому выполним копирование введенной функции с помощью маркера автозаполнения в ячейки D8, D9, но предварительно в параметрах функции сделайте абсолютными имена ячеек B3 и C3. Для этого выделите ячейку D7 и установите курсор ввода символов в строку формул сначала перед буквой В и нажмите на клавиатуре функциональную клавишу F4, а затем установите курсор ввода символов перед буквой С и снова нажмите на клавиатуре функциональную клавишу F4, а затем Enter. Формула должна иметь вид, как на рис. 7.1.

На этом ввод ограничений и формул закончен. Обратите внимание на то, что в таблице на рис.7.1 выбран режим отображения формул, то есть нажата кнопка Показать формулы, и введенные формулы видны в ячейках. В обычном режиме в ячейках отображаются результаты, полученные после расчета формул, а сами формулы можно увидеть только в строке формул.

Третий этап: Этот шаг связан с поиском наилучшего решения и требует выполнения следующих действий:

Сохраните построенную модель на жестком диске при помощи команды Office, Сохранить как в своей папке под именем Планирование производства.

Выделите оптимизируемую ячейку D4.

Выполните команду Данные, Анализ, Поиск решения 1 . После этого появится диалоговое окно Поиск решения (рис. 2).

В поле Установить целевую ячейку уже находится ссылка на оптимизируемую ячейку, так как она была выделена перед вызовом Поиска решения. При необходимости эту ссылку можно изменить обычным образом. Программа Поиск решения может оптимизировать результат только в одной ячейке. Напомним, что в целевой ячейке должна находиться формула, которая содержит ссылки на изменяемые ячейки рабочего листа.

Выберите тип взаимосвязи между целевой ячейкой и решением путем выбора переключателя в группе Равной – Максимальному значению. В этом случае отыскивается максимальный результат для целевой ячейки.

Рисунок 7.46. Диалоговое окно Поиска решения

Перейдите в поле Изменяя ячейки и укажите смежные ячейки B3:C3, которые должны изменяться в процессе поиска наилучшего решения. Для этого протащите мышь при нажатой левой кнопке мыши по ячейкам B3:C3.

Введите ограничения, нажав на кнопку Добавить. Откроется диалоговое окно Добавление ограничения.

Введите первое ограничение. Для этого установите курсор ввода символов в поле Ссылка на ячейку и щелкните левой кнопкой мыши по ячейке D7. Справа от поля Ссылка на ячейку в раскрывающемся списке, выберите знак отношения между левой и правой частью введенного ограничения. В нашем случае – это знак ≤. Установите курсор ввода в поле Ограничение и щелкните левой кнопкой мыши по ячейке F7.

Нажмите кнопку Добавить, чтобы ввести следующее ограничение.

Ввести остальные ограничения.

После ввода последнего ограничения в диалоговом окне Добавление ограничения нажмите на кнопку Ок. Появится заполненное диалоговое окно Поиск решения.

Введите дополнительные параметры для решения задачи линейного программирования (рис. 3):

Откройте окно Параметры поиска решения, нажав кнопку Параметры в окне Поиск решения.

Установите флажок Линейная модель.

Установите флажок Неотрицательные значения.

Нажмите кнопку Ок. Вновь появится заполненное окно Поиск решения.

Нажмите кнопку Выполнить. По окончании поиска решения появится диалоговое окно Результаты поиска решения. С его помощью можно сформировать отчет.

Рисунок 7.47. Диалоговое окно Параметры поиска решения

Выберите переключатель Сохранить найденное решение и нажмите кнопку ОК.

Таблица с окончательным решением представлена на рис. 7.4. Самостоятельно проанализируйте полученные результаты и сделайте выводы.

Рисунок 7.48. Решение задачи планирования производства.

Рассмотрим решение еще одной задачи линейного программирования, которую также можно решать с помощью механизма Поиск решения, – транспортной задачи. Исходные данные транспортной задачи заданы таблицей, в которой:

В первом столбце указано, сколько единиц груза может доставить поставщик;

В первой строке указано, сколько единиц груза хочет получить потребитель;

В остальных ячейках таблицы указаны удельные транспортные затраты на перевозку единицы груза.

bj

Поиск решения в Excel

Для изготовления различных изделий А и В используются три вида сырья. На производство единицы изделия А требуется затратить сырья первого вида — А1(кг), сырья второго вида — А2(кг), сырья третьего вида — А3(кг). На производство единицы изделия В требуется затратить сырья первого вида — В1(кг), сырья второго вида — В2(кг), сырья третьего вида — В3(кг).

Производство обеспечено сырьем первого вида в количестве Р1(кг), сырьем второго вида в количестве Р2(кг), сырьем третьего вида в количестве Р3(кг).

Прибыль от реализации единицы готового изделия А составляет С1(руб.), а изделия В составляет С2(руб.).

Составить план производства изделий А и В, обеспечивающий максимальную прибыль от их реализации.

Пусть (для примера):
$$
А_1 = 15, A_2 = 4, A_3 = 4 (Затраты на производство изделия A); \\
B_1 = 2, B_2 = 3, B_3 = 14 (Затраты на производство изделия B); \\
P_1 = 285, P_2 = 113, P_3 = 322 (Количество сырья); \\
C_1 = 15, C_2 = 9 (Прибыль от реализации продукции)
$$

Решение:

Сформируем в Excel таблицу исходных значений по варианту:

Принимаем за х1 объем производства изделий А, а х2 – объем производства изделий В.

Целевая функция отражает суммарную прибыль от реализации изделий: f(x) = 15х1+9х2 → mах , где 15*х1 отражает прибыль от реализации изделий А, а 9*х2 — прибыль от реализации изделий В.

Ограничения имеют вид:
1) 15*х1+2*х2 ≤285 – по запасам сырья первого вида, (кг).
2) 4*х1+3*х2≤113 – по запасам сырья второго вида, (кг).
3) 4*х1+14*х2≤322 – по запасам сырья третьего вида, (кг).

х1≥0, х2≥0, параметры управления принимают значения больше либо равны нулю.
Таким образом, формальная постановка данной задачи имеет вид:
$$
15\cdot x_1 + 9 \cdot x_2 \rightarrow max \\
\begin
\begin
15 \cdot x_1 + 2\cdot x_2 \leq 285, \\
4 \cdot x_1 + 3 \cdot x_2 \leq 113, \\
4 \cdot x_1 + 14 \cdot x_2 \leq 322, \\
x_1 \geq 0, \\
x_2 \geq 0
\end
\end
$$

Создание экранной формы и ввод исходных данных

В этой форме каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка на листе Excel. Так, например, переменным задачи соответствуют ячейки B3 (х1), C3 (х2), коэффициентам ЦФ соответствуют ячейки B5 (с1 = 15), C5 (с2 = 9), правым частям ограничений соответствуют ячейки D15 (р1 = 285), D16 (р2 = 113), D17 (р3 =322) и т.д.

Ввод зависимостей из формальной постановки задачи в экранную форму

Выбрав функцию «СУММПРОИЗВ» вводим в ячейку D4 выражение: «Массив 1» B3:C3, а в строку «Массив 2» — выражение B5:C5.

Левые части ограничений задачи (1) представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (B10, C10 — 1-е ограничение; B11, С11 — 2-е ограничение и B12, С12 — 3-е ограничение). Формулы, соответствующие левым частям ограничений, представлены в таблице:

Настройка Поиска решения Excel

Дальнейшие действия производятся в окне «Поиск решения», которое находится во кладке «Данные» — «Анализ»:

  1. ставим курсор в поле «Оптимизировать целевую функцию»;
  2. вводим адрес целевой ячейки $D$4;
  3. выбираем направление оптимизации ЦФ, щелкнув один раз левой клавишей мыши по селекторной кнопке «Максимум».

Задание ячеек переменных и ограничений (граничных условий)

В окно «Поиск решения» в поле «Изменяя ячейки переменных» вписываем адреса $B$3:$С$3.

В нашем случае на значения переменных накладывается только граничное условие неотрицательности, то есть их нижняя граница должна быть равна нулю.

  1. Нажимаем кнопку «Добавить», после чего появится окно «Добавление ограничения».
  2. В поле «Ссылка на ячейку» вводим адреса ячеек переменных $B$3:$С$3.
  3. В поле знака выбираем «≥».
  4. В поле «Ограничение» вводим 0.
  5. Нажимаем кнопку «Добавить» в окне «Добавление ограничения».
  6. В поле «Ссылка на ячейку» вводим адрес ячейки левой части конкретного ограничения, например $B$15.
  7. В соответствии с условием задачи (1) выбираем в поле знака необходимый знак, «≤».
  8. В поле «Ограничение» вводим адрес ячейки правой части рассматриваемого ограничения, например $D$15.
  9. Аналогично вводим ограничения: $B$16

    Кодирование LZ77 на Python опубликовано Васильев Владимир Сергеевич

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *