Introduktion till lösare - Excel-tips

Innehållsförteckning

Solver har varit ett gratis tillägg sedan Lotus 1-2-3 dagar

Excel var inte det första kalkylprogrammet. Lotus 1-2-3 var inte det första kalkylprogrammet. Det första kalkylprogrammet var VisiCalc 1979. VisiCalc publicerades av Dan Fylstra och utvecklades av Dan Bricklin och Bob Frankston. Idag driver Dan Frontline Systems. Hans företag skrev Solver som används i Excel. Det har också utvecklat en hel serie analysprogramvara som fungerar med Excel.

Om du har Excel har du Solver. Det kanske inte är aktiverat, men du har det. För att aktivera Solver i Excel, tryck på alt = "" + T följt av I. Lägg till en bock bredvid Solver.

Enabled Solver in Excel

För att lyckas använda Solver måste du bygga en kalkylmodell som har tre element:

  • Det måste finnas en enda målcell. Detta är en cell som du antingen vill minimera, maximera eller ställa in till ett visst värde.
  • Det kan finnas många inmatningsceller. Detta är en grundläggande förbättring jämfört med Goal Seek, som bara kan hantera en inmatningscell.
  • Det kan finnas begränsningar.

Ditt mål är att bygga schemaläggningskraven för en nöjespark. Varje anställd kommer att arbeta fem raka dagar och sedan ha två lediga dagar. Det finns sju olika möjliga sätt att schemalägga någon för fem raka dagar och två lediga dagar. Dessa visas som text i A4: A10. De blå cellerna i B4: B10 är ingångscellerna. Det är här du anger hur många personer du har som arbetar varje schema.

Målcellen är total lön per vecka, visas i B17. Detta är rak matematik: Totalt antal personer från B11 gånger $ 68 lön per person och dag. Du kommer att be Solver att hitta ett sätt att minimera veckolönen.

Den röda rutan visar värden som inte ändras. Det här är hur många människor du behöver arbeta i parken varje veckodag. Du behöver minst 30 personer på de hektiska helgdagarna - men så få som 12 på måndag och tisdag. De orange cellerna använder SUMPRODUCT för att beräkna hur många personer som ska planeras varje dag baserat på ingångarna i de blå cellerna.

Ikonerna i rad 15 anger om du behöver fler eller färre personer eller om du har exakt rätt antal personer.

Först försökte jag lösa detta utan Solver. Jag gick med 4 anställda varje dag. Det var jättebra, men jag hade inte tillräckligt med folk på söndagen. Så jag började öka scheman som skulle ge mig fler anställda på söndagen. Jag slutade med något som fungerar: 38 anställda och 2 584 dollar i veckolön.

Exempeldatauppsättning

Klicka på ikonen Lösare på fliken Data. Berätta för Solver att du försöker ställa in lönen i B17 till ett minimum. Ingångscellerna är B4: B10.

Begränsningar faller i uppenbara och inte så uppenbara kategorier.

Den första uppenbara begränsningen är att D12: J12 måste vara> = D14: J14.

Men om du försökte köra Solver nu skulle du få bisarra resultat där du har bråkdelar av människor och möjligen ett negativt antal personer som arbetar vissa scheman.

Även om det verkar uppenbart för dig att du inte kan anställa 0,39 personer, måste du lägga till begränsningar för att berätta för Solver att B4: B10 är> = 0 och att B4: B10 är heltal.

Lösningsparametrar

Välj Simplex LP som lösningsmetod och välj Lös. På några ögonblick presenterar Solver en optimal lösning.

Solver hittade ett sätt att täcka nöjesparkens personal med 30 anställda istället för 38. Besparingarna per vecka är 544 dollar - eller mer än 7 000 dollar under sommaren.

Använda Solver

Lägg märke till de fem stjärnorna nedan. Schemat som Solver föreslog uppfyller dina exakta behov under fem av de sju dagarna. Biprodukten är att du kommer att ha fler anställda på onsdag och torsdag än du verkligen behöver.

Jag kan förstå hur Solver kom med den här lösningen. Du behöver många människor på lördag, söndag och fredag. Ett sätt att få folk dit den dagen är att ge dem ledighet på måndag och tisdag. Det är därför Solver satte 18 personer med måndag och tisdag ledigt.

Men bara för att Solver kom med en optimal lösning betyder det inte att det inte finns andra lika optimala lösningar.

När jag bara gissade på bemanningen hade jag inte riktigt en bra strategi.

Nu när Solver har gett mig en av de bästa lösningarna kan jag ta på mig min logikhatt. Att ha 28 anställda i högskoleåldern på onsdag och torsdag när du bara behöver 15 eller 18 anställda kommer att leda till problem. Det räcker inte att göra. Dessutom, med exakt rätt personalantal på fem dagar, måste du ringa in någon för övertid om någon annan ringer in sjuk.

Jag litar på Solver att jag måste ha 30 personer för att detta ska fungera. Men jag slår vad om att jag kan ordna om dessa människor för att jämna ut schemat och ge en liten buffert på andra dagar.

