Jak obliczyć różnicę czasu w arkuszach kalkulacyjnych Google?

73

Mam arkusz kalkulacyjny Google, który wygląda mniej więcej tak:

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

W tej chwili, jeśli ręcznie podaję liczbę minut między dwoma porami dnia. Czy istnieje prosty sposób, aby obliczyć różnicę czasu i poprosić o to arkusz kalkulacyjny?

Stefano Palazzo
źródło

Odpowiedzi:

65

Google dodał nowy format liczb o nazwie Czas trwania. Ustaw pola początkowe i końcowe Format -> Number -> Timeoraz pole obliczeniowe naFormat -> Number -> Duration

Gdy to zrobisz, możesz odjąć pola, aby uzyskać różnicę, jak zauważył Stefano Palazzo w swojej odpowiedzi.

Jacob Hulse
źródło
51

Tak, jeśli twoje pola czasu są poprawnie sformatowane (kliknij Format → Liczba → Czas ), możesz po prostu dodawać i odejmować czasy:

=C2-B2

lub

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

To da ci deltę czasu jako HH:MM:SS. A jeśli chcesz obliczyć liczbę minut, można użyć Hour(), Minute()i Second()działa na tym polu:

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

Oczywiście, jeśli występują sekundy przestępne, zmiany strefy czasowej lub wydarzenie trwa dłużej niż 24 godziny, nadal będziesz musiał ręcznie dostosować wyniki.

Ostrzeżenie

Jeśli jedno wydarzenie rozciąga się po północy, powiedzmy od 23:50 do 00:10, pojawi się to jako czas ujemny!

Aby odnieść się do tych zdarzeń „poprawnie”, możesz albo wpisać „24:10”, albo podzielić wydarzenie na dwa.

Lepszy sposób

Mimo że wprowadzanie danych jest nieco trudniejsze, najbardziej niezawodnym sposobem jest oznaczenie pola beinning i end jako „Date Time”, a pola delta jako „Hours”, które będą wyglądały następująco:

Beginning          End                  Delta
8/1/2013 0:00:00   8/2/2013 12:30:00    36:30:00
Stefano Palazzo
źródło
To wydaje się już nie działać. Myślę, że musisz wybrać Format> Liczba> Godziny (w funkcji czasu). Otrzymuję bardzo dziwną liczbę dziesiętną, gdy próbuję odjąć prostą różnicę godzinową.
Elijah Lynn
@ElijahLynn ta liczba nieparzysta to liczba dni. Pomnożenie razy 24 i 60 da ci liczbę minut
Jacob Jan Tuinstra
1
Jeśli ktoś chce uzyskać datę i godzinę w jednej komórce, może połączyć się tylko przez dodanie: A1 + B1.
wzbozon
9

Jeśli dodasz następującą formułę D2, minuty są obliczane automatycznie:

Formuła

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

Wyjaśniono

Różnica między czasami według formatu dziesiętnego wyrażana jest w dniach. Dlatego pomnożenie razy 24 razy 60 da minuty

Uwaga

Jest jeden warunek: kolumna D musi być sformatowana jako „normalna”.

Przykład

Zobacz przykładowy plik, który utworzyłem: Delta Time

Jacob Jan Tuinstra
źródło
7

Aby uzyskać bardziej niezawodne rozwiązanie, używamy niestandardowej funkcji.

1. Dodanie funkcji niestandardowej

