Excel 2020: Găsiți soluții optime cu Solver - Sfaturi Excel

Cuprins

Excel nu a fost primul program de calcul tabelar. Lotus 1-2-3 nu a fost primul program de foaie de calcul. Primul program de calcul tabelar a fost VisiCalc în 1979. Dezvoltat de Dan Bricklin și Bob Frankston, VisiCalc a fost publicat de Dan Fylstra. Astăzi, Dan conduce Frontline Systems. Compania sa a scris Solverul folosit în Excel. Frontline Systems a dezvoltat, de asemenea, o întreagă suită de software de analiză care funcționează cu Excel.

Dacă aveți Excel, aveți Solver. Este posibil să nu fie activat, dar îl aveți. Pentru a activa Solver în Excel, apăsați Alt + T urmat de I. Adăugați o bifă lângă Solver Add-in.

Pentru a utiliza cu succes Solver, trebuie să construiți un model de foaie de lucru care are trei elemente:

  • Trebuie să existe o singură celulă Goal. Aceasta este o celulă pe care fie doriți să o minimizați, să o maximizați sau să o setați la o anumită valoare.
  • Pot exista multe celule de intrare. Aceasta este o îmbunătățire fundamentală față de Goal Seek, care poate face față unei singure celule de intrare.
  • Pot exista constrângeri.

Scopul dvs. este să construiți cerințele de programare pentru un parc de distracții. Fiecare angajat va lucra cinci zile consecutive și apoi va avea două zile libere. Există șapte modalități diferite de a programa pe cineva timp de cinci zile consecutive și două zile libere. Acestea sunt afișate ca text în A4: A10 în figura de mai jos. Celulele albastre din B4: B10 sunt celulele de intrare. Aici specificați câte persoane aveți care lucrează în fiecare program.

Celula obiectivului este numărul total de salarii / săptămână, afișat în B17. Aceasta este o matematică simplă: Totalul persoanelor de la B11 ori salariul de 68 USD pe persoană pe zi. Veți cere Solverului să găsească o modalitate de a minimiza salariul săptămânal.

Caseta roșie afișează valori care nu se vor schimba. Acesta este numărul de persoane de care aveți nevoie pentru a lucra în parc în fiecare zi a săptămânii. Aveți nevoie de cel puțin 30 de persoane în zilele aglomerate de weekend, dar până la 12 luni și marți. Celulele portocalii folosesc SUMPRODUCT pentru a calcula câte persoane vor fi programate în fiecare zi, pe baza intrărilor din celulele albastre.

Pictogramele din rândul 15 indică dacă aveți nevoie de mai mulți oameni sau mai puțini oameni sau dacă aveți exact numărul potrivit de persoane.

În primul rând, am încercat să rezolv această problemă fără Solver. Mergeam cu 4 angajați în fiecare zi. A fost minunat, dar duminica nu am avut destui oameni. Așadar, am început să măresc programul pentru a obține mai mulți angajați de duminică. Am ajuns cu ceva care funcționează: 38 de angajați și 2.584 de dolari salarizare săptămânală.

Desigur, există o modalitate mai ușoară de a rezolva această problemă. Faceți clic pe pictograma Solver din fila Date. Spuneți Solverului că încercați să setați salariul în B17 la minimum. Celulele de intrare sunt B4: B10.

Constrângerile se încadrează în categorii evidente și nu atât de evidente.

Prima constrângere evidentă este că D12: J12 trebuie să fie >= D14:J14.

Dar, dacă ați încerca să rulați Solver acum, veți obține rezultate bizare cu un număr fracționat de oameni și posibil un număr negativ de oameni care lucrează anumite programe.

Deși vi se pare evident că nu puteți angaja 0,39 persoane, trebuie să adăugați constrângeri pentru a spune Solverului că B4: B10 sunt >= 0și că B4: B10 sunt numere întregi.

Alegeți Simplex LP ca metodă de rezolvare și faceți clic pe Rezolvare. În câteva momente, Solver prezintă o soluție optimă.

Solver găsește o modalitate de a acoperi personalul parcului de distracții folosind 30 de angajați în loc de 38. Economiile pe săptămână sunt de 544 USD sau mai mult de 7000 USD pe parcursul verii.

Observați cele cinci stele de sub angajații necesari în figura de mai sus. Programul propus de Solver satisface nevoile dvs. exacte pentru cinci din cele șapte zile. Produsul secundar este că veți avea mai mulți angajați miercuri și joi decât aveți cu adevărat nevoie.

Înțeleg cum a venit Solver cu această soluție. Ai nevoie de mulți oameni sâmbătă, duminică și vineri. O modalitate de a aduce oamenii acolo în acea zi este să le dai liber luni și marți. Acesta este motivul pentru care Solver a acordat 18 persoane liber luni și marți.

Dar doar pentru că Solver a venit cu o soluție optimă nu înseamnă că nu există alte soluții la fel de optime.

Când doar ghiceam personalul, nu prea aveam o strategie bună.

Acum, când Solver mi-a oferit una dintre soluțiile optime, îmi pot pune pălăria logică. A avea 28 de angajați în vârstă de facultate miercuri și joi, când aveți nevoie doar de 15 sau 18 angajați, va duce la probleme. Nu vor fi destui de făcut. În plus, cu exact numărul corect de cap în cinci zile, va trebui să chemați pe cineva pentru ore suplimentare dacă altcineva sună bolnav.

Am încredere în Solver că trebuie să am 30 de oameni pentru a face acest lucru. Dar pariez că pot rearanja acei oameni pentru a uniformiza programul și a oferi un tampon mic în alte zile.

De exemplu, acordarea cuiva liber miercuri și joi asigură, de asemenea, că persoana se află la locul de muncă vineri, sâmbătă și duminică. Așadar, mut manual unii muncitori din rândul de luni, marți în rândul de miercuri, joi. Continuu să conectez manual diferite combinații și vin cu soluția prezentată mai jos, care are aceeași cheltuială de salarizare ca Solver, dar mai necorporale. Situația excesivă a personalului există acum în patru zile în loc de două. Asta înseamnă că puteți face față absențelor de luni până joi, fără a fi nevoie să apelați pe cineva din weekend.

Este rău că am reușit să vin cu o soluție mai bună decât Solver? Nu. Faptul este că nu aș fi putut ajunge la această soluție fără să folosesc Solver. Odată ce Solver mi-a oferit un model care minimiza costurile, am reușit să folosesc logica cu privire la imobilizările corporale pentru a păstra același salariu.

Dacă trebuie să rezolvați probleme care sunt mai complexe decât poate rezolva Solver, consultați soluțiile Excel premium disponibile de la Frontline Systems.

Mulțumim lui Dan Fylstra și Frontline Systems pentru acest exemplu. Walter Moore a ilustrat roller coaster-ul XL.

Articole interesante...