Till exempel att ge någon fri på onsdag och torsdag säkerställer också att personen är på jobbet fredag, lördag och söndag. Så jag flyttade manuellt några arbetare från raden måndag, tisdag till raden onsdag torsdag. Jag fortsatte att manuellt koppla in olika kombinationer och kom på den här lösningen som har samma lönekostnad som Solver men bättre immateriella tillgångar. Situationen för överbemanning existerar nu på fyra dagar istället för två. Det betyder att du kan hantera avrop på måndag till torsdag utan att behöva ringa in någon från sin helg.

Resultatet

Är det dåligt att jag kunde hitta en bättre lösning än Solver? Nej. Faktum är att jag inte skulle ha kunnat nå den här lösningen utan att använda Solver. När Solver gav mig en modell som minimerade kostnaderna kunde jag använda logik om immateriella tillgångar för att hålla samma lön.

Om du behöver lösa mer komplexa problem än Solver kan hantera, kolla in de premium Excel-lösare som finns tillgängliga från Frontline Systems: http://mrx.cl/solver77.

Tack till Dan Fylstra och Frontline Systems för detta exempel. Walter Moore illustrerade XL berg-och dalbana.

Kolla på video

  • Solver har varit ett gratis tillägg sedan Lotus 1-2-3 dagar
  • Solver är en produkt av Visicorp-grundaren Dan Fylstra
  • Lösare i din Excel är en mindre version av tunga lösare
  • Läs mer om pro solvers: http://mrx.cl/solver77
  • För att installera Solver, skriv alt = "" + T och sedan I. Kontrollera Solver.
  • Lösaren finns till höger på fliken Data
  • Du vill ha en objektivcell som du försöker minimera eller maximera.
  • Du kan ange flera inmatningsceller.
  • Du kan ange begränsningar, inklusive några som du inte förväntar dig:
  • Inga halva personer: Använd INT för heltal
  • Solver kommer att hitta en optimal lösning, men det kan finnas andra som är band
  • När du väl har fått Solver-lösningen kan du kanske justera den.

Videoutskrift

Lär dig Excel från podcast, avsnitt 2036 - Intro to Solver!

Okej, jag podcastar hela denna bok, klicka på "i" i det övre högra hörnet för att komma till spellistan, där du kan spela alla videor!

Välkommen tillbaka till netcast, jag heter Bill Jelen. Vi pratade om någon What-If-analys nyligen, som Goal Seek, du vet, med en inmatningscell som du ändrar, men tänk om du har något mer komplext? Det finns ett bra verktyg som heter Solver, Solver har funnits länge, jag garanterar att om du har Excel och du kör på Windows, har du Solver, det är förmodligen inte påslaget. Så för att sätta på den måste du gå till alt = "" T och sedan jag, så T för Tom, jag för glass, och markera den här rutan för Solver, klicka på OK, och efter några sekunder har du en Solver-flik här på höger sida. Okej, och vi ska sätta upp en modell här som lösaren kanske kan lösa, vi har en nöjespark, vi försöker gå ut hur många anställda som ska schemalägga. Alla arbetar fem dagar i följd, så där 's verkligen sju möjliga scheman där du är ute, söndag måndag, måndag tisdag, tisdag onsdag. Vi måste ta reda på hur många anställda som ska läggas på vart och ett av dessa scheman.

Och så bara enkel matematik här, gör några SUMPRODUKTER, antal anställda gånger söndag för att ta reda på hur många människor som var där på söndag, måndag, tisdag, onsdag. Och vad vi har lärt oss genom att driva denna nöjespark är att vi behöver många människor på lördag och söndag. 30 personer på lördag och söndag, under veckan måndag, tisdag, typ av långsam, 12 personal kommer att kunna göra det. Okej så, bara genom att komma hit och bara skruva runt, du vet, försöka lista ut rätt siffror, du kan bara fortsätta att plugga in saker, men med sju olika val skulle det ta evigt, okej så.

Nu i Solver, vad vi har är att vi har en serie ingångsceller, och i den fria versionen av Solver tror jag att du kan ha, är det hundra? Jag vet inte, det finns något nummer, och om du måste gå utöver det finns det en Premium Solver som du kan få från Frontline Systems. Okej, så vi har några inmatningsceller, vi har några begränsningsceller, och sedan måste du ta ner allt till ett slutligt nummer. Så i mitt fall försöker jag minimera lönen per vecka, så att det gröna numret är det jag vill försöka optimera, okej, så här är vad vi ska göra!

