Excel 2020: Намерете оптимални решения с Solver - Съвети за Excel

Съдържание

Excel не беше първата програма за електронни таблици. Lotus 1-2-3 не беше първата програма за електронни таблици. Първата програма за електронни таблици е VisiCalc през 1979 г. Разработена от Дан Бриклин и Боб Франкстън, VisiCalc е публикувана от Dan Fylstra. Днес Дан управлява Frontline Systems. Неговата компания е написала Solver, използван в Excel. Frontline Systems разработи и цял набор от аналитичен софтуер, който работи с Excel.

Ако имате Excel, имате Solver. Може да не е активиран, но го имате. За да активирате Solver в Excel, натиснете Alt + T, последвано от I. Добавете отметка до добавката Solver.

За да използвате успешно Solver, трябва да изградите модел на работен лист, който има три елемента:

  • Трябва да има една клетка за цел. Това е клетка, която или искате да минимизирате, увеличите или зададете на определена стойност.
  • Може да има много входни клетки. Това е едно основно подобрение спрямо Goal Seek, което може да се справи само с една входна клетка.
  • Може да има ограничения.

Вашата цел е да изградите изискванията за графици за увеселителен парк. Всеки служител ще работи пет поредни дни и след това ще има два почивни дни. Има седем различни възможни начина да планирате някого за пет поредни дни и два почивни дни. Те са показани като текст в A4: A10 на фигурата по-долу. Сините клетки в B4: B10 са входните клетки. Тук посочвате колко хора работите във всеки график.

Клетката Цел е обща ТРЗ / Седмица, показана в B17. Това е правилна математика: Общо хора от B11 по 68 $ заплата на човек на ден. Ще помолите Solver да намери начин да минимизира седмичната работна заплата.

Червеното поле показва стойности, които няма да се променят. Това е колко хора ви трябват да работят в парка всеки ден от седмицата. Нуждаете се от поне 30 души в натоварените дни през уикенда - но поне 12 в понеделник и вторник. Оранжевите клетки използват SUMPRODUCT, за да изчислят колко души ще бъдат насрочени всеки ден, въз основа на входовете в сините клетки.

Иконите в ред 15 показват дали имате нужда от повече хора или по-малко хора или дали имате точно точния брой хора.

Първо се опитах да разреша този проблем без Solver. Ходих с по 4 служители всеки ден. Това беше чудесно, но в неделя нямах достатъчно хора. И така, започнах да увеличавам графиците, за да получа повече служители в неделя. В крайна сметка получих нещо, което работи: 38 служители и 2 584 долара седмична работна заплата.

Разбира се, има по-лесен начин за решаване на този проблем. Щракнете върху иконата Solver в раздела Data. Кажете на Solver, че се опитвате да настроите ведомостта в B17 на минимум. Входните клетки са B4: B10.

Ограниченията попадат в очевидни и не толкова очевидни категории.

Първото очевидно ограничение е, че D12: J12 трябва да бъде >= D14:J14.

Но ако се опитате да стартирате Solver сега, ще получите странни резултати с частичен брой хора и вероятно отрицателен брой хора, работещи по определени графици.

Макар да ви се струва очевидно, че не можете да наемете 0,39 души, трябва да добавите ограничения, за да кажете на Solver, че B4: B10 са >= 0и че B4: B10 са цели числа.

Изберете Simplex LP като метод за решаване и щракнете върху Solve. След няколко минути Solver представя едно оптимално решение.

Solver намира начин да покрие персонала на увеселителния парк, като използва 30 служители вместо 38. Спестяванията на седмица са $ 544 или повече от $ 7000 през лятото.

Обърнете внимание на петте звезди под Служители, необходими на фигурата по-горе. Графикът, който Solver предложи, отговаря на вашите точни нужди за пет от седемте дни. Страничният продукт е, че ще имате повече служители в сряда и четвъртък, отколкото наистина имате нужда.

Мога да разбера как Solver излезе с това решение. Имате нужда от много хора в събота, неделя и петък. Един от начините да накараме хората там в този ден е да им дадем почивен ден в понеделник и вторник. Ето защо Solver даде 18 души почивка в понеделник и вторник.

Но това, че Solver излезе с оптимално решение, не означава, че няма други също толкова оптимални решения.

Когато само гадаех за персонала, всъщност нямах добра стратегия.

След като Solver ми даде едно от оптималните решения, мога да си сложа логическата шапка. Наличието на 28 служители в колеж в сряда и четвъртък, когато имате нужда само от 15 или 18 служители, ще доведе до проблеми. Няма да е достатъчно да се направи. Плюс това, с точно десния брой глави за пет дни, ще трябва да повикате някого за извънреден труд, ако някой друг се обади болен.

Вярвам в Solver, че трябва да имам 30 души, за да направя тази работа. Но се обзалагам, че мога да пренаредя тези хора, за да изравнят графика и да осигурят малък буфер в други дни.

Например, даването на почивка на сряда и четвъртък също гарантира, че лицето е на работа петък, събота и неделя. И така, премествам ръчно някои работници от реда в понеделник, вторник в реда в сряда и четвъртък. Продължавам ръчно да включвам различни комбинации и измислям показаното по-долу решение, което има същия разход за заплати като Solver, но по-добри нематериални активи. Понастоящем ситуацията с прекалено много служители е четири дни вместо два. Това означава, че можете да се справите с отсъствията от понеделник до четвъртък, без да се налага да се обаждате на някой от уикенда.

Лошо ли е, че успях да намеря по-добро решение от Solver? Не. Факт е, че не бих могъл да стигна до това решение, без да използвам Solver. След като Solver ми даде модел, който минимизира разходите, успях да използвам логика за нематериалните активи, за да запазя същата работна заплата.

Ако трябва да решите проблеми, които са по-сложни, отколкото Solver може да се справи, разгледайте първокласните решаващи решения на Excel, налични от Frontline Systems.

Благодаря на Dan Fylstra и Frontline Systems за този пример. Уолтър Мур илюстрира XL влакче в увеселителен парк.

Интересни статии...