Ho provato a creare una formula "SE" ma non ci sono riuscito
Chiaramente io parto con i seguenti dai
- Ore lavorate dalla macchina
- Coefficienti A B C e D
Avrei bisogno di ottenere i 4 risultati singoli e una cella con una formula
complessiva
Ci ho provato ma ....
Alex
grazie
=SE(A2<21;A2*B2;SE(A2<36;A2*C2;SE(A2<51;A2*D2;A2*E2)))
avendo in A2 le ore lavorate, B2 il coeff A, C2 coeff B, D2 coeff C, E2
coeff D.
La adatti ai tuoi riferimenti ...
--
IvanDaBologna
-=-=-==--==-=-=-
sottOFFICEale - il mio blog
barbera del monferrato - il mio vino
carmen - la mia donna
non necessariamente nello stesso ordine
Ciao Alessio, non ho capito cosa significa 4 risultati singoli e una formula
complessiva, mi sembrano in antitesi (4 formule o una?).
Interpretando, per quanto riguarda la formula complessiva, una delle tante:
se:
Ore Coeff. Range Formula
50.00 0,10 0 15
0,20 21
0,30 36
0,40 51
La formula in D2: =$A$2*24*INDICE(B2:$B$5;CONFRONTA($A$2*24;$C$2:$C$5;1))
N.B.: in A2 il formato cella deve essere [h].mm e l'ora inserita in formato
ora (es. 50.00).
--
Fai sapere se e come hai risolto. Grazie
Ciao paoloard
http://riolab.org
Anche: =$A$2*24*(SCARTO($A$1;CONFRONTA($A$2*24;$C$2:$C$5;1);1))
--
Ciao paoloard
http://riolab.org
Ho due macchinari il cui lavoro devo necessariamente fatturare a orari di
impiego. Le macchine eseguono mansioni differenti e non lavorano
contemporaneamente. Quando finisce il suo compito la prima, parte la seconda
a completare l'opera. Il contratto sarebbe tale per cui più lavorano (in
totale) più costano in termini di tariffa oraria.
Il costo di impiego orario GLOBALE indicativo è nella tabella qui sotto:
da 0 a 40 ore 20 ¤
41 a 50 ore 34 ¤
51 a 65 ore 40 ¤
65 ore in poi 50 ¤
Poniamo, per esempio, che la prima macchina lavori 55 ore, poi interviene
anche la seconda che ne lavora altre 100 (i tempi di impiego della prima e
della seconda variano a seconda dei casi).
La domanda è: come faccio a conteggiare il costo (secondo i relativi
scaglioni) del lavoro della prima macchina per poi partire dallo scaglione
giusto per il costo di impiego della seconda?
devo presentare un prospetto nel quale deve apparire
1) il costo totale della prima macchina
2) gli scaglioni in termini di tempi che hanno contribuito a tale totale
3) il costo totale della seconda macchina da quando è intervenuta al posto
della prima
4) i dettagli dei costi (per scaglioni di tempi di impiego) che hanno
contribuito a tale totale.
Io, poi farò la somma e fatturerò.
Non ci penso nemmeno a risolvere da solo questa cosa!!!!
Al Vostro buon cuore
Alessio
Il tempo minimo di tariffazione non sarà zero...
E 2:12 (due ore e dodici minuti) contano per 20 * 72/60?
Tariffazione uguale per ambedue le macchine?
Nell'esempio proposto (55 + 100) il totale fa 7240?
Bruno
Errata
> Nell'esempio proposto (55 + 100) il totale fa 7240?
Corrige
Nell'esempio proposto (55 + 100) il totale fa 6240?
Bruno
2 ore e 12 minuti .... beh ... sono 2 ore e 12/60 di un'ora quindi sono
20*132/60 (forse non ho capito la domanda).
Stessa tariffazione per entrambe le macchine
Nell'esempio esposto fa proprio 6240
i tempi sono indicativi (intendo 55 + 100) in quanto variabili a seconda del
tipo di lavoro.
Se posso completare, io parto dai segunati dati presenti nel foglio di
calcolo:
1) una tabella costo orario come quella scritta nel primo post
2) una casella con le ore della prima macchina
3) una casella con le ore della seconda macchina
Completerei con una struttura di caselle per i risultati come quella esposta
sempre nel primo post.
Ti ringrazio .. č un aiuto molto apprezzato.
Alessio
"Bruno Campanini" <B...@gmail.com> wrote in message
news:eclb4Dz...@TK2MSFTNGP03.phx.gbl...
"Bruno Campanini" <B...@gmail.com> wrote in message
news:eclb4Dz...@TK2MSFTNGP03.phx.gbl...
Prova un po' questa:
===========================================
Public Sub Test()
Dim TT(1 To 4), T, i As Integer, k As Integer
Dim Tariffa(1 To 4), Costo(1 To 4), M(1 To 2) As String
Dim Totale, TargetRange(1 To 2) As Range, Startfrom As Integer
Dim A(1 To 3), Scelta As String, TTT(1 To 2)
' Definizioni
'-------------------------------------------------
Set TargetRange(1) = [Sheet7!AM13]
Set TargetRange(2) = TargetRange(1)(8)
Tariffa(1) = CDec(20): Tariffa(2) = CDec(34)
Tariffa(3) = CDec(40): Tariffa(4) = CDec(50)
A(1) = CDec(40): A(2) = CDec(10): A(3) = CDec(15)
'-------------------------------------------------
For i = 1 To 2
Do: Scelta = InputBox("Tempo di Macchina-" & _
i & " in HH.MM decimali")
If Scelta = "" Then Exit Sub
Loop Until IsNumeric(Scelta)
TTT(i) = CDec(Scelta)
M(i) = "M" & i
Next
k = 1: T = CDec(TTT(1))
Start_1:
If T >= A(1) Then
TT(1) = A(1): T = T - A(1): Costo(1) = Tariffa(1) * A(1)
Else
TT(1) = T: Costo(1) = Tariffa(1) * T: T = 0
Startfrom = 1: A(1) = A(1) - TT(1)
End If
Start_2:
If T >= A(2) Then
TT(2) = A(2): T = T - A(2): Costo(2) = Tariffa(2) * A(2)
Else
TT(2) = T: Costo(2) = Tariffa(2) * T: T = 0
Startfrom = 2: A(2) = A(2) - TT(2)
End If
Start_3:
If T >= A(3) Then
TT(3) = A(3): T = T - A(3): Costo(3) = Tariffa(3) * A(3)
Else
TT(3) = T: Costo(3) = Tariffa(3) * T: T = 0
Startfrom = 3: A(3) = A(3) - TT(3)
End If
Start_4:
If T > 0 Then
TT(4) = T: Costo(4) = Tariffa(4) * T
End If
For i = 1 To 4
If TT(i) > 0 Then
Totale = Totale + Costo(i)
TargetRange(k)(i, 1) = M(k)
TargetRange(k)(i, 2) = TT(i)
TargetRange(k)(i, 3) = Tariffa(i)
TargetRange(k)(i, 4) = Costo(i)
End If
Next
If k = 2 Then Exit Sub
k = 2: T = TTT(k): Totale = 0
For i = 1 To 4
TT(i) = 0: Costo(i) = 0
Next
Select Case Startfrom
Case 1: GoTo Start_1
Case 2: GoTo Start_2
Case 3: GoTo Start_3
Case Else: GoTo Start_4
End Select
End Sub
======================================
Bruno
O meglio, questa:
==============================================
Startfrom = 1: A(1) = A(1) - TT(1): GoTo AAA
End If
Start_2:
If T >= A(2) Then
TT(2) = A(2): T = T - A(2): Costo(2) = Tariffa(2) * A(2)
Else
TT(2) = T: Costo(2) = Tariffa(2) * T: T = 0
Startfrom = 2: A(2) = A(2) - TT(2): GoTo AAA
End If
Start_3:
If T >= A(3) Then
TT(3) = A(3): T = T - A(3): Costo(3) = Tariffa(3) * A(3)
Else
TT(3) = T: Costo(3) = Tariffa(3) * T: T = 0
Startfrom = 3: A(3) = A(3) - TT(3): GoTo AAA
End If
Start_4:
If T > 0 Then
TT(4) = T: Costo(4) = Tariffa(4) * T
End If
AAA:
For i = 1 To 4
If TT(i) > 0 Then
Totale = Totale + Costo(i)
TargetRange(k)(i, 1) = M(k)
TargetRange(k)(i, 2) = TT(i)
TargetRange(k)(i, 3) = Tariffa(i)
TargetRange(k)(i, 4) = Costo(i)
End If
Next
If k = 2 Then Exit Sub
k = 2: T = TTT(k): Totale = 0
For i = 1 To 4
TT(i) = 0: Costo(i) = 0
Next
Select Case Startfrom
Case 1: GoTo Start_1
Case 2: GoTo Start_2
Case 3: GoTo Start_3
Case Else: GoTo Start_4
End Select
End Sub
=====================================
Bruno
"Bruno Campanini" <B...@gmail.com> wrote in message
>> Prova un po' questa:
>> ===========================================
>> Public Sub Test()
>> Dim TT(1 To 4), T, i As Integer, k As Integer
> [...]
>
> O meglio, questa:............................................
> Se posso completare, io parto dai segunati dati presenti nel foglio di
> calcolo:
> 1) una tabella costo orario come quella scritta nel primo post
> 2) una casella con le ore della prima macchina
> 3) una casella con le ore della seconda macchina
vedi scaglioni3
http://www.prodomosua.eu/zips/scaglioni3.xls
(è un aggiornamento di scaglioni2 che
potevi già trovare su google groups).
.f
dimenticavo:
i tempi devi inserirli in formato hh:mm
.f
Buona ta terza:
=============================================
Public Sub Test2()
Dim Sc() As Currency, Tar() As Currency
Dim numM As Integer, numSc As Integer, M() As String
Dim TargetRange As Range, T As Currency, TT() As Currency
Dim Scelta As String, sSc() As Currency
Dim i As Integer, j As Integer, k As Integer
' Definizioni
'--------------------------------
Set TargetRange = [Sheet7!AM13]
numM = 2 ' Numero Macchine
numSc = 3 ' Numero Scaglioni
'--------------------------------
ReDim Sc(1 To numSc)
ReDim sSc(1 To numSc + 1)
ReDim M(1 To numM)
ReDim Tar(1 To numSc + 1)
ReDim TT(1 To numM)
' Definizioni
'-------------------------------------------------------
' Definisce ampiezza Scaglioni Definisce Tariffa
Sc(1) = 40: Tar(1) = 20
Sc(2) = 10: Tar(2) = 34
Sc(3) = 15: Tar(3) = 40
Tar(4) = 50
'-------------------------------------------------------
For i = 1 To numM
Do
Scelta = InputBox("Tempo di Macchina-" & i & " in HH.MM decimali")
If Scelta = "" Then Exit Sub
Loop Until IsNumeric(Scelta)
TT(i) = CCur(Scelta)
M(i) = "M" & i
Next
For i = 1 To numM
T = TT(i)
For j = 1 To numSc
If T >= Sc(j) Then
sSc(j) = Sc(j)
T = T - Sc(j)
Sc(j) = 0
Else
sSc(j) = T
Sc(j) = Sc(j) - T
T = 0
End If
Next
If T > 0 Then
sSc(numSc + 1) = T
End If
Range(TargetRange(1 + (i - 1) * 7, 0), TargetRange(4 + (i - 1) * 7,
4)).ClearContents
For k = 1 To numSc + 1
If sSc(k) > 0 Then
TargetRange(k + (i - 1) * 7, 0) = "Sc-" & k
TargetRange(k + (i - 1) * 7, 1) = M(i)
TargetRange(k + (i - 1) * 7, 2) = sSc(k)
TargetRange(k + (i - 1) * 7, 3) = Tar(k)
TargetRange(k + (i - 1) * 7, 4) = sSc(k) * Tar(k)
End If
Next
Next
End Sub
====================================================
Bruno