Dati&formule
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Uno dei grandi vantaggi di Excel è quello di poter creare per chiunque un modo di gestione dei dati a volte davvero complicato e complesso, file che a volte diventano un vero e proprio strumento gestionale. Questa facilità però crea anche uno dei problemi di questi fogli, in particolare quando i dati si mescolano con la logica con cui vengono elaborati, la difficile comprensione per chi non lo ha creato e la difficile manuntenzione.
Purtroppo è un problema che si trasferisce spesso al codice VBA, sia per come questo interagisce con i figli di calcolo sia in parte per la struttura del linguaggio. Ma una delle basi della costruzione di un buon software è proprio la separazione fra i dati e quella che viene chiamata business logic, ovvero l’insieme di regole con cui questi dati vengono elaborati.
La separazione fra dati e logica con cui sono elaborati porta diversi vantaggi. Innanzitutto, rende il codice più modulare e facile da aggiornare o correggere, poiché è possibile modificare la logica senza influenzare la struttura dei dati e viceversa. Inoltre, consente una maggiore riusabilità: la stessa logica può essere applicata a diversi insiemi di dati, e gli stessi dati possono essere utilizzati da diverse parti del programma.
Questa è la teoria, nella pratica, ancora di più con dati poco strutturati come spesso accade negli strumenti creati con Excel questo non succede. Per ovviare a questo problema nell’ultimo anno abbiamo sviluppato un serie di classi che consentono di lavorare con dati non strutturati in modo simile alla logica NoSQL e con una serie di “capacità” che consente di impostare le regole in modo molto “umano”.



Un modo di lavorare di questo tipo consente di:
  1. aggiungere dati senza preoccuparsi di come sono memorizzati;
  2. separare in modo completo le fomrule di trasformazione dai dati;
  3. inserire le formule per come sono diefinite senza preoccparsi se dopo saranno utilizzate in forma inversa;
  4. gestire in automatico le trasformazioni di unità di misura come da €/pz a €/cf;
  5. gestire in automatico le trasformazioni di grandezze come da grammi a kilogrammi;
  6. avere una rappresentazione chiara dei calcoli eseguiti.

Un esempio pratico visualizzato con una struttura ad albero aiuterà a chiarire questi concetti e far intuire quanto possa essere più comodo impostare il codice VBA in questo modo invece di inserire la logica nel codice.

Nelle tabelle qui sotto potete vedere i dati utilizzati, alcuni specifici della vendita altri generici (costi indiretti e cambio) e le formule utilizzate
Nello schema che rappresenta il calcolo qui sotto potete vedere alcuni dei meccanismi con cui funzionano le classi:
  1. per il calcolo del ricavo è stata applicata la formula diretta: Ricavo=Ricavo Unitario*Pezzi Venduti ;
  2. per il cacolo dei costi indiretti la formula Costi Indiretti%=Costi Indiretti/Costo Materiale è stata applicata in forma inversa Costi Indiretti=Costo Materiale*Costi Indiretti%;
  3. il costo unitario espresso in €/cf è stato convertito in €/pz per poter essere moltiplicato per i pezzi consegnati;
  4. le spese di spedizione in $/pz sono state convertite in €/px per poter essere sommati al costo unitario convertito in precedenza.
Questo esempio mostra come lavorndo in questo modo sia estremamente semplice definire le regole di trasformazione dei dati e come il calcolo sia indipendente dall'unità di misura dei dati in ingresso.


I file scaricabili associati a questo articolo e il codice delle funzioni sono riservati agli utenti abbonati del sito.


Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
Per dubbi o domande potete scriverci a domande@macrofacili.it, sulla nostra pagina FB MacroFacili.it o sul gruppo FB Excel, macro e formule.
 

data4idea srls - PIva 01881000937 - info@data4idea.it