Newsgroup: it.hobby.fai-da-te
Titolo: formula excel: è possibile?

salve,
   mi servirebbe sapere se esiste un modo per selezionare solo i primi
4 numeri di una cella in excel e gli ultimi 4.
la cella è fatta più o meno così
09:00 – 11:30
mi servirebbe trovare una formula o un modo per calcolare il numero di
ore (risultato di questa cella: 2h30' con l'acca tra ore e minuti)
grazie.
S.



Eeeh... =(VALORE(STRINGA.ESTRAI(A1;9;2))+VALORE(STRINGA.ESTRAI
(A1;12;2))/60)-(VALORE(STRINGA.ESTRAI(A1;1;2))+VALORE(STRINGA.ESTRAI
(A1;4;2))/60)/24
dovrebbe darti un valore che, formattato come ora, corrisponde a 2:30
Applichi il fomato numerico hh"h"mm"'" e sei a posto.
Cme funziona... stringa.estrai e valore lo capisci dall'help di excel,
il risultato si divide per 24 perche' nel formato data/ora gli orari
sono espressi come il numero di giorni trascorsi dalla mezzanotte del
31/12/1899, la parte intera sono i giorni, la parte decimale l'ora
espressa come frazione di giorno.
(in pratica, 40144,7513 e' il 27/11/2009 alle 18:02, perche' sono
passati 40144 giorni da quel 31 dicembre e sono passati 0,7513 giorni
dalla mezzanotte)
cia'
Max
cia'
Max

dalla mezzanotte)
Complimenti, ma ammettilo usi droghe particolari... ;) 


non funziona....

 ha scritto nel messaggio 
news:961708ae-26b0-48ce...@z41g2000yqz.googlegroups.com...

che errore ti da ?
usi excel in italiano?  o inglese? o uno "tarocco" (free..)?
alberto 

 alberto
in realtà è l'excel incluso nella suite online di google....
l'ho tradotto (ci sono gli stessi comandi....)


mi è stata data anche questa risposta...a voi funziona?
Ciao
Ipotizzando in A1 il tuo dato, in B1 scrivi:
=TESTO(STRINGA.ESTRAI(A1;9;14);"@")-TESTO(STRINGA.ESTRAI(A1;1;5);"@")
e applica a B1 il seguente formato personalizzato
h"h"mm"'"
Tutto ciò nell'ipotesi che il secondo orario sia sempre maggiore del
primo.
La formula prevede che tra il primo orario e il secondo ci sia uno
spazio, la
lineetta ed un altro spazio. Se non fosse così puoi adattare la
formula
Buona serata

S.
La tua � una domanda doppia, attenzione.
A te servirebbe estrarre i valori da una cella ( i primi 4 e gli ultimi 4)? 
Oppure ottenere il calcolo della differenza delle ore formattandolo come hai 
chiesto? Sono 2 cose diverse. 

 chiesto? Sono 2 cose diverse.
solo il calcolo della differenza oraria
possibilmente inserendo una "h" tra ore e minuti e un " ' " dopo i
minuti
es. 1h35'
grazie.
:S

:S
Ok. O lo fai tu o lo faccio io. Riposta la domanda su 
microsoft.public.it.office.excel  che ti risponderanno in 2 min primi.
Li mi hanno risolto problemi veramente tosti, sono eccezionali.
Ciao 

 wrote:

Il primo metodo che mi viene in mente sembra complesso, ma lo è solo
nella scrittura della formula. Copia e incolla questa, ipotizzando che
il dato input sia nella cella A1, altrimenti sostituisci A1 con la
cella effettivamente puntata:
=TESTO(INT((STRINGA.ESTRAI(A1;7;2)*60+DESTRA(A1;2)-SINISTRA(A1;2)*60-
STRINGA.ESTRAI(A1;4;2))/60);"00")&"h"&TESTO(RESTO((STRINGA.ESTRAI
(A1;7;2)*60+DESTRA(A1;2)-SINISTRA(A1;2)*60-STRINGA.ESTRAI(A1;4;2));
60);"00")&"'"
Questa funziona a due condizioni:
a) la seconda ora è sempre maggiore della prima; se così non è,
diccelo perchè va inserito un controllo
b) che la cella input sia scritta sempre nel formato hh:mm-hh:mm.
Cioè: due caratteri per l'ora iniziale; due punti; due caratteri per i
minuti iniziali; trattino [SENZA SPAZI NE' PRIMA NE' DOPO]; due
caratteri per l'ora finale; due punti: due caratteri per i minuti
finali.
Se invece la cella input prevede uno spazio prima e dopo il trattino
(hh:mm - hh:mm), usa questa:
=TESTO(INT((STRINGA.ESTRAI(A1;9;2)*60+DESTRA(A1;2)-SINISTRA(A1;2)*60-
STRINGA.ESTRAI(A1;4;2))/60);"00")&"h"&TESTO(RESTO((STRINGA.ESTRAI
(A1;9;2)*60+DESTRA(A1;2)-SINISTRA(A1;2)*60-STRINGA.ESTRAI(A1;4;2));
60);"00")&"'"
Non è un metodo molto pulito, ma funziona sicuramente. Sarebbe più
pulito lavorare sulle funzioni di orario e sulla creazione di formati
numerici personalizzati, ma è complicato da spiegare!
Vittorio

 Applichi il fomato numerico hh"h"mm"'" e sei a posto.
