fbpx

Analisi ABC e Matrice Scorte Consumato

Applicando l’analisi ABC sia alla giacenza media che al consumo degli articoli possiamo ottenere una matrice Scorte Consumato costituita da nove aree.matrice

I codici posti sulla diagonale rappresentano la situazione ideale, anche se bisogna prestare attenzione ai codici di classe AA poiché possono verificarsi due situazioni: possibile stock-out o area in cui intervenire per ridurre le scorte. Aree critiche sono le classi CA in quanto l’elevato livello di scorta non è giustificato dal consumo, invece per i codici in classe AC si possono presentare casi di stock out. Le classi rimanenti sono di minore criticità in quanto vi è coerenza tra giacenza e consumo.

Vediamo ora come effettuare questa analisi in access inserendo anche una dimensione temporale

Consideriamo due tabelle di partenza:

consumi CODICE,CONSUMO, MESE

giacenza CODICE, GIACENZA, MESE

La prime due query da realizzare sono due query di selezione:

SELECT Consumi.MESE, SUM(Consumi.CONSUMO) AS TCONSUMO
FROM Consumi
GROUP BY Consumi.MESE;
 
SELECT Giacenze.MESE, SUM(Giacenze.GIACENZA) AS TGIACENZA
FROM Giacenze
GROUP BY Giacenze.MESE;

Successivamente si eseguono due query di creazione tabelle

SELECT Consumi.CODICE, Consumi.MESE, Consumi.CONSUMO, TOTCONSUMO.TCONSUMO, [CONSUMO]/[TCONSUMO] AS [%CON], "" AS CLASSECONSUMO INTO PCONSUMI
FROM Consumi INNER JOIN TOTCONSUMO ON Consumi.MESE = TOTCONSUMO.MESE
ORDER BY Consumi.CONSUMO DESC;
 
SELECT Giacenze.CODICE, Giacenze.MESE, Giacenze.GIACENZA, TOTGIACENZA.TGIACENZA, [GIACENZA]/[TGIACENZA] AS [%CON], "" AS CLASSEGIACENZA INTO PGIACENZA
FROM Giacenze INNER JOIN TOTGIACENZA ON Giacenze.MESE = TOTGIACENZA.MESE
ORDER BY Giacenze.GIACENZA DESC;

a questo punto eseguiamo del codice per trovare le classi ABC per entrambe le tabelle

sub()
Dim mese(n)
If mese(n)<>mese(n-1) then
	Cumulata=perc_consumo
	If Cumulata<=0,8 then
classe=”A”
	Else
		If cumulata<=0,9 then classe=”B” else classe=”C”
	End if
Else
Cumulata=Cumulata+perc_consumo
	If Cumulata<=0,8 then
classe=”A”
	Else
		If cumulata<=0,9 then classe=”B” else classe=”C”
	End if
End if
End sub

ed in infine una query di selezione

SELECT PCONSUMI.CODICE, PCONSUMI.MESE, PCONSUMI.CLASSECONSUMO, PGIACENZA.CLASSEGIACENZA, [CLASSECONSUMO] & [CLASSEGIACENZA] AS [CLASSE_CO/GI]
FROM PCONSUMI INNER JOIN PGIACENZA ON (PCONSUMI.MESE=PGIACENZA.MESE) AND (PCONSUMI.CODICE=PGIACENZA.CODICE);

In questo modo è possibile valutare come si modificano le varie categorie durante il tempo, ed analizzare gli spostamenti degli articoli individuando i codici che rimangono nella stessa classe o quelli che si spostano da una classe ad un’altra, particolare attenzione va posta agli articoli che durante l’anno passano ripetutamente da una classe ad un’altra per individuare le ragioni di questa “schizofrenia”. Se aggiungiamo anche la categoria merceologica possiamo individuare la composizione delle classi e come essa varia nel tempo.

3 commenti su “Analisi ABC e Matrice Scorte Consumato”

  1. ciao,
    ho provato a seguire i passi che hai descritto.
    non riesco a far girare la macro.

    Mi da degli errori di compilazione:
    ad esempio il compilatore si blocca su:

  2. Ciao,
    ho provato a seguire i passi che hai descitto sopra, ma mi sono bloccata sulla macro.

    il compilatore mi errore su:

    Dim mese(n)
    dicendomi “constant espession required”

    mi sapresti dire come risolvere il problema?
    grazie

  3. Ciao, il codice è solo una parte della macro per calcolare la classe ABC, il resto del codice dipende dal modo in cui ci si collega alla tabella, io solitamente utilizzo DAO, ma ognuo può utilizzare il metodo che ritiene più opportuno. Si seguito la funzione per il calcolo della classe ABC su una tabella. I valori da passare alla funzione sono i seguenti (da fornire tra virgolette poichè si tratta di testo) : NomeTabella:Indicare il nome della tabella su cui si vuole calcolare la classe ABC, CampoValore: Indicare il nome del campo della tabella in cui è contenuto il valore espresso in percentuale su cui calcolare la classe ABC, CampoABC: Nome del campo della tabella in cui la funzione andrà a scrivere la classe ABC calcolata, Chiave: Nome del campo della tabella in base al quale calcolare la classe ABC, ad esempio se in una tabella abbiamo più codici per i quali vogliamo calcolare la classe ABC la chiave è costituita dal codice ovvero la funzione ricalcola la classe ABC per ogni codice presente nella tabella.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    Public Function classeABC(Nometabella, CampoValore, CampoABC, Chiave)
    Dim db As DAO.Database
    Dim tabella As DAO.Recordset
    Dim campo As DAO.Field
    Dim K(90000)
    Set db = CurrentDb
    Set tabella = db.OpenRecordset(Nometabella, dbOpenDynaset)
    Set campo = tabella.Fields(CampoABC)
    Do Until tabella.EOF
        N = N + 1
        K(N) = tabella.Fields(Chiave)
        perc_consumo = tabella.Fields(CampoValore)
        If K(N)<> K(N - 1) Then
            cumulata = perc_consumo
            If cumulata <= 0.8 Then
                classe = "A"
            Else
                If cumulata <= 0.9 Then classe = "B" Else classe = "C"
            End If
        Else
            cumulata = cumulata + perc_consumo
                If cumulata <= 0.8 Then
                    classe = "A"
                Else
                    If cumulata <= 0.9 Then classe = "B" Else classe = "C"
                End If
        End If
        tabella.Edit
            campo = classe
        tabella.Update
        tabella.MoveNext
    Loop
    tabella.Close
    db.Close
    End Function

    Spero di esserti stato di aiuto, sono a disposizione per qualsiasi chiarimento.
    Gian Paolo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli collegati

Analisi ABC incrociata con PowerPivot

Vediamo come utilizzare PowerPivot per creare un semplice modello di analisi abc incrociata. Seguiamo la seguente metodologia: caricamento dati Collegamento delle tabelle Creazione delle colonne

leggi

Analisi ABC con Excel

[youtube width=”640″ height=”385″ video_id=”L2Fv2SRtR2E”] In questo video post vederemo come realizzare l’analisi ABC delle giacenze di magazzino tramite Excel.

leggi

— il nuovo servizio per i piccoli commercianti —

Bottega Digitale

[]