In dit hoofdstuk wordt een werkblad opgesteld waarbij gedurende een periode (een jaar) voor elke maand gegevens of prognoses worden bijgehouden over de voorraadevolutie van een bepaald product, de kosten die daarbij optreden en omzet- en winstgegevens.
Achtereenvolgens worden de volgende zaken behandeld:
De in dit hoofdstuk opgestelde werkbladen bevinden zich in het werkboek Voorraad.xls. Je kan dit openen vanuit P:\Excel 97 en bewaren op je I: schijf. De werkbladen zijn:
De wijze van het in rekening brengen van de kosten is voor discussie vatbaar. De modellen worden met opzet eenvoudig gehouden.
Beschouw in eerste instantie het volgende model:
Qa = Qb + Qp
Qv = min(Qa,Qd)
Qe = Qa – Qv
(en is gegarandeerd 0 of groter)Qb(
maand k+1) = Qe(maand k)Qs = (Qb + Qe) / 2
De grootheden vallen in drie groepen uiteen:
Je kan opteren om de productie
Qp voor alle perioden gelijk te kiezen of in elke periode een andere productie te voorzien. Je kan je ook laten leiden door een verwachte vraag en de productie zo kiezen dat het aanbod juist aan deze verwachte vraag voldoet, of zo dat er een licht overschot is. Niet aan de vraag kunnen voldoen is immers nadelig voor je imago, en kan een toekomstige vraag in negatieve zin beïnvloeden.Kies er in dit model voor om in elke maand evenveel te produceren en noteer deze vaste maandelijkse productie als
Q.
figuur 1: Het werkblad 'Voorraad 1' met het model van de voorraden
Geef in eerste instantie zelf een aantal waarden voor de vraag in. Later zal je de vraagcijfers door Excel laten genereren, waarbij deze normaal wordt verdeeld rond een bepaalde (verwachte) vraag.
Het model wordt weergegeven in het werkblad Voorraad 1 (figuur 1). De commando's en formules zijn:
|
A1: |
naam, Italic knop |
||
|
B1: |
Productie, voorraad en verkoop |
||
|
B1:G1: |
Bold knop, Font Size knop: 14, Merge and Center knop |
||
|
B2: |
maandelijkse productie |
||
|
E2: |
Q, Font Size knop: 14, Center knop |
||
|
F2: |
1000, Format, Cells..., Number tabblad, Category: Custom, Type: 0" e.", Font Color knop: Dark Blue, Bold knop, Center knop |
||
|
B4: |
begin voorraad |
B5: |
Qb |
|
C4: |
productie |
C5: |
Qp |
|
D4: |
aanbod |
D5: |
Qa |
|
E4: |
vraag |
E5: |
Qd |
|
F4: |
verkocht |
F5: |
Qv |
|
G4: |
eind voorraad |
G5: |
Qe |
|
H4: |
gem. Voorraad |
H5: |
Qs |
|
A5: |
maand |
||
|
B4:H5: |
Format, Cells..., Alignment tabblad, Horizontal Center, Vertical Center, Wrap text |
||
|
B5:H5: |
Font Size knop: 14 |
||
|
A6: |
januari, sleep fill handle naar A6:A17 |
||
|
A18: |
jaartotaal |
||
|
A19: |
gem. maand |
||
|
A:A: |
Format, Column, AutoFit Selection |
||
|
B6: |
0, Font Color knop: Dark Blue |
(Qb) |
|
|
B7: |
=G6, sleep fill handle naar B7:B17 |
||
|
C6: |
=$F$2, sleep fill handle naar C6:C17 |
(Qp; =Q) |
|
|
D6: |
=B6+C6, sleep fill handle naar D6:D17 |
(Qa; =Qb+Qp) |
|
|
E6:E17: |
950, 1200, 1000, 900, 950, 1000, 1100, 1050, 950, 1000, 900, 950, Font Color knop: Dark Blue |
(Qd) |
|
|
F6: |
=MIN(D6,E6), sleep fill handle naar F6:F17 |
(Qv) |
|
|
G6: |
=D6–F6, sleep fill handle naar G6:G17 |
(Qe; =Qa–Qv) |
|
|
H6: |
=(B6+G6)/2, sleep fill handle naar H6:H17 |
(Qs; =(Qb+Qe)/2) |
|
|
B18: |
=B6 |
||
|
C18: |
=SUM(C6:C17) |
||
|
D18: |
=B18+C18 |
||
|
E18: |
=SUM(E6:E17) |
||
|
F18: |
=SUM(F6:F17) |
||
|
G18: |
=D18–F18 (of: =G17) |
||
|
H18: |
=AVERAGE(H6:H17) |
||
|
B19: |
=AVERAGE(B6:B17), sleep fill handle naar B19:H19 |
||
|
B6:H19: |
Format, Cells..., Number tabblad, Category Custom, Type: 0" e." |
||
|
A4:H5: |
Borders knop: knop 2 (dunne lijn onderaan) |
||
|
A18:H19: |
Borders knop: knop 9 (dunne lijn boven en halfdikke lijn onder range) |
||
|
A4:H19: |
Format, Cells, Border tabblad, klik halfdikke lijn, Presets: Outline knop, klik dunne lijn, Border: verticaal lijn binnenin |
||
|
Tools, Options..., View tabblad, verwijder de aankruising van Gridlines |
|||
Opmerkingen:
Juist zoals er een evolutie is in de voorraden, is er ook een evolutie in de kosten, omzet en winst. Je kan deze op een analoge wijze in een afzonderlijke tabel plaatsen. In dit werkboek daarentegen wordt de bestaande tabel naar rechts uitgebreid om grootheden die verband houden met geldbedragen aan te geven.
Bekijk vooreerst de in de tabel op te nemen grootheden en de formules die de verbanden aangeven:
Kb
(maand k+1) = Ke(maand k)In de eerste periode (januari) moet je de waarde van
Kb intypen, juist zoals die van Qb.F + cp * Qp
In dit werkblad wordt echter de vaste periodekost
F en de variabele productiekost cp*Qp van de periode afzonderlijk verrekend, omdat je enkel deze laatste met de eindvoorraad zal overdragen naar een volgende periode. De variabele productiekost wordt dan gegeven door:Kp = cp * Qp
Ka = Kb + Kp
Kv = Ka * (Qv / Qa)
Ke = Ka * (Qe / Qa) = Ka – Kv
Deze laatste formule is analoog aan de formule voor
Qe.cs * Qs
Reken deze kost juist zoals de vaste productiekost als een periodekost aan. Deze totale periodekost wordt voorgesteld door
Kf (f van fixed - de belangrijkste bijdrage tot de periodekost):Kf = F + cs * Qs
O = P * Qv
waarbij
P de verkoopprijs per eenheid is. Deze grootheid kan je volledig controleren, maar uiteraard zal een verhoging hiervan gewoonlijk een negatieve weerslag hebben op de vraag.W = O – Kv – Kf
we = W / Qv
Met deze redeneringen is het vrij eenvoudig het werkblad uit te breiden door boven de tabel enkele rijen toe te voegen en vier extra gegevens te voorzien (
P, F, cp en cs). Stel ook de belangrijkste resultaten (Wj: de winst op jaarbasis en wje: de jaarlijkse winst per verkochte eenheid) bovenaan in het werkblad voor. Dit resulteert in het werkblad Voorraad 2 (figuur 2).Om de maandnamen steeds in beeld te hebben moet je de linkerkolom bevriezen. Zo blijft kolom A steeds in beeld. De commando's en formules zijn:
|
Window, Freeze Panes |
|||
|
Zoom knop: 75% |
|||
|
3,5: |
Insert, Rows |
||
|
I2: |
verkoopprijs: |
L2: |
P |
|
I3: |
vaste productiekost: |
L3: |
F |
|
I4: |
variabele productiekost: |
L4: |
cp |
|
I5: |
bewaarkost: |
L5: |
Cs |
|
L2:L5: |
Font Size knop: 14, Center knop |
||
|
M2: |
45, Format, Cells..., Number tabblad, Category Custom, |
||
|
M3: |
10000, Format, Cells..., Number tabblad, Category Custom, |
||
|
M4: |
30, Format, Cells..., Number tabblad, Category Custom, |
||
|
M5: |
5, Format, Cells..., Number tabblad, Category Custom, |
||
|
M2:N2: |
Bold knop, Font Color knop: Dark Blue, Merge and Center knop |
||
|
M3:N3: |
Bold knop, Font Color knop: Dark Blue, Merge and Center knop |
||
|
M4:N4: |
Bold knop, Font Color knop: Dark Blue, Merge and Center knop |
||
|
M5:N5: |
Bold knop, Font Color knop: Dark Blue, Merge and Center knop |
||
|
I7: |
var. kost begin voorraad |
I8: |
Kb |
|
J7: |
var. kost productie |
J8: |
Kp |
|
K7: |
var. kost aanbod |
K8: |
Ka |
|
L7: |
var. kost verkochte hoev. |
L8: |
Kv |
|
M7 |
var. kost eind voorraad |
M8: |
Ke |
|
N7: |
periode kost |
N8: |
Kf |
|
O7: |
omzet |
O8: |
O |
|
P7: |
winst |
P8: |
W |
|
Q7 |
winst per eenheid |
Q8: |
we |
|
I7:Q8: |
Format, Cells..., Alignment tabblad, Horizontal Center, Vertical Center, Wrap Text |
||
|
I8:Q8: |
Font Size lijst: 14 |
||
|
I9: |
0, Font Color knop: Dark Blue |
(Kb) |
|
|
I10: |
=M9, sleep fill handle naar I10:I20 |
||
|
J9: |
=$M$4*C9 |
(Kp; =cp*Qp) |
|
|
K9: |
=I9+J9 |
(Ka; =Kb+Kp) |
|
|
L9: |
=ROUND(K9*F9/D9,0) |
(Kv; = Ka*Qv/Qa) |
|
|
M9: |
=K9–L9 |
(Ke; =Ka–Kv) |
|
|
N9: |
=$M$3+$M$5*H9 |
(Kf; =F+cs*Qs) |
|
|
O9: |
=$M$2*F9 |
(O; =P*Qv) |
|
|
P9: |
=O9–L9–N9 |
(W; =O–Kv–Kf) |
|
|
Q9: |
=P9/F9 |
(we; =W/Qv) |
|
|
J9:Q9: |
sleep fill handle naar J9:Q20 |
||
|
I21: |
=I9 |
||
|
J21: |
=SUM(J9:J20) |
||
|
K21: |
=I21+J21 |
||
|
L21: |
=SUM(L9:L20) |
||
|
M21: |
=K21-L21 |
(of: =M20) |
|
|
N21: |
=SUM(N9:N20) |
||
|
O21: |
=SUM(O9:O20) |
||
|
P21: |
=SUM(P9:P20) |
||
|
Q21: |
=P21/F21 |
||
|
I22: |
=AVERAGE(I9:I20), sleep fill handle naar I22:P22 |
||
|
Q22: |
=P22/F22 |
||
|
I9:P22: |
Format, Cells..., Number tabblad, Category Currency,Decimal Places: 0, Symbol: BF, Negative Numbers: - 1 234 BF |
||
|
Q9:Q22: |
Format, Cells..., Number tabblad, Category Custom,Type: # ##0.00 BF"/e." |
||
|
I:Q: |
sleep kolomhoofd naar rechts tot alle getallen zichtbaar zijn |
||
|
I7:Q8: |
Borders knop: knop 2 (dunne lijn onder range) |
||
|
I21:Q22: |
Borders knop: knop 9 (dunne lijn boven en halfdikke lijn onder range) |
||
|
I7:Q22: |
Format, Cells, Border tabblad, Line: halfdik, Presets: Outline, Line: dun, Border: verticaal binnenin |
||
|
B4: |
Jaarlijkse winst: |
||
|
E4: |
Wj |
||
|
B5: |
Gemiddelde winst per eenheid: |
||
|
E5: |
wje |
||
|
E4:E5: |
Font Size knop: 14, Center knop |
||
|
F4: |
=P21, Format, Cells..., Number tabblad, Category Currency, |
||
|
F5: |
=Q21, Format, Cells..., Number tabblad, Category Custom, |
||
|
F4:G5: |
Font Color knop: Green, Bold knop, Merge and Center knop |
||
Opmerkingen:
FIFO: =ROUND(IF(F9<=B9, I9*F9/B9, I9+J9*(F9-B9)/C9),0)
(als Qv<=Qb: Kb*Qv/Qb; als Qv>=Qb: Kb+Kp*(Qv-Qb)/Qp)
LIFO: =ROUND(IF(F9<=C9, J9*F9/C9, J9+I9*(F9-C9)/B9),0)
(als Qv<=Qp: Kp*Qv/Qp; als Qv>=Qp: Kp+Kb*(Qv-Qp)/Qb)
De drie methodes leveren hetzelfde resultaat omdat de variabele kosten in elke maand gelijk zijn en er oorspronkelijk geen beginvoorraad is (B9=0, I9=0). Indien er echter een beginvoorraad is en de verhouding tussen de kosten (I9) en hoeveelheid (B9) is niet gelijk aan de variabele kost per eenheid (L4), dan zullen de verschillende methodes verschillende resultaten opleveren. Je kan dit nagaan door in B9 en I9 respectievelijk de waarden 50 en 1400 in te vullen (variabele kost per eenheid van de beginvoorraad: 28 BF).
De hierboven vermelde formules zijn nog niet helemaal correct omdat de beginvoorraad zelf kan bestaan uit delen vervaardigd aan een verschillende variabele kost in verschillende maanden, terwijl in de formules voor elke eenheid in de beginvoorraad dezelfde kost wordt aangerekend. Vooral bij grote beginvoorraden, regelmatig variërende kosten en de LIFO methode, waarbij de oudste voorraden het langst blijven liggen, is de kans op deze fout reëel.
Je kan nu dit model op twee wijzen gebruiken:
In het eerste geval zijn alle gegevens, inclusief de vraag, bekend tot op een bepaald tijdstip. In het laatste geval maak je voorspellingen en moet je de vraag inschatten.
In het model werden zelfgekozen waarden ingevuld voor de vraag in kolom E. Bij andere waarden zullen de resultaten uiteraard verschillen. Een meer realistische situatie is de volgende:
Neem aan dat de vraag een toevalsgrootheid is. Deze toevalsgrootheid is normaal verdeeld met als gemiddelde waarde de verwachte vraag en een zekere spreiding. De verdelingsfunctie heeft dus een klokvorm. Voor meer informatie over de eigenschappen van de normale verdeling wordt verwezen wij naar de cursus "Kansrekening en Statistiek".
Excel beschikt over de functie RAND(), die een toevalsgetal oplevert dat uniform verdeeld is tussen 0 en 1. Dit betekent dus dat alle tussenliggende waarden met evenveel waarschijnlijkheid kunnen voorkomen. Je kan een toevalsgetal verkrijgen dat normaal verdeeld is met gemiddelde waarde
m en standaardafwijking s door op dit uniform verdeeld toevalsgetal de inverse functie van de (cumulatieve) normale verdeling toe te passen. Dit gebeurt in Excel met de functie NORMINV(RAND(),m,s).Het resultaat wordt gevormd door het werkblad Voorraad 3 (figuur 3).
Om hiervan gebruik te maken moet je het vorige werkblad als volgt aanpassen:
|
E7:E22: |
Insert, Cells..., Shift cells right |
Hierdoor ontstaat in de tabel een nieuwe lege kolom E. De vormgeving (randen van de cellen) wordt automatisch aangepast zoals gewenst.
|
E7: |
verwachte vraag |
|
F7: |
werkelijke vraag |
|
E8: |
Qdv |
|
F9:F22: |
ctrl+sleep naar E9:E22 |
|
E9:E22: |
Font Color knop: Automatic |
|
F9: |
=ROUND(NORMINV(RAND(),E9,E9/20),0), sleep fill handle naar F9:F20 |
Met de ROUND functie verkrijg je gehele waarden voor de werkelijke vraag.
Nu krijg je normaal verdeelde waarden in de kolom F. Deze zullen afhankelijk van het tijdstip verschillen, en bij elke nieuwe actie waarbij een berekening optreedt wijzigen. Dit laatste is storend. Daarom moet je gepaste maatregelen nemen om de zaak te stabiliseren (zie infra).
|
F9:F20: |
Copy knop, Edit, Paste Special..., Paste Values |
Opmerkingen:
Je zal nu een macro en een Macro knop met naam Wijzig Vraagcijfers maken om nieuwe normaal verdeelde waarden voor de verwachte vraag op te stellen:
Insert, Name, Define...,
Names in Workbook: 'Voorraad 3'!Qdv, Refers to: ='Voorraad 3'!$E$9:$E$20, Add,Names in Workbook: 'Voorraad 3'!Qd, Refers to: ='Voorraad 3'!$F$9:$F$20, Add, Close
Tools, Macro, Record New Macro..., WijzigVraagcijfers
|
Selecteer de range met naam Qd in de name list van de formulebalk |
|
|
Qd: |
=ROUND(NORMINV(RAND(),Qdv,Qdv/20),0) ctrl+enter |
|
Copy knop, Edit, Paste Special..., Paste Values |
|
|
druk op esc om de mogelijkheid tot plakken te beëindigen |
|
De vraagcijfers zijn nu vervangen door andere.
Bekijk de inhoud van de macro met het commando
Tools, Macro, Macros…, WijzigVraagcijfers, Edit:
Sub WijzigVraagcijfers()
'
' WijzigVraagcijfers Macro
' Macro recorded 9/11/97 by Marc Andries
'
'
Application.Goto Reference:="Qd"
Selection.FormulaR1C1 = "=ROUND(NORMINV(RAND(),Qdv,Qdv/20),0)"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
De inhoud van de macro spreekt voor zichzelf:
selecteert de range Qd
brengt de formule aan in alle cellen van de range.
kopieert de nog steeds geselecteerde range Qd
plakt de inhoud als getallen (argument Paste:=xlValues). Je kan de argumenten Operation, SkipBlanks en Transpose, die standaard waarden hebben, schrappen.
beëindigt de mogelijkheid tot plakken (het kader in stippellijn verdwijnt).
Je kan de macro uittesten in Step mode met het commando
Tools, Macro, Macro..., WijzigVraagcijfers, Step knop
Creëer nu de Macro knop met behulp van de Forms toolbar:
Je kan nu de Macro knop klikken om de macro uit te voeren en nieuwe vraagcijfers te produceren. Uiteraard zullen alle afhankelijke formules eveneens nieuwe resultaten vertonen.
Opmerkingen:
Je kan je nu de vraag stellen voor welke waarde van
Q en P de winst per eenheid het grootste zal zijn.Door de waarde van de verkoopprijs
P te verhogen zal uiteraard de winst toenemen, maar het model wordt dan onrealistisch: Normaal moeten de vraagcijfers negatief reageren op een prijstoename en dit is niet in het model voorzien. Je kan uiteraard de constante waarden voor de verwachte vraag vervangen door een dalende functie van de prijs. De vorm en coëfficiënten van de functie moeten dan echter realistisch worden gekozen, en zijn bij voorkeur het resultaat van waargenomen feiten.Je kan echter in dit model wel de invloed van een verhoging of verlaging van de productie
Q onderzoeken en deze optimaliseren zodat de winst per eenheid zo groot mogelijk wordt. Dit kan op drie manieren gebeuren:De beide laatste gevallen worden in de rest van dit hoofdstuk geïllustreerd.
Eerst wordt met de Solver de waarde voor
Q bepaald die een maximale winst oplevert. Vervolgens wordt het Break Even Point opgespoord (de productie die juist geen winst of verlies oplevert). Ten gevolge van de bewaarkosten zal er echter een tweede, hoge waarde voor Q optreden waarbij er geen winst of verlies is. Ook deze waarde wordt met de Solver opgespoord.
Opmerkingen:
Bepaal eerst de waarde voor
Q die de winst zo groot mogelijk maakt. Roep de Solver op met het commandoTools, Solver...
Nu verschijnt het Solver Parameters dialoogvenster (figuur 4), waarin je de volgende zaken invult:
| : |
$F$4 (Wj) |
|
Equal to : |
Max (maak de inhoud van deze cel maximaal). |
|
By Changing Cells : |
$F$2 (Q) |
|
Add... |
Plaats de restrictie $F$2 = integer in het Add Constraint dialoogvenster (figuur 5) en klik OK. De restrictie wordt in de Subject to the Constraints lijst geplaatst. |
|
Solve |
Voer de optimalisatie uit. |
Je kan optimalisatiecriteria kiezen en restricties (Constraints) toevoegen (Add...), wijzigen (Change...) of verwijderen (Delete). Het is mogelijk een celinhoud te minimaliseren, maximaliseren of gelijk te maken aan een bepaalde waarde. Je kan één of meerdere cellen of ranges opgeven (By Changing Cells; door ze met komma's te scheiden), waarvan je de waarde kan veranderen. Je kan ook alle te wijzigen cellen en restricties verwijderen (Reset All).
Solver werkt een aantal gevallen uit. Dit wordt weergegeven in de statusbalk onderaan. Dit kan enige tijd in beslag nemen. Indien er een resultaat wordt verkregen verschijnt dit bericht in het Solver Results dialoogvenster (figuur 6), waarin je de oplossing kan handhaven (invullen; Keep Solver Solution) of terugkeren naar de originele waarden (Restore Original Values). Je kan eveneens met de Save Scenario... knop het opgestelde scenario een naam geven in het Save Scenario dialoogvenster (figuur 7), waardoor het bewaard wordt.
De gevonden oplossing levert (ogenschijnlijk) de grootste winst Wj=51605 BF bij een maandelijkse productie van Q=974 eenheden.
Dit is echter niet de echte grootste winst! Je kan dit nagaan door de Solver nogmaals de maximale winst te laten berekenen met als startwaarde de zojuist gevonden Q=974 eenheden. Nu wordt een grotere grootste winst Wj=52023 BF bij een maandelijkse productie van Q=979 eenheden gevonden. Wanneer je de Solver een derde maal aan het werk zet verandert de gevonden oplossing niet meer.
Je kan nu een rapport opstellen (klik de gewenste rapporten in de Reports lijst in het Solver Results dialoogvenster), dat in een afzonderlijk werkblad zal worden geplaatst. Er zijn drie soorten rapporten, maar bij restricties tot gehele waarden is enkel het Answer Report (figuur 8) mogelijk, dat in een afzonderlijk werkblad, links van het geactiveerde wordt geplaatst en de standaard naam Answer Report 1 krijgt. Je kan de afdruk van dit rapport beheren met het commando
View, Report Manager…
Opmerkingen:
|
Q |
Wj |
|
1000 |
48638 BF |
|
975 |
51725 BF |
|
978 |
51973 BF |
|
974 |
51605 BF |
|
974 |
51605 BF |
|
980 |
51888 BF |
|
979 |
52023 BF |
Interessant is een tweede geval waarbij je op zoek gaat naar het Break Even Point (BEP). Dit is de productiewaarde waarbij er geen winst of verlies is. Theoretisch wordt deze waarde bekomen uit de formule:
Productiekosten = Omzet
of
F + cp * Q = P * Q
waaruit volgt:
QBEP = F / ( P - cp) = 10000 / (45 - 30) = 667 (afgerond)
In de praktijk zal deze waarde slechts bij benadering gelden, omdat er in deze formule wordt van uitgegaan dat er geen begin- en eindvoorraden zijn en steeds exact aan de vraag wordt voldaan. De bewaarkosten zullen daarenboven verantwoordelijk zijn voor een tweede nulpunt van de winst. Volgens de theoretische formule stijgt de winst immers steeds met de productie (in de onrealistische veronderstelling dat steeds de ganse productie wordt verkocht). In de praktijk daarentegen zal je bij een zeer grote productie met aanzienlijke voorraden blijven zitten, die bewaarkosten met zich meebrengen. Daardoor zal de winst vanaf een zekere (maximale) waarde gaan dalen en uiteindelijk weer een nulwaarde bereiken. Ga nu op zoek gaan naar deze twee nulwaarden.
Tools, Solver…
Vul nu in het Solver Parameters dialoogvenster in:
|
Set Target Cell : |
$F$4 (Wj) |
|
Equal to : |
Value of 0 |
|
By Changing Cells : |
$F$2 (Q) |
|
Subject to the Constraints : |
$F$2 = integer |
|
Solve |
Nu wordt gemeld dat er geen exacte oplossing kan worden gevonden: Solver could not find a feasable solution. Dit is uiteraard te verwachten met de beperking dat enkel gehele waarden voor
Q zijn toegelaten. Nochtans wordt de benaderde waarde getoond. Wanneer je hiermee niet tevreden bent bestaat er een eenvoudige truc om dit op te lossen:Vervang de formule in cel F4 (Wj; =Q21) door
|
F4: |
=ABS(Q21) |
Aangezien je toch niet geïnteresseerd bent in verliezen, maakt dit niets uit in normale situaties. Je kan nu echter trachten de kleinste waarde (dichtst bij 0 liggende waarde) voor Q21 te zoeken, door in het Solver Parameters dialoogvenster in te vullen:
|
Set Target Cell : |
$F$4 (ABS(Wj)) |
|
Equal to : |
Min |
|
By Changing Cells : |
$F$2 (Q) |
|
Subject to the Constraints : |
$F$2 = integer |
|
Solve |
Je zal hierdoor steeds één oplossing krijgen. Om beide oplossingen te krijgen kan je een extra restrictie toevoegen:
|
Subject to the Constraints: |
$F$2 <= 900 (het lage nulpunt - Break Even Point) |
of:
|
Subject to the Constraints: |
$F$2>= 1100 (het hoge nulpunt) |
Je kan een restrictie wijzigen of verwijderen door ze te selecteren en de Change... of Delete knop in te drukken. Bij het zoeken naar de nulpunten vervang je in het werkblad de startwaarde voor
Q door een waarde die reeds aan de restrictie voldoet.De aldus bereikte oplossingen zijn:
Uiteraard zullen de gevonden waarden anders zijn bij andere vraagcijfers. Je kan dit uittesten.
Wanneer je alle scenario's hebt bewaard kan je een scenario opvragen met het commando
Tools, Scenarios…
In het Scenario Manager dialoogvenster (figuur 10) kan je de scenario's tonen en beheren.
Je hebt met de Solver als het ware een tekenstudie van de functie
Wj(Q) gemaakt: Je hebt de nulpunten en het maximum gezocht met behulp van het idee dat je over deze functie kon verkrijgen door redenering. Nu ga je een stap verder door voor een groot aantal waarden van de productie de winst te berekenen in een data table en deze daarna grafisch uit te zetten. Kies deze waarden tussen 600 en 1200, zodat de twee nulpunten in het interval vallen.Plaats de data table en chart onderaan in het werkblad Voorraad 4.
Excel heeft een commando, Data, Table..., waarmee je een één- of tweedimensionale tabel kan opstellen.
Een ééndimensionale tabel bevat twee of meer kolommen (of rijen). In de linkerkolom worden de waarden van de onafhankelijke grootheid (
Q) vermeld, in de overige kolommen zullen de functiewaarden (jaarlijkse winst Wj en theoretische jaarlijkse winst Wth) worden berekend. De eerste rij van de tabel bevat in de rechterkolommen de formules.Stel de data table van de winst als volgt op:
|
J24: |
Q |
|
|
K24: |
Wj |
|
|
L24: |
Wth |
|
|
J24:L24: |
Font Size knop: 14, Center knop |
|
|
J25: |
=F2 |
(Q) |
|
K25: |
= Q21 |
(Wj) |
|
L25: |
=((M2-M4)*F2-M3)*12 |
((P–cp)*Q–F)*12 |
|
J24:L25: |
Borders lijst, knop 10 (overal dunne lijn) |
|
|
J26:J27: |
600, 610, sleep fill handle naar J26:J86 |
|
|
J25:J86: |
Format, Cells..., Number tabblad, Category Custom: 0" e." |
|
|
K25:L86: |
Format, Cells..., Number tabblad, Category Currency:Decimal Places: 0, Symbol: BF, Negative Numbers: - 1 234 BF |
|
|
J26:L86: |
Format, Cells, Border tabblad, Line: dun, Presets: Outline, Border: verticaal binnenin |
|
|
Data, Table..., Column Input Cell: $F$2 |
||
De data table wordt gegenereerd in de range K26:L86 (figuur 12). In elke cel wordt de array formule {=TABLE(,F2)} geplaatst.
Opmerkingen:
Tools, Options..., Calculation tabblad
In het Calculation tabblad van het Options dialoogvenster kies je de optie Automatic except tables. Om bij deze instelling ook de tabellen te herberekenen zal je nu de Calc Sheet of Calc Now knoppen moeten indrukken. Wanneer zelfs dan het herberekenen nog te lang duurt, kan je de automatische herberekening volledig uitzetten door de Manual optie te kiezen.
Stel nu de data table in een chart voor. Bij het plaatsen van de theoretische formules heb je er reeds voor gezorgd dat deze mee in de chart kunnen worden opgenomen. Je stelt best een XY chart op, omdat dit de enige is die je de mogelijkheid biedt de schaal van de X-as te wijzigen. Neem de hele tabel in de chart op, behalve rij 25:
De gedaante van de chart is echter nog niet zoals gewenst. Het belangrijkste tekort is dat op de X-as waarden van 0 tot 1500 i.p.v. van 600 tot 1200 worden getoond. Dubbelklik daarom de ingebedde chart en brengen de volgende wijzigingen aan:
dubbelklik X-as, Scale..., Minimum: 600 (i.p.v. 0), Maximum: 1200 (i.p.v. 1500),
Major unit: 200 (i.p.v. 500)
Verplaats daarna de chart en wijzig zijn afmetingen (figuur 12).
Je kan naast een ééndimensionale data table, waarin slecht één inputgrootheid verandert, ook een tweedimensionale data table opstellen waarin je zowel voor de Row input cell als voor de Column input cell een waarde moet invullen. In dit geval zal slechts één output grootheid in de tabel kunnen worden opgenomen. Maak ter illustratie een data table waarin je de jaarlijkse winst
Wj berekent voor variërende waarden van de maandelijkse productie Q en de variabele kost cp (figuur 13):|
O24: |
Wj |
|
|
P24: |
cp |
|
|
N26: |
Q |
|
|
O25: |
=Q21 |
(formule voor de winst) |
|
O26:O46: |
1000, 1001, ..., 1020 |
(waarden voor Q) |
|
P25:T25: |
28, 29, 30, 31, 32 |
(waarden voor cp) |
|
O25:T46: |
Data, Table..., Row Input Cell: $M$4, Column Input Cell: $F$2 |
|
Opmerkingen:
Je zal nu een tweede model opstellen waarin je de maandelijkse productie bepaalt in functie van de verwachte vraag en de beginvoorraad voor die maand.
Stel dit model op in het werkblad Voorraad 5. Ga hierbij uit van een kopie van het werkblad Voorraad 3, omdat de data tables en charts zullen afwijken van die in Voorraad 4. Daarenboven zouden bij het kopiëren van een werkblad met ingebedde charts, de datareeksen in de chart op de originele data en niet op de gekopieerde gebaseerd zijn. Om al deze redenen is het veiliger de chart opnieuw op te stellen.
Neem aan dat je in dit nieuwe werkblad elke maand een andere productie kan kiezen. De vraag is nu:
Welke productie is optimaal?
Theoretisch zal het antwoord zijn dat die productie de hoogste winst oplevert, die ervoor zorgt dat juist aan de vraag kan worden voldaan. Aangezien je echter de werkelijke vraagcijfers niet kent, maar enkel kan simuleren, moet je een productie kiezen die er voor zorgt dat het aanbod juist voldoet aan de verwachte vraag:
Qa = Qb + Qp = Qd
waaruit:
Qp = Qd – Qb
Het is wellicht aangewezen een zekere veiligheidsmarge in acht te nemen. Stel deze voor door
dQ en gebruik ze als stuurgrootheid in cel F2. Pas de formule voor de productie aan zodat ze wordt:Qp = Qdv – Qb + dQ
De wijzigingen aan het werkblad zijn gering:
|
E2: |
dQ |
|
|
F2: |
0 |
(dQ; initiële waarde: |
|
C9: |
=E9–B9+$F$2, sleep fill handle naar C9:C20 |
(Qp; =Qdv–Qb+dQ) |
Het werkblad zou nu een begin- en eindvoorraad 0 tonen in elke maand, indien de werkelijke en verwachte vraagcijfers gelijk waren. Waarschijnlijk is het echter beter een veiligheidsmarge te nemen. Kies daarom 20 als waarde voor dQ (figuur 14):
|
F2: |
20 |
(dQ) |
Met de Solver kan je nu de waarde van dQ berekenen die een maximale winst oplevert.
Stel de data table van de winst op, waarbij je voor de inputgrootheid
dQ waarden van –100 tot +100 en een extra kolom voor de jaarlijkse productie (Qpj) voorziet:|
J24: |
dQ |
|
|
K24: |
Qpj |
|
|
L24: |
Wj |
|
|
M24: |
Wth |
|
|
J24:M25: |
Font Size knop: 14, Center knop |
|
|
J25: |
=F2 |
(dQ) |
|
K25: |
=C21 |
(Qpj) |
|
L25: |
=Q21 |
(Wj) |
|
M25: |
=((M2-M4)*C21-M3*12 |
(P–cp)*Qpj-F*12 |
|
J24:M25: |
Borders knop, knop 10 (overal dunne lijn) |
|
|
J26:J27: |
–100,–95, sleep fill handle naar J26:J66 |
|
|
J25:K66: |
Format, Cells..., Number tabblad, Category Custom: 0" e." |
|
|
L25:M66: |
Format, Cells..., Number tabblad, Category Currency:Decimal Places: 0, Symbol: BF, Negative Numbers: - 1 234 BF |
|
|
J26:M66: |
Format, Cells, Border tabblad, Line: dun, Presets: Outline, Border: verticaal binnenin |
|
|
J25:M66: |
Data, Table..., Column input cell: F2 |
|
Bij het opstellen van de chart met de Chart Wizard moet je ook nu achteraf aanpassingen doen:
dubbelklik X-as, Scale..., Minimum: -100 (i.p.v. -150), Maximum: 100 (i.p.v. 150)
Je verkrijgt nu een goede chart links van de data table (figuur 15).
Op een analoge manier kan je het model aanpassen zodat je simulaties krijgt over
Tot slot volgt een overzicht van het Tools menu. Vele commando's hieruit werden in dit en de vorige hoofdstukken behandeld. Het Tools menu bevat de volgende commando's:
|
Tools menu |
|
|
Spelling… |
Controleer de spelling. Je kan binnen Excel de taal niet veranderen! |
|
AutoCorrect… |
Beheer het automatisch corrigeren van spellingfouten. In vele gevallen zet je deze opties beter uit, om het hardnekkig automatisch "verbeteren" van woorden die juist zijn te voorkomen. |
|
LookUp Reference… |
Zoek een sleutelwoord op in Microsoft Bookshelf Basics of een andere referentiebibliotheek. |
|
Share Workbook… |
Beheer op welke wijze (delen van) een werkboek door verschillende gebruikers tegelijk kunnen worden gebruikt. |
|
Track Changes |
Dit is een submenu met de commando's Highlight Changes…, Accept or Reject Changes…. Je kan opgeven wijzigingen te markeren, en eventueel door te voeren. Dit is vooral nuttig wanneer meerdere gebruikers een zelfde werkboek bewerken. Het wordt dan ook met Share Workbook… gecombineerd. |
|
Merge Workbooks… |
Beheer het samenvoegen van meerdere werkboeken. |
|
Protection… |
Dit is een submenu met de commando's Protect Sheet…, Protect Workbook…, Protect and Share Workbook…. Je kan er de beveiliging op allerlei niveaus mee aanzetten en beheren. |
|
Goal Seek… |
Ga op zoek naar één te wijzigen cel om in een afhankelijke cel een vooropgegeven waarde te verkrijgen. |
|
Scenarios… |
Beheer scenario's, die je bijvoorbeeld met de Solver hebt opgesteld. |
|
Auditing |
Dit is een submenu met de commando's Trace precedents, Trace Dependents, Trace Errors, Remove All Arrows, Show Auditing Toolbar. Je kan er afhankelijkheden tussen cellen en fouten mee beheren. Je kan hierbij gebruik maken van de Auditing toolbar. |
|
Solver… |
Zoek waarden voor cellen om in een afhankelijke cel een vooropgegeven waarde te verkrijgen (of een minimale of maximale waarde). |
|
Macro |
Dit is een submenu met de commando's Macros…, Record New Macro…, Visual Basic Editor. |
|
Add-Ins… |
Beheer add-ins. Dit zijn extra mogelijkheden, die vaak niet automatisch worden geïnstalleerd of in de menu's opgenomen. Hierbij worden .xla bestanden gebruikt, die uiteraard op je schijf moeten zijn gekopieerd. Nadat een add-in is geïnstalleerd is er vaak een commando (meestal in het Tools menu) toegevoegd, zoals Solver… of Data Analysis…. Je kan de volgende add-ins beheren: Analysis Toolpak, Analysis Toolpak – VBA, AutoSave, Conditional Sum Wizard, File Conversion Wizard, Internet Assistant Wizard, Lookup Wizard, Microsoft AccessLinks Add-In, Microsoft Bookshelf Integration, MS Query Add-in for Excel 5 Compatibility, ODBC Add-In, Report Manager, Solver Add-In, Template Utilities, Template Wizard with Data Tracking, Update Add-in Links, Web Form Wizard. |
|
Customize… |
Beheer de menubalken en werkbalken. Dit commando is equivalent aan View, Toolbars, Customize…. |
|
Options… |
Bepaal allerlei instellingen die algemeen gelden of voor een bepaald object (zoals een werkboek of een venster). |
|
Wizard |
Dit is een submenu met de commando's Lookup…, File Conversion…, Conditional Sum…, Web Form…. Je kan hiermee de aangeduide Wizards oproepen. |