Za pomocą edytora skryptów (postępuj zgodnie z instrukcjami w https://developers.google.com/apps-script/execution_custom_functions ) - pisze:

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

2. Dodaj formułę

Następnie w komórce pisze:

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

Co zamienia różnicę w milisekundach Epoki na minuty.

szkicowy
źródło
... Zrobiłem to, aby przekonwertować go i przekonwertować na sekundy już (z milisekund): function toEpoch (data) { return new Date(data) / 1000; }
user1278519 23.04.17
7

Zrobiłem dużo eksperymentów. Jest to najprostszy sposób obliczenia delty czasowej w Arkuszach kalkulacyjnych Google. Sformatuj komórkę zawierającą formułę w następujący sposób:

Formatowanie komórek formuły

Format> Liczba> Więcej formatów> Więcej formatów daty i godziny , usuń „drugi” i :. Następnie sformatuj czas koniec i początek komórki czasu, jak ten: h:mm am/pm.

Formatowanie komórki czasu wejściowego

Użyj wzoru =abs(end time - start time). To daje wartość bezwzględną, więc nie będzie ujemnych wartości czasu.

Natalie Kee
źródło
4

Jeśli chcesz, aby delta czasu była mierzona w dniach, użyj

=DAYS(end_date, start_date)
e18r
źródło
To prawda. Jednak przybyłem tutaj, próbując znaleźć różnicę w dniach (i wróciłem później, aby udzielić odpowiedzi, gdy znalazłem ją gdzie indziej), co prowadzi mnie do założenia, że ​​moja odpowiedź mogłaby przynieść korzyści innym w tej samej sytuacji. Ponieważ jest to taki pokrewny temat, nie sądziłem, że warto było otworzyć nowe pytanie, zwłaszcza, że ​​tytuł nie określa jednostki miary. Ale to tylko moje rozumowanie. Co myślisz?
e18r
@pnuts Jeśli znajdziesz odpowiedź, która jest przydatna, ale nie wchodzi w zakres pytania, możesz także po prostu edytować pytanie (w tym przypadku powiedzieć minuty, godziny, dni lub cokolwiek innego). Jestem tylko jednym facetem, pytanie ma 100 000 wyświetleń.
Stefano Palazzo
3

Możesz także spróbować TIMEVALUE().

W powyższym przypadku rozwiązaniem byłoby:

(TIMEVALUE(End Time) - TIMEVALUE(Start Time))*24*60 da ci różnicę czasu w MINUTACH.

Sujeeth Ravindran
źródło
Witaj Sujeeth! Dobra odpowiedź, dodałem trochę formatowania, aby ułatwić czytanie.
Vidar S. Ramdal
1

W Arkuszach Google użyłem poniższej formuły

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

aby dać mi różnicę w godzinach dziesiętnych.

Vibhu
źródło
0

Używam tej formuły:

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

następnie

Format -> Number -> More Formats -> Custom number format -> #,##0
Rahmat Ihsan
źródło
-1

=(C2-B1)*1440 następnie ustaw format na „Zwykły tekst”.

Eric
źródło
-1

Do mojej osobistej aplikacji:

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

To działało dla mnie:
=if(B4-A4<0,(B4+C4+1)-(A4+C4),B4-A4);sformatuj komórkę jako Format \ Czas \ Czas trwania.

Dla prawdziwych warunków: formuła inspirowana komentarzami Stefano Palazzo.

Bob K.
źródło
ps data jest powiązana z StartTime, nawet jeśli StopTime został przeniesiony na następny dzień, dlatego dodałem +1 do daty EndTime. Jeśli Twój EndTime przewinie się o więcej niż jeden dzień, +1 oczywiście nie będzie już działać.
Bob K
-2

Zgadzam się, że delta czasu jest wyrażona w dniach, więc aby powrócić do powiedzenia minut, należy pomnożyć różnicę przez 1440, czyli 24 x 60.

Miałem dzisiaj ten problem i pomyślałem, że wspomnę o innym prostym sposobie uzyskania aktualnego czasu w arkuszu kalkulacyjnym Dokumentów Google, który należy wprowadzić CONTROL:do komórki. Możesz użyć tego zarówno dla komórek Czasu początkowego, jak i Końcowego.

Jeśli musisz wprowadzić bieżącą datę w komórce, zostanie to osiągnięte przez CONTROL;

Barry Welford
źródło
1
Dzięki za udostępnienie, ale to nie jest odpowiedź na pytanie. Czytaj więcej objazd że w naszym centrum pomocy . Witamy w aplikacjach internetowych !!
Jacob Jan Tuinstra