Convertire valori numerici in orari

Samantha ha molti fogli di lavoro che contengono orari. Il problema è che gli orari sono nel formato “1300” invece del formato “13:00”. Pertanto, Excel li vede come normali valori numerici invece di riconoscerli come orari. Samantha vuole che vengano convertiti in valori temporali effettivi.

Esistono diversi modi per affrontare questo compito. Un modo è usare la funzione ORARIO per convertire il valore in un orario, come mostrato qui:

=ORARIO(SINISTRA(A1;2);DESTRA(A1;2);)

 

Questa formula presuppone che l’ora nella cella A1 contenga sempre quattro cifre. In caso contrario (ad esempio, nel caso di 427 anziché 0427), la formula deve essere leggermente modificata:

=ORARIO(SINISTRA(A1;LUNGHEZZA(A1)-2);DESTRA(A1;2);)

 

La formula fondamentalmente estrae la cifra (o le cifre) più a sinistra e le utilizza per l’argomento delle ore della funzione ORARIO, quindi utilizza le due cifre più a destra per l’argomento dei minuti. ORARIO restituisce un valore di tempo effettivo, formattato come tale nella cella.

Un approccio simile può essere adottato utilizzando la funzione ORARIO.VALORE:

=ORARIO.VALORE(RIMPIAZZA(A1;LUNGHEZZA(A1)-1;0;":"))

 

Questa formula utilizza RIMPIAZZA per inserire i due punti nella posizione corretta, quindi ORARIO.VALORE converte il risultato in un valore temporale. Dovrai formattare la cella risultante in modo che visualizzi l’ora come desideri.

Un’altra variante dell’approccio basato su formule consiste nell’utilizzare la funzione TESTO, in questo modo:

=--TESTO(A1;"00\:00")

 

Ciò restituisce un valore orario effettivo, che sarà quindi necessario formattare correttamente per essere visualizzato come orario.

Un altro approccio consiste nel fare semplicemente i calcoli sull’ora originale per convertirla in un valore temporale utilizzato da Excel. Questo è facile una volta che ti rendi conto che i valori temporali non sono altro che una parte frazionaria di un giorno. Pertanto, un valore temporale è un numero compreso tra 0 e 1, ottenuto dividendo le ore per 24 (le ore di un giorno) e i minuti per 1440 (i minuti di un giorno). Ecco una formula che fa proprio questo:

=INT(A1/100)/24+RESTO(A1;100)/1440

 

Questo restituisce la parte oraria del valore originale, che viene poi divisa per 24. La parte dei minuti (la parte rimasta dal valore originale) viene quindi divisa per 1440 e aggiunta alla prima parte. È quindi possibile formattare il risultato come un’ora e funziona perfettamente.

Tutte le formule descritte finora utilizzano una nuova colonna per eseguire le conversioni. Questo è utile, ma potresti voler convertire effettivamente il valore sul posto, senza la necessità di una formula. È qui che una macro può tornare utile. La seguente macro convertirà qualsiasi cella selezionata in valori temporali e formatterà le celle in modo appropriato:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

La macro utilizza una divisione intera per determinare il numero di ore (iHours) e inserisce il resto in iMins. Questo viene quindi inserito in un valore orario e riposizionato nella cella, che viene quindi formattata come ora. È possibile modificare il formato della cella, se lo si desidera, in uno qualsiasi degli altri formati di ora supportati da Excel.

 

 

Tags: , , , , , , , , , , , , , , , ,

Ti è stato utile?