imposta la cella al formato personalizzato
h.mm.ss ~ gg
e ricorda che il numero di fotogrammi è espresso
dal giorno
quindi devi digitare
24/1/1900 12.45.32 per visualizzare
12.45.32 ~ 24
o, meglio, se
nella cella A1 hai l'ora (12.45.32) e
nella cella A2 hai i fotogrammi (24)
comporrai in A3, nella cella formattata come indicato,
=GIORNO(A2)+A1
non è propriamente una soluzione, ma funziona
.f
http://www.prodomosua.it
> imposta la cella al formato personalizzato
> h.mm.ss ~ gg
> e ricorda che il numero di fotogrammi è espresso
> dal giorno
> quindi devi digitare
> 24/1/1900 12.45.32 per visualizzare
> 12.45.32 ~ 24
> o, meglio, se
> nella cella A1 hai l'ora (12.45.32) e
> nella cella A2 hai i fotogrammi (24)
> comporrai in A3, nella cella formattata come indicato,
> =GIORNO(A2)+A1
> non è propriamente una soluzione, ma funziona
Grazie Fernando,
la tua soluzione è molto buona ma poi la casella secondi come avanza di
unità quando la casella fotogramma arriva a 25?
In sostanza mi servirebbe formattare le celle in modo da potervi inserire
dei dati (appunto hh:mm:ss:ff) e successivamente fare dei totali o dei
parziali, quindi ad esempio sommare le celle interessate e fare in modo che
excel consideri l'unità ff in 24esimi e di conseguenta collegarla all'unità
secondi
cella A1 "02:23:42:13"
cella A2 "01:12:32:15"
cella A3=A1+A2 "03:36:15:03"
Grazie ancora Giulio
ok.
vai nella finestra vbe con Alt+F11
da menu: inserisci > modulo
in Modulo1 incolla
Public Function stime(mys As Variant) As Variant
Dim myx As String
Dim myv As Variant
Dim i As Variant, j as Integer
Dim four(0 To 3) As Variant
For Each i In mys
myx = myx & "." & i
Next
myv = Split(myx, ".")
ReDim Preserve myv(0 To UBound(myv))
For j = 0 To UBound(myv) - 1
four(j Mod 4) = four(j Mod 4) + CInt(myv(j + 1))
Next
four(2) = four(2) + Int(four(3) / 25)
four(3) = four(3) Mod 25
four(1) = four(1) + Int(four(2) / 60)
four(2) = four(2) Mod 60
four(0) = four(0) + Int(four(1) / 60)
four(1) = four(1) Mod 60
stime = ntime(four)
End Function
Public Function dtime(mytime As Date, myphoto As Integer) As String
dtime = Format(mytime, "hh") & "." & Format(mytime, "mm") & "." & Format(mytime, "ss") & "." & Format(myphoto, "00")
End Function
Private Function ntime(four() As Variant) As String
ntime = Format(four(0), "00") & "." & Format(four(1), "00") & "." & Format(four(2), "00") & "." & Format(four(3), "00")
End Function
ritorna nel foglio
in A1 02:23:42, in B1 13, in C1 =dtime(A1;B1) ti apparirà come 02.23.42.13
in A2 01:12:32, in B2 15, in C2 =dtime(A2;B2) ti apparirà come 01.12.32.15
in B3 =stime(B1;B2) ti apparirà come 03.36.15.03
mi paiono funzioni molto interessanti.
si possono sicuramente migliorare,
in particolare l'input che, se vuoi da tastiera,
dovrai scrivere così =dtime(ORARIO(2;23;42);13) *
ci terrei pertanto ad avere un feedback da te o da
chi utilizza questa struttura delle function per impostare
altri formati finto-numerico personalizzati.
.f
fernando cinquegrani
Microsoft MVP
http://www.prodomosua.it
* ad esempio si potrebbe dichiarare in ntime il vettore four (1 to 4)
invece di (0 to 3) e proporre un input matriciale
per chi è interessato al modello faccio un esempio più semplice
CALCOLO IN POTENZA
in A1 25
se in B1 scrivo =RAD(A1) visualizzo 5,00²
se in C1 scrivo =SRAD(B1) visualizzo ancora 5,00²
quindi RAD accetta un parametro numerico [es.: =RAD(25)]
mentre SRAD accetta un parametro tipo stringa [es.: =SRAD("5²")]
[² è Alt+0178]
ma SRAD accetta anche un vettore di valori
quindi se ho in
A B
1 =RAD(A1) visualizzerà 1,00²
2 =RAD(A2) visualizzerà 1,41²
3 =RAD(A3) visualizzerà 1,73²
4 =RAD(A4) visualizzerà 2,00²
potrò scrivere in B5
=SRAD(A1:A4) per visualizzare 3,16²
ossia =DERAD(B5) pari a 9,99
ossia alla somma di A1:A4 considerata l'approssimazione del calcolo.
[ovviamente quanto detto non si applica a chi a questo punto
pensa 'ma non era più facile scrivere =SOMMA(A1:A4)!' :-)]
queste le funzioni:
Public Function srad(mys As Variant) As Variant
Dim myx As String
Dim myv As Variant
Dim i As Variant, j As Integer
Dim four As Double
For Each i In mys
myx = myx & i
Next
myv = Split(myx, "²")
ReDim Preserve myv(1 To UBound(myv))
For j = 1 To UBound(myv)
four = four + CDbl(myv(j)) ^ 2
Next
srad = rad(four)
End Function
Public Function rad(quad As Double) As String
rad = Format(Round(quad ^ (0.5), 2), "#,##0.00²")
End Function
Public Function derad(r As String) As Double
derad = CDbl(Left(r, Len(r) - 1)) * CDbl(Left(r, Len(r) - 1))
End Function
> in A1 02:23:42, in B1 13, in C1 =dtime(A1;B1) ti apparirà come
02.23.42.13
> in A2 01:12:32, in B2 15, in C2 =dtime(A2;B2) ti apparirà come
01.12.32.15
ok fatto e visualizza come da tuo esempio.....
> in B3 =stime(B1;B2) ti apparirà come 03.36.15.03
fatto ma visualizza VALORE#........cosa ho "wrong"ato?
Sei stato super gentile, mi hai fatto un enorme cortesia mi piacerebbe
approfondire la questione visto che hai dato speranza alle mie idee
OVVIAMENTE a tempo perso senza che ti disturbi.
Sicuro che il risultato venga visualizzato vorrei creare un foglio per la
gestione dei tempi di spezzoni di filmati video per ottimizzarne il
posizionamento nei miei progetti e avere precisione durante la stilatura
della scaletta o meglio "play-list"
Avrei quindi una colonna per il nome della clip, una colonna per il Timecode
di ingresso, una per quello di uscita, una per la durata della clip
(TCin-TCout), etc..etc. ovviamente per il resto bisogna moderare la
fantasia!!!!!
Ti ringrazio ancora e se non avessi tempo non preoccuparti sei già stato
oltremodo disponibile.
Un saluto Giulio
risolviamo prima questo problema
guarda l'esempio nel file
http://www.prodomosua.it/zips/trasformazioni.xls
foglio fotogrammi.
rispondi sě alla richiesta di attivazione delle macro
.f
http://www.prodomosua.it
> risolviamo prima questo problema
> guarda l'esempio nel file
> http://www.prodomosua.it/zips/trasformazioni.xls
Grazie Fernando,
ho scaricato il file e ho potuto vedere la meraviglia, ora purtroppo ho
pochissimo tempo epotro frugarci solo questa sera sul tardi.
Appena ci metto mano ti comunico cosa non ha funzionato nel precedente
tentativo.....sono curioso.
A presto ciao e buon lavoro
Giulio