Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
di Alberto Nosotti
Simulare la gestione di un magazzino ricreandone sulla carta vari modelli dinamici consente di ottenere preziose informazioni su come
ottimalizzare l’impostazione di molti parametri critici gestionali. Ci riferiamo, tanto per fare solo qualche esempio, alla definizione dei
livelli degli stock di sicurezza, o alla minimizzazione dei costi di giacenza e di approvvigionamento, elementi che impattano
significativamente sui risultati finali della gestione stessa, non solo contabilmente, ma anche dal punto di vista organizzativo. In questo
articolo vedremo come realizzare praticamente con Excel 2002 un modello di simulazione che ci fornisca un quadro dettagliato delle
movimentazioni di un magazzino relativamente ad un intero anno di lavoro, in corrispondenza del variare di alcuni parametri
significativi, singolarmente o contemporaneamente. Si possono così determinare in tempo reale gli impatti degli interventi cui si
intende procedere, consentendo la definizione del mix operativo ottimale. Il modello allegato a questo articolo (gestione
magazzino.xls) descrive una situazione generalizzata, ma una volta compresi i principi
che lo regolano si potrà modificarlo opportunamente per adattarlo a casi
personalizzati.
Nota – Il modello prevede l’utilizzo della funzione e che consente di generare i numeri pseudocasuali necessari per la simulazione. Se
già non lo fosse sta, tale funzione deve essere caricata. Ecco come procedere.
Il modello si articola in due fogli di lavoro. Il primo ne costituisce l’interfaccia (figura 1) ed ospita le sezioni per l’inserimento
dei dati, e il riepilogo, anche grafico, dei risultati della simulazione.
Figura 1
Il secondo foglio, invece, ospita il tabulato di simulazione, vale a dire la tabella in cui avvengono le elaborazioni (figura
2).
Tale tabella compendia la situazione delle uscite e delle entrate a magazzino,
contabilizzando le situazioni settimanali.
Figura 2
L’interfaccia
Si materializza nel primo dei due fogli di calcolo, ed è articolata in varie sezioni, rispettivamente dedicate all’inserimento dei
parametri di lavoro, ai dati per la definizione dei lotti economici di approvvigionamento, alle tabelle per la quantificazione
probabilistica delle uscite da magazzino, al riepilogo dei risultati della simulazione, e all’interpretazione grafica in tempo reale
dell’andamento delle uscite relative allo scenario che è stato simulato. Le sezioni dedicate ai dati di lavoro si articolano in caselle
bianche e gialle. Le prime sono dedicate agli input, mentre le seconde ospitano le
formule e le espressioni che li elaborano. Pertanto, in queste ultime, non possono
essere inseriti dati. Di seguito esaminiamo la struttura delle varie sezioni.
Parametri di lavoro
Nelle caselle Stock iniziale e Stock di sicurezza vengono rispettivamente digitati i valori di una eventuale
giacenza a magazzino iniziale di cui deve essere ovviamente tenuto conto agli effetti della simulazione, e il valore delle giacenze a cui
si vuole fare scattare l’approvvigionamento di merce. Entrambi i dati vengono trasferiti automaticamente nelle celle F6 e I6 del
tabulato di simulazione ospitato nel secondo foglio di lavoro.
Stock_iniziale e Stock_di_sicurezza. A tali nomi si fa
Le due celle sono rispettivamente denominate
espresso riferimento nelle celle del tabulato di simulazione in cui vengono trasferiti
automaticamente tali dati.
Calcolo del lotto economico di acquisizione
In questa sezione vene calcolato l’ammontare del cosiddetto lotto economico di acquisizione, vale a dire l’entità
degli ordini in cui suddividere il fabbisogno annuale di merce al fine di minimizzare i costi dell’operazione. Tali costi, infatti, sono il
risultato della contabilizzazione di due fenomeni che si muovono in direzione opposta. Infatti, dal momento che l’emissione di un
ordine ha un suo proprio costo, ed altrettanto dicasi per lo stoccaggio delle partite che giungono periodicamente in magazzino, ci
troviamo in una classica situazione di controtendenza. Per esempio, se si tende a ridurre il numero di ordini per minimizzare i
corrispondenti costi, si determina un aumento ingiustificato delle giacenze di magazzino, mentre queste dovrebbero essere tenute a
livelli i più bassi possibile, compatibilmente con le necessità della produzione. Viceversa, se si opta per emettere un maggior numero
di ordini al fine di diminuire le giacenze, aumentano i costi di acquisto. Il problema, quindi, sta nel mediare opportunamente fra questi
interessi contrastanti definendo l’ottimale ripartizione del quantitativo da ordinare nel corso dell’anno. La soluzione del problema sta
nell’applicare una semplice formuletta che, nota l’entità della fornitura annuale, il costo di emissione di un ordine, e i costi unitari di
stoccaggio relativi al prodotto acquistato, calcola l’ammontare dei singoli ordini da emettere. La riportiamo di seguito:
specificando che Coè il costo di emissione di un ordine, Q il fabbisogno totale del materiale
da acquistare (in pezzi, in peso, in volume e così via), mentre Cs ne rappresenta i costi
unitari di stoccaggio. Ovviamente i due dati di costo richiesti (emissione ordine e
stoccaggio unitario) devono essere attinti dalla contabilità industriale in quanto
risultato di elaborazioni soggettive aziendali. Facciamo un esempio pratico. Se il
fabbisogno totale di un certo materiale è stimato in 100.000 pezzi, il costo di
emissione di un ordine è pari a 25.000 lire, e i costi unitari di stoccaggio ammontano a
1500 lire, il lotto economico di acquisto calcolato con la suddetta formula corrisponde
a 1826 pezzi, vale a dire che il fabbisogno dovrà essere ripartito in 55 forniture
(100.000/1826).
Nella cella J15 della sezione Dati per il calcolo del lotto economico inseriremo pertanto
la formula:
=RADQ((2*J7*J13)/J9)
Dove i due nomi cella che vi figurano si riferiscono rispettivamente, per l’appunto, a quelli assegnati alle celle D29 e D7.
Invece, i due dati di costo richiesti (emissione ordine e stoccaggio unitario) devono essere attinti
dalla contabilità industriale.
Nota – Poiché nel tabulato di simulazione la contabilizzazione dei costi di magazzino prevede che si faccia riferimento al costo di
giacenza settimanale, questo dato deve essere ricavato da quello in nostro possesso relativo al costo unitario di giacenza annua.
Pertanto, nella cella J13 viene inserita la formula:
=J9/52
Si noti che la nostra tabella è complementata da una terza colonna, che ci servirà per determinare mediamente l’ammontare delle uscite
annue. In tale colonna, vengono calcolate le uscite corrispondenti ai vari gruppi di settimane in cui è stato suddiviso l’intervallo
analizzato di 100 settimane. La loro somma rappresenta le uscite totali relative alle 100 settimane, ma dal momento che a noi interessa
l’ammontare relativo ad un anno (vale a dire relativo a 52 settimane) nella cella D29 inseriremo la formula:
=SOMMA(D22:D28)/100*52
La tabella di scansione
Stabilite le probabilità delle uscite non ci resta che creare una tabella di scansione che ci servirà per simulare queste ultime nell’arco
delle 52 settimane. Nella prima colonna inseriremo i limiti di 7 intervalli di valori che hanno una probabilità di essere estratti (da
un’urna virtuale contenente i numeri da 1 a 100), pari a quella delle uscite di merce della colonna a fianco. In pratica, l’estrazione di un
numero da 1 a 10 (che ha il 10 percento di probabilità di verificarsi), viene associata all’uscita di 1000 pezzi, mentre l’estrazione di un
numero da 11 a 22 (probabilità di estrazione 12 percento) lo si associa ad una uscita di 1200 pezzi, che per l’appunto ha la medesima
probabilità di verificarsi. Fra poco vedremo come utilizzare opportunamente questo prospetto per l’impostazione del tabulato di
simulazione. Per il momento limitiamoci a denominare Tabella_Uscite la sola zona corrispondente ai dati
(F21:G27).
Riepilogo dei risultati
In questa sezione dell’interfaccia vengono riepilogati i risultati delle singole simulazioni man mano che vengono eseguite. Tali dati
sono prelevati tramite formule che fanno riferimento a determinate zone del tabulato di simulazione o che ne elaborano determinati
valori. Ecco di seguito la struttura della suddetta sezione.
Contiene la formula:
= TOTALE_USCITE
che fa riferimento alla cella D10 del tabulato di simulazione, così denominata.
2 - Stock massimo (cella P22)
Contiene la formula:
= MAX(STOCK)
dove Stock è il nome assegnato alla zona E13:E64 del tabulato di simulazione.
3 - Stock minimo (cella P24)
Contiene la formula:
=MIN(STOCK)
Contiene la formula:
=STOCK_FINE_ANNO
che fa riferimento al nome assegnato alla cella E64 del tabulato di simulazione.
5 - Costi Totali
Contiene la formula:
=COSTI_TOTALI
che fa riferimento al nome assegnato alla cella I10 del tabulato di simulazione.
Nella barra strumenti, fare clic sull’icona dedicata alla creazione dei grafici
Figura 4
Fare clic sul pulsante Avanti. Si accede così alla maschera in cui si dichiara
la zona occupata dai dati ( la D13:D64 del foglio di lavoro simulazione). In
alternativa, fare clic sul pulsantino a destra della casella dati, e selezionare
direttamente la zona. Specificata la zona fare clic sul bottone Colonne per
indicare che il grafico dovrà interpretare in tal senso i dati dichiarati (figura 5).
Figura 5
Figura 6
Accedere alla scheda Legenda e disattivare la casella Mostra legenda.
Premere il pulsante Fine per concludere la procedura. Così facendo, al centro
del foglio di lavoro viene visualizzato il nostro grafico. Posizionarlo e
ridimensionarlo opportunamente (figura 7).
In questa sezione del modello, hanno luogo tutte le elaborazioni che portano alla creazione del tabulato di simulazione, articolato in 52
righe (corrispondenti ad altrettante settimane), e in 8 colonne. Le formule (fatta eccezione per la colonna Stock) si inseriscono nella
prima cella di ogni colonna, e si replicano poi sino in fondo al tabulato. Le voci da prendere in considerazione per la nostra analisi non
sono molte, ma estremamente significative. Le elenchiamo di seguito nell’ordine in cui compaiono nelle colonne del tabulato
(figura 8) che descrive l’intera simulazione.
Settimane di simulazione
In questa colona sono ospitati i numeri progressivi delle settimane in cui si articola la simulazione, che nel nostro caso vanno da 1 a
52. Per inserirli automaticamente conviene avvalersi della funzionalità di riempimento automatico di Excel. Digitare 1 e 2
rispettivamente nella celle B13 e B14, quindi evidenziarle. Portare il cursore sul piccolo segno
più che contraddistingue l’angolo inferiore destro della suddetta zona, fare clic, e trascinare il mouse verso il basso per estendere
l’evidenziazione sino alla cella B64. Rilasciando il tasto del mouse viene automaticamente
inserita la progressione desiderata.
Numeri casuali
In questa colonna, tramite una speciale funzione di Excel, vengono estratti in corrispondenza di ogni settimana altrettanti numeri
casuali da 1 a 100 compresi. A seconda del numero casuale che viene generato, nella cella a fianco verrà restituita la corrispondente
uscita da magazzino, come previsto dalla tabella che abbiamo impostato a suo tempo. Finora abbiamo parlato di numeri casuali, ma
quelli che utilizzeremo sono numeri pseudocasuali. Tale precisazione è solo formale perché sostanzialmente non cambia nulla, ma vale
la pena di farla se non altro per chiarezza. La differenza sta nel fatto che i numeri pseudocasuali sono generati da un algoritmo
matematico, e pertanto dopo un certo numero di generazioni (solitamente 10.000) la serie si ripete esattamente. Il nostro modello,
però, che di numeri ne utilizza solo 52, non ne risente affatto. Per curiosità, si sappia che i numeri casuali veri e propri, invece,
vengono generati con metodi assolutamente naturali. Per esempio, l’ideatore del famoso metodo di Montecarlo, che utilizza per
l’appunto numeri casuali per eseguire una simulazione, non trovò nulla di meglio da fare che registrare materialmente migliaia e
migliaia di uscite alla roulette dell’omonimo Casino, da cui la denominazione del metodo. Ma ritornano ai nostri numeri
pseudocasuali. Per generarli ci avremo della funzione CASUALE.TRA(limite inferiore;limite superiore), dove i due
argomenti rappresentano l’intervallo in cui deve avvenire la generazione (limiti compresi). Pertanto, digiteremo nella cella C13 la
formula:
=CASUALE.TRA(1;100)
A questo punto dobbiamo preoccuparci di associare alla estrazione di ogni numero pseudocasuale la corrispondente uscita da
magazzino.
Uscite da magazzino
Le formule che si trovano nelle celle di questa colonna prelevano dalla tabella denominata Tabella_uscite ospitata
nell’interfaccia del modello l’ammontare delle uscite da magazzino settimanali, leggendolo in corrispondenza del numero
pseudocasuale generato nella cella a fianco. Nella prima cella della colonna, il prelievo è eseguito dalla formula
=CERCA.VERT(C13;Tabella_Uscite;2)
CERCA.VERT(riferimento;tabella;colonna)
Dove riferimento è l’elemento da ricercare nella prima colonna di tabella, mentre colonna è la colonna contenente il dato da restituire.
Nel nostro caso, il termine di riferimento da ricercare è il numero pseudocasuale che viene dichiarato attraverso le coordinate della
F21:G27 che viene indicata tramite il nome
cella che lo ospita. L’argomento tabella corrisponde alla zona
che le è stato assegnato, mentre la colonna che ospita i valori da restituire è la numero
2.
Stock
I valori contenuti nelle celle di questa colonna rappresentano le giacenze di merce settimanali, tenendo conto delle uscite da magazzino
nella seconda cella della colonna, e da
e delle eventuali entrate. La formula che le esprime, da digitare
replicare verso il basso sino alla posizione E64, è la seguente:
=E13-D14+F13
Nella prima cella della colonna, invece, è ospitato il dato relativo ad eventuali giacenze iniziali, prelevato automaticamente dalla
sezione Parametri di lavoro dell’interfaccia. In tale cella, infatti, è stata inserita l’espressione:
=Stock_iniziale
Entrate a magazzino
Questa colonna gestisce automaticamente le entrate a magazzino, determinandole in base all’andamento delle giacenze e al livello
dello stock di sicurezza che si intende adottare (da inserire nella cella D9 della sezione Parametri di lavoro nel
foglio di interfaccia). In pratica, le formule ospitate nelle celle della colonna analizzano il valore della giacenza settimanale espressa
nella cella a sinistra, e se questo è inferiore al livello di sicurezza determinano una entrata di magazzino pari al lotto economico di
acquisto. A questo punto bisogna fare qualche considerazione. Il tabulato di simulazione indica le settimane in cui la merce deve
entrare a magazzino, ma considerando che bisogna tenere conto dei tempi di consegna, l’ordine deve essere emesso in opportuno
anticipo rispetto alla data indicata. Ma ecco la formula da inserire nella cella F13, e replicare poi verso il basso
sino alla cella F64 compresa:
=SE(E13<Stock_di_sicurezza;Lotto_economico;0)
Figura 11
Costi fissi
In questa colonna vengo riportati i costi fissi di produzione, che sono quelli legati alle operazioni di acquisto, e sono coinvolti
nell’elaborazione del lotto economico di acquisto. Essi devono comparire solo accanto alla cella in cui sono visualizzate le entrate di
magazzino. Pertanto, nella cella G13 si digita l’espressione condizionale:
=SE(F13>0;Costi_produzione;0)
=E13*Costi_stoccaggio_settimanale
Eseguire una simulazione è semplicissimo. Basta accedere al foglio di interfaccia, inserire i dati richiesti, quindi premere il tasto F9.
I risultati della simulazione vengono riepilogati nelle varie sezioni. Una volta eseguita
la simulazione, premendo F9 ne viene condotta un’altra sempre utilizzando gli stessi dati. I risultati, ovviamente,
possono variare leggermente perché alla simulazione di uno stesso scenario corrisponde una diversa distribuzione delle uscite e delle
entrate a magazzino, pur rispettando quella emersa dall’analisi storica. È
appena il caso di ricordare che si da
per scontato che la simulazione si deve riferire a situazioni analoghe a quelle in
cui sono stati rilevati i dati storici.