Introduksjon til Solver - Excel Tips

Innholdsfortegnelse

Solver har vært et gratis tillegg siden dagene til Lotus 1-2-3

Excel var ikke det første regnearkprogrammet. Lotus 1-2-3 var ikke det første regnearkprogrammet. Det første regnearkprogrammet var VisiCalc i 1979. VisiCalc ble utviklet av Dan Bricklin og Bob Frankston, og ble utgitt av Dan Fylstra. I dag driver Dan Frontline Systems. Hans firma skrev Solver som ble brukt i Excel. Det har også utviklet en hel serie med analyseprogramvare som fungerer med Excel.

Hvis du har Excel, har du Solver. Det er kanskje ikke aktivert, men du har det. For å aktivere Solver i Excel, trykk alt = "" + T etterfulgt av I. Legg til et hake ved siden av Solver.

Aktivert løsning i Excel

For å kunne bruke Solver må du bygge en regnearkmodell som har tre elementer:

  • Det må være en enkelt målcelle. Dette er en celle som du enten vil minimere, maksimere eller sette til en bestemt verdi.
  • Det kan være mange inngangsceller. Dette er en grunnleggende forbedring i forhold til Goal Seek, som bare kan håndtere en inngangscelle.
  • Det kan være begrensninger.

Målet ditt er å bygge planleggingskravene til en fornøyelsespark. Hver ansatt vil jobbe fem strake dager og deretter ha to dager fri. Det er syv forskjellige mulige måter å planlegge noen på fem strake dager og to fridager. Disse vises som tekst i A4: A10. De blå cellene i B4: B10 er inngangscellene. Det er her du spesifiserer hvor mange personer du har som jobber hver tidsplan.

Målcellen er total lønn per uke, vist i B17. Dette er rett matematikk: Totalt antall personer fra B11 ganger $ 68 lønn per person per dag. Du vil be Solver om å finne en måte å minimere den ukentlige lønnen.

Den røde boksen viser verdier som ikke vil endres. Dette er hvor mange mennesker du trenger for å jobbe parken hver dag i uken. Du trenger minst 30 personer på de travle helgedagene - men så få som 12 på mandag og tirsdag. De oransje cellene bruker SUMPRODUCT for å beregne hvor mange mennesker som skal planlegges hver dag, basert på inngangene i de blå cellene.

Ikonene i rad 15 indikerer om du trenger flere personer, eller færre personer, eller om du har nøyaktig riktig antall personer.

Først prøvde jeg å løse dette uten Solver. Jeg gikk med 4 ansatte hver dag. Det var flott, men jeg hadde ikke nok folk på søndag. Så jeg begynte å øke tidsplanene som ville gi meg flere søndagsansatte. Jeg endte opp med noe som fungerer: 38 ansatte og 2 584 dollar i ukentlig lønn.

Eksempel på datasett

Klikk på Solver-ikonet i kategorien Data. Si til Solver at du prøver å sette lønnen i B17 til et minimum. Inngangscellene er B4: B10.

Begrensninger faller i åpenbare og ikke så åpenbare kategorier.

Den første åpenbare begrensningen er at D12: J12 må være> = D14: J14.

Men hvis du prøvde å kjøre Solver nå, ville du få bisarre resultater der du har brøkdeler av mennesker og muligens et negativt antall mennesker som jobber med bestemte tidsplaner.

Selv om det virker opplagt for deg at du ikke kan ansette 0,39 personer, må du legge til begrensninger for å fortelle Solver at B4: B10 er> = 0 og at B4: B10 er heltall.

Løserparametere

Velg Simplex LP som løsningsmetode og velg Løs. På noen få øyeblikk presenterer Solver en optimal løsning.

Solver fant en måte å dekke fornøyelsesparkens bemanning ved å bruke 30 ansatte i stedet for 38. Besparelsene per uke er $ 544 - eller mer enn $ 7 000 i løpet av sommeren.

Bruke Solver

