Conversione delle ore decimali in ore: minuti: secondi


0

Devo convertire un numero di ore decimali (esempio: 4,96) e farlo leggere 4:57:36 (4 ore, 57 minuti, 36 secondi) in un foglio di calcolo di Excel 2003. Ho già questa formula, ma non mostra i secondi. Restituisce un risultato di 4:58.

Ecco la formula:

=TRUNC(A1)&":"&REPT("0",2-LEN(ROUND(60*(A1-TRUNC(A1)),0)))&ROUND(60*(A1-TRUNC(A1)),0)

Cosa devo cambiare per mostrare anche i secondi?

Risposte:


6

Non puoi semplicemente dividere per 24 e personalizzare il risultato della cella come [h]: mm: ss?

=A1/24

enter image description here


Sì, i valori temporali in Excel sono memorizzati internamente come giorni e frazioni di un giorno.
Daniel R Hicks

È utile, ma il lettore dovrebbe notare che questo è un valore temporale in una data specifica. Non un valore temporale assoluto.
Ahmed Khalaf

1

provare

=(INT(A1)/1440+MOD(A1,1)/1440)*60

enter image description here

Modifica: se si insiste su un output di testo (con tutte le implicazioni negative che porta), basta avvolgere la formula in una funzione Text ().

=TEXT((INT(A1)/1440+MOD(A1,1)/1440)*60,"hh:mm:ss")

Penso che la tua soluzione sia molto più pulita della mia (che si basa sull'esempio TRUNC H: M) ma ha bisogno che la cella sia formattata come datetime, altrimenti mostra un decimale.
Dave C

1
Se il tipo di dati è data / ora, dovrebbe essere memorizzato come un numero e formattato di conseguenza. Memorizzare data / ora come testo che assomiglia a data / ora rende le cose più complicate, ad esempio se si desidera eseguire calcoli sui valori (differenza tra due tempi, ecc.). Il clic in più per applicare un formato di cella diverso dal testo vale la pena a lungo termine. Ho aggiunto una versione di testo qui sopra, però.
teylyn

Grazie mille! Funziona alla grande = (INT (A1) / 1440 + MOD (A1,1) / 1440) * 60 Tutto ciò che faccio è formattare la cella per visualizzare hh: mm: ss. Grazie ancora!!
Mike Kam

@teylyn Sono assolutamente d'accordo sui campi / dovrebbe / essere formattato correttamente. E la tua soluzione (data / ora o testo) è molto più pulita e più efficiente.
Dave C

0

Supponendo che H: M funzioni correttamente, il modo più semplice è convertire l'ora decimale in secondi e usare MOD per controllare la differenza con la divisione per 60.

Quindi la formula sarebbe:

=TRUNC(A1)&":"&REPT("0",2-LEN(ROUND(60*(A1-TRUNC(A1)),0)))&ROUND(60*(A1-TRUNC(A1)),0)&":"&REPT("0",2-LEN(ROUND(MOD(A1*60*60,60),0)))&ROUND(MOD(A1*60*60,60),0)

Non penso che funzioni, Dave - per l'esempio dato la formula restituisce 4:58:36, cioè un minuto troppo alto - lo fa ogni volta che la parte dei secondi è & gt; 30 - puoi farlo molto più semplicemente - vedi la mia risposta
barry houdini

0

puoi usare la seguente formula,

se si desidera convertire il numero decimale (A2) 10.58

=TEXT(A2/24,"hh:mm:ss")

la risposta sarà 10:34:48

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.