Volendo essere piu' generosi, ti crei nel foglio la tabella con i costi; ad esempio
image hostingPoi premi Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia questo codice e incollalo nel frame di dx:
- Codice: Seleziona tutto
Function TransCost(ByRef myPeso As Single, ByRef myMap As Range) As Variant
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=104927
Dim myC As Single, myDone As Boolean, I As Long
'
For I = 1 To myMap.Rows.Count
If myPeso > myMap.Cells(I, 2) Then
myC = myC + (myMap.Cells(I, 2) - myMap.Cells(I, 1)) * myMap.Cells(I, 3)
Else
myC = myC + (myPeso - myMap.Cells(I, 1)) * myMap.Cells(I, 3)
myDone = True: Exit For
End If
Next I
If myDone Then TransCost = myC Else TransCost = CVErr(2015)
End Function
Poi torni su Excel e usi la formula
- Codice: Seleziona tutto
=TransCost(IlPeso;LaTabella)
"LaTabella" punta all' intervallo in cui e' impostata la tabella dei costi, ad esclusione dell'intestazione; puo' comprendere righe vuote in coda (ad esempio se pensi di dover articolare diversamente la tabella). Per scelta, la seconda riga ha come peso iniziale lo stesso valore del peso finale della prima riga, e ha il significato di "oltre questo peso".
Esempio, se il peso e' in A2 e la tabella come mostrato prima, la formula potrebbe essere
- Codice: Seleziona tutto
=TransCost(A2;M2:O8)
Ciao