Legg merke til de fem stjernene nedenfor Nødvendige ansatte. Tidsplanen som Solver foreslo oppfyller dine nøyaktige behov i fem av de syv dagene. Biproduktet er at du vil ha flere ansatte på onsdag og torsdag enn du virkelig trenger.

Jeg kan forstå hvordan Solver fant på denne løsningen. Du trenger mange mennesker på lørdag, søndag og fredag. En måte å få folk dit den dagen er å gi dem fri mandag og tirsdag. Derfor satte Solver 18 personer med mandag og tirsdag fri.

Men bare fordi Solver kom med en optimal løsning, betyr ikke det at det ikke finnes andre like optimale løsninger.

Da jeg bare gjettet på bemanningen, hadde jeg egentlig ikke en god strategi.

Nå som Solver har gitt meg en av de optimale løsningene, kan jeg ta på meg logikkhatten. Å ha 28 ansatte i høyskolealderen onsdag og torsdag når du bare trenger 15 eller 18 ansatte, vil føre til problemer. Det vil ikke være nok å gjøre. I tillegg, med nøyaktig riktig antall ansatte på fem dager, må du ringe inn noen for overtid hvis noen andre syker inn.

Jeg stoler på Solver at jeg trenger 30 personer for å få dette til å fungere. Men jeg vedder på at jeg kan omorganisere de menneskene for å jevne ut timeplanen og gi en liten buffer andre dager.

For eksempel å gi noen fri onsdag og torsdag sørger også for at personen er på jobb fredag, lørdag og søndag. Så jeg flyttet noen arbeidere manuelt fra mandag, tirsdag og til onsdag torsdag. Jeg fortsatte å plugge inn forskjellige kombinasjoner manuelt og kom opp med denne løsningen som har samme lønnskostnad som Solver, men bedre immaterielle eiendeler. Overmannssituasjonen eksisterer nå på fire dager i stedet for to. Det betyr at du kan håndtere avrop mandag til torsdag uten å måtte ringe inn noen fra helgen.

Resultatet

Er det ille at jeg klarte å finne en bedre løsning enn Solver? Nei. Faktum er at jeg ikke hadde klart å komme til denne løsningen uten å bruke Solver. Når Solver ga meg en modell som minimerte kostnadene, var jeg i stand til å bruke logikk om immaterielle eiendeler for å beholde samme lønn.

Hvis du trenger å løse problemer som er mer komplekse enn Solver kan takle, kan du sjekke de førsteklasses Excel-løsningene som er tilgjengelige fra Frontline Systems: http://mrx.cl/solver77.

Takk til Dan Fylstra og Frontline Systems for dette eksemplet. Walter Moore illustrerte rutsjebanen XL.

Se på video

  • Solver har vært et gratis tillegg siden dagene til Lotus 1-2-3
  • Solver er et produkt av Visicorp-grunnlegger Dan Fylstra
  • Løseren i Excel er en mindre versjon av kraftige løsere
  • Lær mer om pro solvers: http://mrx.cl/solver77
  • For å installere Solver, skriv inn alt = "" + T og deretter I. Merk av Solver.
  • Løseren finner du på høyre side av Data-fanen
  • Du vil ha en objektiv celle som du prøver å minimere eller maksimere.
  • Du kan spesifisere flere inndataceller.
  • Du kan spesifisere begrensninger, inkludert noen som du ikke forventer:
  • Ingen halvpersoner: Bruk INT for heltal
  • Solver vil finne en optimal løsning, men det kan være andre som er bånd
  • Når du har fått løsningsløsningen, kan du kanskje tilpasse den.

Videoutskrift

Lær Excel fra podcast, episode 2036 - Intro to Solver!

Ok, jeg podcaster hele denne boken, klikk på “i” øverst til høyre for å komme til spillelisten, der du kan spille av alle videoene!

