Immissione dei dati temporali in Excel nel formato mm: ss (senza lo 0 iniziale: per le ore)


16

Voglio inserire i dati temporali nel foglio Excel nel formato mm: ss. Il problema è che, sebbene il formato della cella sia mm: ss, se inserisco i dati in questo modo:

12:33 il valore effettivo memorizzato è di 12 ore e 33 min. se voglio 12 minuti e 33 secondi, devo inserire 0:12:33

C'è un modo per far accettare la cella 12:33 come mm: ss?


2
Per visualizzare minuti più grandi di 59, formatta la cella come [MM]:SS. Come: 02:10:45verrebbe quindi visualizzato come 130:45invece. Ma a quanto pare non funziona per gli input.
Arjan,

Risposte:


6

L'ora viene inserita universalmente in Ore: Minuti: formato secondi, quindi non è possibile modificare questo formato voce. Ovviamente puoi cambiare il formato di visualizzazione, ma sfortunatamente dovrai rispettare il formato di ingresso.


sembra che non ci sia soluzione al mio problema, poiché anche l'uso degli script non aiuta, poiché la formattazione maschera ciò che l'utente digita effettivamente.
Dani,

Quindi è il formato universale hh:mm:sso h:mm:ss? @Steve
Shayan

Direi che è h:mm:ss@Shayan
Steve

14

Come ha risposto Steve , Excel interpreta l'input dell'utente 12:33come 12h33m. Non è possibile modificare questo comportamento di come Excel accetta l'input dell'utente.

Come hai menzionato nel commento, gli utenti 12:33inseriranno ma significando 12m33s.

Ecco una soluzione alternativa per ottenere il valore corretto per il calcolo.

  1. Formatta la cella A1 (input dell'utente, ad es. 12:33) Come[h]:mm
  2. Inserisci la formula =A1/60nella cella B1
  3. Formatta la cella B1 come [m]:ss

Il valore visualizzato dovrebbe essere lo stesso in A1 e B1. Tuttavia, B1 sarà il valore effettivo desiderato .


2
Bello. Oppure: formatta l'input come valore stringa / testo e usa qualcosa di simile TIMEVALUEper convertirlo .
Arjan,

1
I valori visualizzati in A1 e B1 non sono gli stessi se mm> 23
Alaa M.

1
@AlaaM. grazie per la tua scoperta. la risposta viene aggiornata per risolvere il problema. usa [h]e[m]
wilson il

3

C'è una soluzione! Inserisci questo codice VBA nel modulo del foglio di lavoro, ovvero:

  1. Apri l'editor di Visual Basic ( Alt- F11)
  2. Nella treeview in alto a sinistra, fai doppio clic sul foglio in cui desideri inserire i tuoi orari
  3. Nel pannello del codice centrale, posizionare il codice seguente.
  4. Chiudi VBE

Usa questo codice:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
    Application.EnableEvents = False
    Target.Value = Target.Value / 60
    Target.NumberFormat = "mm:ss"
    Application.EnableEvents = True
End Sub

Nel caso in cui tu abbia già formattato l'intervallo in cui stai inserendo i dati, usa questa riga invece come prima riga:

If Target.Value < 0 Or Target.Value > 1 Then Exit Sub

Nota che questo cambierà il valore e il formato - ogni volta che inserisci un orario - o qualcosa tra 0 e 1! Se vuoi limitarlo a una determinata colonna, aggiungi questa riga:

If Target.Column <> 3 Then Exit Sub

o questa linea per limitarlo a un certo intervallo

If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub

2

Il modo più semplice per allenare le ore completate

Formatta la cella (A1) hh:mm

Inserisci come normale ( 07:22)

Formatta la cella (B1) hh:mm

Inserisci come normale ( 16:00)

Formatta la cella (C1) h:mm

Immettere tutti i dati nella cella (C1) come segue: =(A1+B1)/60


1

Evidenzia le celle / colonne che desideri come Durata, fai clic con il pulsante destro del mouse su "Formatta celle". Vai su "Personalizzato" e cerca "h: mm" se vuoi inserire la durata nel formato ora e minuti. Se si desidera includere anche i secondi, fare clic su "h: mm: ss". Dopo puoi anche aggiungere la durata totale.

Spero che sia di aiuto.


1

Trovo che sia meglio inserire i minuti nella colonna A, quindi i secondi nella colonna B. Quindi puoi sommare le colonne. Tutto come un normale formato numerico.

Successivamente converti i secondi> 60 in minuti dividendo la somma nella colonna B per 60 e aggiungi l'int alla somma della colonna A e lascia il resto MOD nella colonna B.

In alternativa puoi avere col C come numero decimale avendo una formula = (A1+(B1/60))darà minuti decimali. Nella parte inferiore della colonna C fare una somma, quindi applicare una formula per convertire la parte decimale in secondi, come segue dire C22dove si trova la somma quindi C23inserire la formula =MOD(C22,1)*60.

Ora A23inserisci la formula =INT(C22)per mostrare i minuti totali inclusi quelli della somma in C22.


1

Ho avuto lo stesso problema ed ecco la soluzione che ho trovato: inserisci la formula usando la TIMEfunzione, che crea una matrice temporale =TIME(H,M,S)e formattala come preferisci. Devi ancora inserire 0 ore ogni volta perché la matematica, ma questo rende il tutto infinitamente più praticabile.


0

Soluzione sopra. Quando usi il h:mmformato, Excel non ti lascerà andare oltre le 23. Aggiungi parentesi alle ore nel tuo formato [h]:mme sei libero di andare oltre le 23.

Per calcolare il valore in secondi, imposta la cella sul formato numerico "generale" e digita la seguente formula

=HOUR(A1)*60+MINUTE(A1)
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.