Ok, però deve creare un formato personalizzato e non mi sembra sia
possibile inserire una stringa "h" in mezzo al formato ora. O
sbaglio???
Vittorio


nel mio foglio di calcolo non funziona anche se sostituisco i comandi
con quelli giusti
potreste controllare?
ecco la lista dei comandi.
http://docs.google.com/support/bin/answer.py?answer=82712
Grazie.
S.

 ecco la lista dei comandi.
http://docs.google.com/support/bin/answer.py?answer=82712
Questa funziona, l'ho appena provata. Rimangono due vincoli: la
seconda ora deve essere maggiore della prima; ci deve essere uno
spazio prima e dopo il trattino. Se una di queste due condizioni non
sussiste, la formula va cambiata.
=text(int((mid(A8;9;2)*60+right(A8;2)-left(A8;2)*60-mid(A8;4;2))/
60);"00")&"h"&text(mod((mid(A8;9;2)*60+right(A8;2)-left(A8;2)*60-mid
(A8;4;2));60);"00")&"'"
Vittorio

 sbaglio???
Se e' tra virgolette si puo' inserire qualunque cosa, viene
interpretato come stringa.
cia'
Max


che dire....funziona alla grande!!!
ora ho solo due dettagli da sistemare...
a) questa formula la devo utilizzare della colonna E e gli orari da
processare si trovano nella colonna C...ovviamente parliamo della
stessa riga....quindi la formula che incollo in E1 dovrà processare il
dato C1, ecc....
come posso fare?
b) ad una certa riga mi servirebbe sommare i parziali delle ore
calcolate con la formuletta....ho provato con il classico E11=sum
(E1:E10) ma senza risultato...
come posso fare?
grazie in anticipo e come avrete potuto constatare sono veramente una
schiappa in excel...

 come posso fare?
L'idea e' giusta, ma con text() converti quel valore in testo e excel
non lo sa piu' sommare.
Se vuoi sommare i parziali, l'unica e' lasciare i risultati in forma
di numero.
Riprendo la mia formula, riveduta e corretta:
=(VAL(MID(A8;9;2))+VAL(MID(A8;12;2))/60-VAL(MID(A8;1;2))+VAL(MID
(A8;4;2))/60)/24
E poi farli apparire come vuoi tu inserendo un formato numerico
personalizzato: [h]"h"mm"'"
ciao
Max


ciao,
  questa non funziona


come errore mi da
val: funzione non riconosciuta

Piu' raffinato ancora:
=ORARIO.VALORE(STRINGA.ESTRAI(C1;RICERCA("-";C1)+1;99))-ORARIO.VALORE
(SINISTRA(C1;RICERCA("-";C1)-1))
(non so nell'excel madrelingua che funzione e' orario.valore, penso
sia timevalue)
Questo funziona con qualunque dato del tipo ora inizio-ora fine, con
spazi, senza spazi, con gli orari a 12 ore o a 24.
Per perfezionae il tutto formatti la cella del risultato col formato
numerico
[<0,0416][mm]';[>0,0415][h]"h"mm'
cia'
Max

 wrote:

questa mi piace, ma non funziona bene
in questo caso
10:30 – 11:45
il risultato fornito è : 0h15'
potresti correggerla?
grazie.
S.

 val: funzione non riconosciuta
Non ho capito ancora se allora hai excel in italiano o in lingua
originale...
se e' in italiano devi usare le funzioni italiane:
=((VALORE(STRINGA.ESTRAI(A8;9;2))+VALORE(STRINGA.ESTRAI(A8;12;2))/60)-
(VALORE(STRINGA.ESTRAI(A8;1;2))+VALORE(STRINGA.ESTRAI(A8;4;2))/60))/
24
cia'
Max


non ho excel ma uso il foglio di calcolo di google che è molto simile
ad excel inglese


 ad excel inglese
Aaaaah ecco, adesso mi quaglia tutto.
T'ho messo in condivisione un foglio, da' un po' un'occhiata.
Purtroppo tenere separate le ore decimali dalle ore rappresentate come
h:mm è praticamente inevitabile, google docs manca di alcune delle
funzioni dei fratelli maggiori, ma puoi sempre nascondere la colonna.
ciao
Max