Velkommen tilbake til netcast, jeg er Bill Jelen. Vi snakket om noen What-If-analyse nylig, som Goal Seek, du vet, med en inndatacelle du endrer, men hva om du har noe mer komplekst? Det er et flott verktøy som heter Solver, Solver har eksistert lenge, jeg garanterer at hvis du har Excel og du kjører på Windows, har du Solver, det er sannsynligvis ikke slått på. Så for å slå den på, må du gå til alt = "" T og så jeg, så T for Tom, jeg for iskrem, og kryss av i denne boksen for Solver, klikk OK, og etter et par sekunder har du en Solver-fane her på høyre side. Greit, og vi skal sette opp en modell her som løseren kanskje kan løse, vi har en fornøyelsespark, vi prøver å gå ut hvor mange ansatte som skal planlegges. Alle jobber fem dager på rad, så der 's virkelig syv mulige rutetider der du er ute, søndag mandag, mandag tirsdag, tirsdag onsdag. Vi må finne ut hvor mange ansatte som skal legges på hver av disse timeplanene.

Og så bare enkel, liten matematikk her, gjør noen SUMPRODUKTER, antall ansatte ganger søndag for å finne ut hvor mange som var der på søndag, mandag, tirsdag, onsdag. Og det vi har lært gjennom å drive denne fornøyelsesparken er at vi trenger mange mennesker på lørdag og søndag. 30 personer på lørdag og søndag, i løpet av uken mandag, tirsdag, slags treg, 12 ansatte vil være i stand til å gjøre det. Greit så, bare ved å komme hit og bare skru rundt, vet du, prøver å finne ut de riktige tallene, du kan bare fortsette å plugge inn ting, men med syv forskjellige valg, vil det ta evig tid, ok.

Nå i Solver, det vi har, har vi en serie inngangsceller, og i den gratis versjonen av Solver tror jeg du kan ha, er det hundre? Jeg vet ikke, det er noe tall, og hvis du må gå utover det, er det en Premium Solver som du kan få fra Frontline Systems. OK, så vi har noen inngangsceller, vi har noen begrensningsceller, og så må du bringe det hele ned til et endelig tall. Så i mitt tilfelle prøver jeg å minimere lønn per uke, slik at det grønne tallet er det jeg vil prøve å optimalisere, ok, så her er hva vi skal gjøre!

Løsner, her er den objektive cellen, den er den grønne cellen, og jeg vil sette den til en minimumsverdi, finn ut bemanningen som gir meg minimumsverdien, ved å endre disse blå cellene. Og så er det begrensningene, greit, så den første begrensningen er at totalplanen må være> = den røde delen, og vi kan gjøre alt det som en enkelt begrensning. Se på hvor kult dette er, alle disse cellene må være> = disse tilsvarende cellene her, kjempebra, klikk på Legg til, ok, men så er det andre ting du ikke ville tenkt på. For eksempel kan Solver på dette tidspunktet bestemme at det er best å ha 17 personer på denne timeplanen, 43 personer på timeplanen og -7 personer på denne timeplanen. OK, så vi må fortelle Solver at disse inndatacellene må være et helt tall, klikk på Legg til. Og også, vi kan ikke ha noen som ikke møter opp,og de gir oss lønnen tilbake, ikke sant? Så vi skal si at disse cellene må være> = 0, klikk på Legg til, vi går tilbake nå, vi har våre tre begrensninger der.

Det er tre forskjellige måter å løse, og denne følger lineær matematikk, så vi kan bare gå Simplex LP. Hvis denne ikke fungerer, så prøv for all del de to andre, jeg har hatt tilfeller der Simplex sier at den ikke kan finne en løsning, og en av de to andre fungerer. Frontline Systems har gode opplæringsprogrammer om Solver, jeg prøver bare å få deg gjennom din første her i dag, jeg forkynner ikke å være en Solver-ekspert. En gang hadde jeg en Solver som ikke ville fungere, og jeg sendte et notat til Frontline Systems, og wow, jeg fikk dette fantastiske 5-siders brevet tilbake, ikke sant, fra Dan Fylstra selv, presidenten for Solver! Og det startet: "Kjære Bill, flott å høre fra deg!" Og fortsatte i 4,9 sider, det hele lå ganske mye over hodet på meg, ok. Men du vet, jeg vet nok om Solver til å komme gjennom dette, ok,så vi kommer til å klikke her på Løs, den fant en løsning, "Alle begrensninger og optimalitetsbetingelser er oppfylt." Jeg kommer til å beholde det, jeg kan lage noen rapporter, trenger ikke gjøre det akkurat nå. Å, jeg kan faktisk lagre et scenario, jeg gjorde narr av scenarier i går, kanskje Solver kunne lage et nytt scenario for meg, så vi klikker OK.

