Come faccio a calcolare un delta temporale nei miei fogli di calcolo di Google?


73

Ho un foglio di lavoro di Google che assomiglia più o meno a questo:

 Date        | Start time  | End time    | Minutes
 ------------+-------------+-------------+-----------
 1/11/2012   | 11:39       | 12:41       | ?!
 ------------+-------------+-------------+-----------
             |             |             | 

In questo momento se inserisco manualmente il numero di minuti tra le due volte del giorno. Esiste un modo semplice per calcolare un delta temporale e fare in modo che il foglio di calcolo lo faccia per me?

Risposte:


65

Google ha aggiunto un nuovo formato numerico chiamato Durata. Impostare i campi iniziale e finale su Format -> Number -> Timee il campo di calcolo suFormat -> Number -> Duration

Una volta fatto, puoi sottrarre i campi per ottenere la differenza, come notato da Stefano Palazzo nella sua risposta.


51

Sì, se i campi dell'ora sono formattati correttamente (fai clic su Formato → Numero → Ora ) puoi semplicemente aggiungere e sottrarre i tempi:

=C2-B2

o

21:58:00 - 20:44:00 = 1:14:00

Questo ti darà il delta del tempo come HH:MM:SS. E se si desidera calcolare il numero di minuti, è possibile utilizzare la Hour(), Minute()e Second()funzioni sul quel campo:

=(Hour(D2) * 60) + Minute(D2) + (Second(D2) / 60)

Ovviamente, se ci sono secondi saltanti, il fuso orario cambia o se un evento richiede più di 24 ore, dovrai comunque regolare i risultati manualmente.

Un avvertimento

Se un evento si estende oltre la mezzanotte, diciamo dalle 23:50 alle 00:10, questo comparirà come un momento negativo!

Per poter gestire 'correttamente' questi eventi, puoi mettere "24:10" o dividere l'evento in due.

Un modo migliore

Anche se è un po 'più difficile inserire dati, il modo più affidabile per farlo è contrassegnare il campo beinning e end come "Date Time" e il campo delta come "Hours", che sarà simile a questo:

Beginning          End                  Delta
8/1/2013 0:00:00   8/2/2013 12:30:00    36:30:00

Questo non sembra funzionare più. Penso che devi scegliere Formato> Numero> Ore (rispetto al tempo). Ottengo un numero decimale molto strano quando provo a sottrarre la differenza oraria semplice.
Elijah Lynn il

@ElijahLynn questo numero dispari è il numero di giorni. Moltiplicare i tempi 24 e 60 ti darà il numero di minuti,
Jacob Jan Tuinstra il

1
Se qualcuno vuole ottenere la data e l'ora in una cella, può unire solo per aggiunta: A1 + B1.
wzbozon,

9

Se aggiungi la seguente formula D2, i minuti vengono calcolati automaticamente:

Formula

=ARRAYFORMULA(IF(ISBLANK(B2:B)=FALSE,((C2:C-B2:B)*24*60),""))

spiegato

La differenza tra i tempi, secondo il formato decimale, è espressa in giorni. Pertanto moltiplicando i tempi 24 volte 60 si ottengono minuti

osservazione

C'è un prerequisito: la colonna D deve essere formata come "normale".

Esempio

Vedi il file di esempio che ho creato: Delta Time


7

Per una soluzione più solida, utilizziamo una funzione personalizzata.

1. Aggiunta della funzione personalizzata

Utilizzando l'editor di script (segui le istruzioni in https://developers.google.com/apps-script/execution_custom_functions ) - scrive:

function toEpoch (indate) {
  return indate.getTime();
}

2. Aggiungi formulare

Quindi nella cella scrive:

=(toEpoch(C2)-toEpoch(B2)) / 60*1000

Che converte la differenza in Epoch millisecondi in minuti.


... l'ho fatto, per essere sicuro di convertirlo e convertirlo già in secondi (da millisecondi): function toEpoch (data) { return new Date(data) / 1000; }
user1278519

7

Ho fatto molta sperimentazione. Questo è il modo più semplice per calcolare un delta temporale in Fogli di lavoro Google. Formatta la cella contenente la formula in questo modo:

Formattazione della cella formula

Formato> Numero> Altri formati> Altri formati di data e ora , elimina "secondo" e :. Quindi, formattare l'ora di fine e iniziare a cellule momento come questo: h:mm am/pm.

Formattazione della cella temporale di input

Utilizzare la formula =abs(end time - start time). Questo ti dà un valore assoluto, quindi non ci saranno valori di tempo negativi.



4

Se si desidera misurare il delta del tempo in giorni, utilizzare

=DAYS(end_date, start_date)

È vero. Tuttavia, sono venuto qui cercando di trovare la differenza in pochi giorni (e sono tornato più tardi per dare una risposta quando l'ho trovata altrove), il che mi porta a supporre che la mia risposta potrebbe essere di beneficio agli altri nella mia stessa situazione. Dato che è un argomento così correlato, non pensavo che valesse la pena aprire una nuova domanda, soprattutto perché il titolo non specifica l'unità di misura. Ma era solo il mio ragionamento. Cosa ne pensi?
e18r,

@pnuts Se trovi una risposta utile ma leggermente fuori dallo scopo della domanda, puoi anche modificare la domanda (in questo caso per dire minuti o ore o giorni o altro). Sono solo un ragazzo, la domanda ha 100.000 visualizzazioni.
Stefano Palazzo,

3

Puoi anche provare TIMEVALUE().

Nel caso precedente, la soluzione sarebbe:

(TIMEVALUE(End Time) - TIMEVALUE(Start Time))*24*60 ti darà la differenza di tempo in MINUTI.


Benvenuto Sujeeth! Buona risposta, ho aggiunto un po 'di formattazione per facilitare la lettura.
Vidar S. Ramdal,

1

In Fogli Google, ho usato la formula come di seguito

=Round((hour(A2-A1)*60 + minute(A2-A1))/60,2)

per darmi la differenza in ore decimali.


0

Io uso questa formula:

=HOUR(C2-B2)*60+MINUTE(C2-B2)

poi

Format -> Number -> More Formats -> Custom number format -> #,##0

-1

=(C2-B1)*1440 quindi imposta il formato su "Testo normale".


-1

Per la mia applicazione personale:

StartTime (columnA)| EndTime(Column B)| Date (Column C)

Questo ha funzionato per me:
=if(B4-A4<0,(B4+C4+1)-(A4+C4),B4-A4);formatta la cella come Formato \ Tempo \ Durata.

Per le condizioni reali: formula ispirata ai commenti di Stefano Palazzo.


ps date è associata a StartTime anche se StopTime è passato al giorno successivo, motivo per cui ho aggiunto +1 alla data per EndTime. Se il tuo EndTime passa di oltre un giorno, +1 ovviamente non funzionerà più.
Bob K,

-2

Concordo sul fatto che il delta temporale è espresso in giorni, quindi per tornare a dire minuti dovresti moltiplicare la differenza per 1440, che è 24 x 60.

Ho avuto questo problema oggi e ho pensato di menzionare l'altro semplice metodo per ottenere l'ora corrente in un foglio di calcolo di Google Documenti è quello di entrare CONTROL:nella cella. Puoi usarlo sia per le celle di inizio che di fine.

Se devi inserire la data corrente in una cella, questo è raggiunto da CONTROL;


1
Grazie per aver condiviso, ma non è una risposta alla domanda. Leggi di più su questo tour nel nostro centro assistenza . Benvenuto in Applicazioni Web !!
Jacob Jan Tuinstra,
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.