Lösare, här är objektivcellen, det är den gröna cellen, och jag vill ställa in det till ett minimivärde, ta reda på bemanningen som ger mig minimivärdet genom att ändra dessa blå celler. Och här är begränsningarna, okej, så den första begränsningen är att schemat totalt måste vara> = det röda avsnittet, och vi kan göra allt detta som en enda begränsning. Se hur coolt det här är, alla dessa celler måste vara> = dessa motsvarande celler här, fantastiskt, klicka på Lägg till, okej, men då finns det andra saker som du inte skulle tänka på. Till exempel kan Solver vid den här tiden bestämma att det är bäst att ha 17 personer på detta schema, 43 personer på schemat och -7 personer på det här schemat. Okej, så vi måste säga till Solver att dessa inmatningsceller måste vara ett heltal, klicka på Lägg till. Och vi kan inte ha någon som inte dyker upp,och de kommer att ge oss sin lön tillbaka, eller hur? Så vi kommer att säga att dessa celler måste vara> = 0, klicka på Lägg till, vi går tillbaka nu, vi har våra tre begränsningar där.

Det finns tre olika sätt att lösa, och det här följer linjär matematik, så vi kan bara gå Simplex LP. Om den här inte fungerar, försök på alla sätt de andra två, jag har haft fall där Simplex säger att den inte kan hitta en lösning, och en av de andra två fungerar. Frontline Systems har bra handledning om Solver, jag försöker bara få dig igenom din första här idag, jag förklarar inte att jag är en Solver-expert. En gång hade jag en Solver som inte skulle fungera, och jag skickade en anteckning till Frontline Systems, och wow, jag fick detta fantastiska 5-sidiga brev tillbaka, höger, från Dan Fylstra själv, Solvers president! Och det började: "Kära Bill, fantastiskt att höra från dig!" Och fortsatte sedan i 4,9 sidor, allt var ganska mycket över mitt huvud, okej. Men du vet, jag vet tillräckligt om Solver för att komma igenom detta, okej,så vi klickar här på Lös, den hittade en lösning, "Alla begränsningar och optimeringsvillkor är uppfyllda." Jag ska behålla det, jag kan skapa några rapporter, behöver inte göra det just nu. Åh, jag kan faktiskt spara ett scenario, jag gjorde narr av scenarier igår, kanske skulle Solver kunna skapa ett nytt scenario åt mig, så vi klickar på OK.

Okej, och nog har det sparat oss pengar, vi skrev 2584 tidigare, och nu fick vi oss ner till 2040. Så vi behöver många människor på måndag och tisdag, okej, vissa människor, 2 personer lediga på onsdag torsdag, och sedan fredag ​​lördag. Tja, det här är fantastiskt, jag skulle aldrig bara ha kommit med den här uppsättningen svar, okej, men betyder det att det är det bästa svaret? Det betyder att det är minimilönen, men jag kan förmodligen komma med en annan uppsättning svar som fortfarande skulle ha denna minimilön. Det finns andra sätt att göra det, det kan vara ett lite bättre schema. Som till exempel, just nu har vi 28 personer på onsdag och torsdag, när vi bara behöver 15 och 18, det är många människor. Tänk på vem som arbetar på nöjesparker, det här är collegeungar hemma för paus,detta kommer att bli problem om vi har så många extra människor. Och på måndag tisdag är vi döda, precis där vi vill vara. Så det betyder att om någon ska avskräckas, nu måste vi, du vet, ringa in någon och betala dem halvannan tid, för de har redan arbetat fem andra dagar.

Okej, så bara med lite enkel matematik här, om jag skulle ta 8 bort från måndag tisdag och göra det 10, och ta de 8 och lägga till dem på onsdag torsdag, okej. Nu har jag en Solver-lösning med exakt samma svar, 2040, de fick rätt antal personer. Jag balanserar bara schemat, och nu har vi 8 extra, 8 extra, 3 extra och 2 extra, och exakt vad vi behöver på helgen som är, du vet, full personal scenariot. För mig är detta något bättre än vad Solver kom på, betyder det att lösaren misslyckades? Nej, absolut inte, för jag skulle aldrig ha kommit så nära utan Solver. När Solver gav mig svaret, ja, jag kunde justera det lite och komma dit, okej. Tips nr 37, “40 bästa Excel-tips genom tiderna”, närmar sig slutet på de första 40, bra liten introduktion till Solver.Guiden till alla podcaster i denna serie finns här, ”MrExcel XL - 40 bästa Excel-tips genom tiderna”, du kan ha e-boken för bara $ 10, tryckbok för $ 25, klicka på “i” högst upp -höger hörn!

Alright, recap: Solver, if you're in Windows versions of Excel, Lotus 1-2-3, it's there, it's created by Visicorp founder Dan Fylstra. It's a free version of the heavy-duty solvers, here's a link to go check out the heavy-duty solvers, that'll be down in the YouTube comments. It's probable they're just not installed, alt="" T I, check mark Solver, look on the right side of the Data tab to find Solver. Alright, you have to have an objective cell that you're trying to minimize or maximize or set to a value, one range of input cells. Specify constraints, including something wouldn’t expect, like I had to say “No half-people” and “No negative people”. Solver will find the optimal solution, but there might be others that are ties and you might be able to tweak it to get a better solution.

Okej, där har du det, jag vill tacka dig för att du stannade, vi ses nästa gång för en ny netcast från!

Nedladdning fil

Ladda ner exempelfilen här: Podcast2036.xlsx

Intressanta artiklar...