Greit, og helt sikkert det sparte oss penger, vi skrev 2584 før, og nå fikk det oss ned til 2040. Så vi trenger mange mennesker på mandag og tirsdag, ok, noen mennesker, 2 personer fri onsdag torsdag, og så fredag ​​lørdag. Vel, dette er kjempebra, jeg hadde aldri bare tilfeldigvis kommet med dette settet med svar, ok, men betyr det at det er det beste svaret? Vel, det betyr at det er minimumslønn, men jeg kan nok komme med et annet sett med svar som fortsatt vil ha denne minimumslønnen. Det er andre måter å gjøre det på, det kan være en litt bedre tidsplan. Akkurat nå har vi 28 personer på onsdag og torsdag, når vi bare trenger 15 og 18, det er mange mennesker. Tenk på hvem som jobber i fornøyelsesparker, dette er collegeunger hjemme for pause,dette kommer til å bli trøbbel hvis vi har så mange ekstra mennesker. Og mandag tirsdag er vi døde, akkurat der vi vil være. Så det betyr at hvis noen jeg skal sykes av, må vi, du vet, ringe noen inn og betale dem halvannen gang, fordi de allerede har jobbet fem andre dager.

Greit, så bare med litt enkel matte her, hvis jeg tar bort 8 fra mandag tirsdag, og gjør det til 10, og tar de 8 og legger dem til onsdag torsdag, ok. Nå har jeg en Solver-løsning med nøyaktig samme svar, 2040, de fikk riktig antall personer. Jeg balanserer bare tidsplanen, og nå har vi 8 ekstra, 8 ekstra, 3 ekstra og 2 ekstra, og akkurat det vi trenger i helgen, som du vet er fullstendig scenariet. For meg er dette litt bedre enn det Solver fant på, betyr det at løseren mislyktes? Nei, absolutt ikke, for jeg hadde aldri kommet så nært uten Solver. En gang Solver ga meg svaret, ja, jeg klarte å tilpasse det litt og komme dit, ok. Tips nr. 37, “40 Greatest Excel Tips of All Time”, nærmer seg slutten av de første 40, flott liten introduksjonen til Solver.Guiden til alle podcaster i denne serien er her, "MrExcel XL - 40 Greatest Excel Tips of All Time", du kan ha e-boken for bare $ 10, utskriftsbok for $ 25, klikk på "i" på toppen -høyrehjørne!

Greit, oppsummering: Solver, hvis du er i Windows-versjoner av Excel, Lotus 1-2-3, er den der, den er laget av Visicorp-grunnlegger Dan Fylstra. Det er en gratis versjon av tunge løsere, her er en lenke for å sjekke ut de tunge løsere, som vil være nede i YouTube-kommentarene. Det er sannsynlig at de bare ikke er installert, alt = "" TI, merk av Solver, se på høyre side av Data-fanen for å finne Solver. Greit, du må ha en objektiv celle som du prøver å minimere eller maksimere eller sette til en verdi, ett utvalg av inngangsceller. Spesifiser begrensninger, inkludert noe som ikke forventes, som om jeg måtte si "Ingen halve mennesker" og "Ingen negative mennesker". Solver vil finne den optimale løsningen, men det kan være andre som er bånd, og du kan kanskje tilpasse den for å få en bedre løsning.

Ok, der har du det, jeg vil takke deg for at du var innom, vi sees neste gang for en ny netcast fra!

Last ned fil

Last ned eksempelfilen her: Podcast2036.xlsx

Interessante artikler...