L’impostazione delle formule e delle funzioni di calcolo direttamente in anagrafica prove del software consente di effettuare calcoli o comunque valutare un'espressione VBA che restituisce una stringa di testo o un valore numerico (attraverso l'utilizzo della funzione eval di VBA - Visual Basic for Applications).
Anche Microsoft Excel permette l'utilizzo di varie funzioni e formule di calcolo utilizzando sempre VBA, ma con una sintassi ed una struttura logica leggermente diversa da quella richiesta dall'applicativo LabPro (VBA originale), come esemplificato nella tabella sottostante. Il motivo principale delle differenze di sintassi deriva dalla implementazione in italiano del software Microsoft Excel rispetto al VBA originale (traduzione delle funzioni in lingua italiana, utilizzo della virgola come separatore decimale ecc)
Descrizione | Esempio Formula di calcolo VBA in Labpro AC | Esempio Formula di calcolo VBA in Microsoft Excel |
---|---|---|
Costanti inserite in formula: separatore decimale punto anzichè virgola e non si usa = per precedere la formula | [A]*3.2 | = A1*3,2 |
Variabili di calcolo; in Labpro AC Vengono elencate sotto la formula riferendosi ai risultati dei parametri inseriti nella prova oppure al risultato di altri parametri/analisi. Le variabili di calcolo nella formula vanno indicate racchiuse fra parentesi quadre. In M Excel le variabili sono indicate con la posizione della cella in cui la variabile è inserita | [A]+[B]+[C] | = A1+A2+B5 |
Operatori aritmetici di calcolo: non ci sono particolari differenze per gli operatorio standard: +, -, *, /, ^. Altri operatori possono essere diversi (es. RADICE QUADRATA) | SQR |
RADQ |
Funzioni di calcolo. La sintassi è generalmente diversa; le principali motivazioni sono che M Excel è tradotto in italiano e inoltre che, usando la virgola come separatore decimale, il separatore fra gli argomenti delle funzioni è normalmente il punto e virgola anzichè la virgola. | iif([test],[se_vero],[se_falso]) | SE([test];[se_vero];[se_falso]) |
Formula Excel =SE(A3>=20;((A3+(2*(RADQ(A3))))/(B3))*C3;((A3+2+(2*(RADQ(A3+1))))/(B3))*C3)
Variabili:
Modifiche necessarie per passare dalla formula M Excel alla formula VBA funzionante in LabPro ver AC
Formula VBA da utilizzare in LabPro ver AC - iif([Z]>=20,(([Z]+(2*(SQR([Z]))))/([Vtot]))*[Vs],(([Z]+2+(2*(SQR([Z]+1))))/([Vtot]))*[Vs])
Descrizione | Esempio Formula di calcolo VBA in Labpro AC | Esempio Formula di calcolo VBA in Microsoft Excel |
---|---|---|
Variabili inserite nell'esempio 1A (Identificativo cella in Excel) | D = Prima diluiz. utile L1 = 1a diluiz. Piastra 1 L2 = 2a diluiz. Piastra 1 |
B5= Prima diluiz. utile C5 = 1a diluiz. Piastra 1 D5 = 2a diluiz. Piastra 1 |
Formula utilizzata per il calcolo del RISULTATO | iif(isnumeric([L2]),(([L1]+[L2])/1.1)*10^[D],[L1]) | =SE(VAL.NUMERO(D5);((C5+D5)/1,1)*10^B5;C5) |
Formula utilizzata per il calcolo dell'INCERTEZZA - LIMITE INFERIORE | 10^(LOG([RIS])/LOG(10)-[U]) | =10^(LOG10(H5)-A5) |
Formula utilizzata per il calcolo dell'INCERTEZZA - LIMITE SUPERIORE | 10^(LOG([RIS])/LOG(10)+[U]) | =10^(LOG10(H5)+A5) |
Variabili aggiuntive inserite nell'esempio 1B (Identificativo cella in Excel) | SR = Scarto tipo di riproducibilità | A4 = scarto tipo di riproducibilità |
Formula utilizzata per il calcolo dell'INCERTEZZA ESTESA | 2*SQR([SR]^2+(0.18861/([L1]+[L2]))) | =2*RADQ(A5^2+(0,18861/(C5+D5))) |
Descrizione | Esempio Formula di calcolo VBA in Labpro AC | Esempio Formula di calcolo VBA in Microsoft Excel |
---|---|---|
Variabili inserite (Identificativo cella in Excel) | RIS = risultato calcolato RIS1 = risultato approssimato alle prime 2 cifre significative INC1 = incertezza limite inferiore INC2 = incertezza limite superiore |
H5 = risultato calcolato K5 = risultato approssimato alle prime 2 cifre significative L5 = incertezza limite inferiore M5 = incertezza limite superiore |
Formula utilizzata per approssimare il risultato e l'incertezza alle prime 2 cifre significative | [RIS] Il risultato potrà essere formattato scegliendo dall pop-up formattazione la voce "Approssimato prime 2 cifre significative" |
=TESTO(H5;"0,0E+00")*1 |
Formula utilizzata per esprimere il risultato in modo diverso in funzione del valore del risultato stesso | iif([RIS1]<1,"m.o inferiori a 1/d UFG/g",iif([RIS1]<4,"m.o. presenti ma < 4/d UFG/g",iif([RIS1]<10,([RIS1]&" UFC stimate/g"),[RIS1]))) | =SE(K5<1;"m.o inferiori a 1/d UFG/g";SE(K5<4;"m.o. presenti ma < 4/d UFG/g";SE(K5<10;CONCATENA(K5;" UFC stimate/g");K5))) |
Formula utilizzata per esprimere l'incertezza come intervallo di misura [LI;LS] | iif([RIS1]<10,"n/a","["&[INC1]&";"&[INC2]&"]") | =SE(K5<10;"N.A.";CONCATENA("[";L5;";";M5;"]")) |
Descrizione | Esempio Formula di calcolo VBA in Labpro AC | Esempio Formula di calcolo VBA in Microsoft Excel |
---|---|---|
Variabili inserite nell'esempio (Identificativo cella in Excel) | V = Volume Titolante 1(ml) C = Concentrazione titolante (N) m = Pesata olio 1 (g) V2 = Volume Titolante 2 (ml) m2 = Pesata olio 2 (g) |
C4= Volume Titolante 1(ml) C5 = Concentrazione titolante (N) C6 = Pesata olio 1 (g) C8 = Volume Titolante 2 (ml) C9 = Pesata olio 2 (g) |
Formula utilizzata per il calcolo del RISULTATO ACIDITA' 1 | ([V]*[C]*282)/(10*[m]) Il risultato potrà essere arrotondato a 2 cifre decimali selezionando da pop-up il numero di decimali |
=ARROTONDA((C4*C5*282)/(10*C6);2) |
Formula utilizzata per il calcolo del RISULTATO ACIDITA' 2 | ([V2]*[C]*282)/(10*[m2]) Il risultato potrà essere arrotondato a 2 cifre decimali selezionando da pop-up il numero di decimali |
=ARROTONDA((C8*C5*282)/(10*C9);2) |
Formula utilizzata per il calcolo del RISULTATO DELLA PROVA ACIDITA' (come Acido Oleico) | ([ACID1]+[ACID2])/2 | =(C7+C10)/2 |
Formula utilizzata per il CALCOLO e ESPRESSIONE dell'incertezza | ± &(Arrotonda([RIS]*0.0343*2,3)) | CONCATENA("± ";ARROTONDA(C11*0,0343*2;3)) |
FAQ | Esempio Formula di calcolo VBA in Labpro AC | Esempio Formula di calcolo VBA in Microsoft Excel |
---|---|---|
Si deve utilizzare una formula per sommare i risultati di alcune prove, ma le prove non sempre hanno un risultato numerico (es. < LQ) | SommaVariabili('*') | =SOMMA(B2:B4) |
Si deve moltiplicare il risultato ottenuto per un coefficiente, ma solo se il risultato è numerico. | iif(isnumeric([ris]),[ris]*1.2,"") | =SE(VAL.NUMERO(D3);D3*2,99;"") |
Si deve utilizzare un parametro SR (scarto tipo di ripetibilità) diverso in relazione alla matrice/tipo campione su cui eseguo la prova | iif([@TC@]="SED",0.22,"")&
iif([@TC@]="AQP",0.63,"")& iif([@TC@]="AQR",0.69,"") OPPURE iif([@TC@]="SED",0.22,(iif([@TC@]="AQP",0.63,(iif([@TC@]="AQR",0.69,""))))) |
=SE(A5="SED";0,22;SE(A5="AQP";0,63;SE(A5="TC";0,69))) |
Si deve calcolare l'incertezza moltiplicanto per un coefficente diverso in relazione al valore del risultato. | SelectRange([RIS],#0:199.9#,([RIS]*0.0104),#200:1999#,([RIS]*0.1038),#2000:19999#,([RIS]*0.078)) | NB La funzione SelectRange è stata sviluppata da noi, pertanto non esiste una funzione corrispondente in Microsoft Excel |
Si deve calcolare l'incertezza utilizzando un coefficiente di moltiplicazione diverso e un diverso numero di decimali in relazione al valore del risultato della prova | SelectRangeNEW([RIS],'0:199.9',Arrotonda([RIS]*0.0104,1),'200:1999',Arrotonda([RIS]*0.1038,0),'2000:19999',Arrotonda([RIS]*0.078,0)) | NB La funzione SelectRange è stata sviluppata da noi, pertanto non esiste una funzione corrispondente in Microsoft Excel |
Per informazioni sui nostri prodotti software:
www.informaticaperlasanita.com
Proactive sas - L.go F.lli Cervi 8 - 56021 Cascina (PI) - tel. 050703284 fax 050 7912117 - e-mail: proactive@proactive-info.it