次のようなGoogleスプレッドシートがあります。
Date | Start time | End time | Minutes
------------+-------------+-------------+-----------
1/11/2012 | 11:39 | 12:41 | ?!
------------+-------------+-------------+-----------
| | |
今のところ、1日の2つの時間の間の分数を手動で入力すると。時間差を簡単に計算し、スプレッドシートで計算する方法はありますか?
GoogleはDurationと呼ばれる新しい数値形式を追加しました。開始フィールドと終了フィールドをFormat -> Number -> Time
に設定し、計算フィールドをFormat -> Number -> Duration
に設定します
それが完了したら、フィールドを減算して、Stefano Palazzoの回答で指摘されているように、差を得ることができます。
はい、時間フィールドが適切にフォーマットされている場合(フォーマット→数値→時間)をクリックすると、時間を加算および減算できます:
=C2-B2
または
21:58:00-20:44:00 = 1:14:00
これにより、HH:MM:SS
として時間差が得られます。また、分数を計算する場合は、そのフィールドでHour()
、Minute()
、およびSecond()
関数を使用できます。
=(Hour(D2) * 60) + Minute(D2) + (Second(D2) / 60)
もちろん、うるう秒、タイムゾーンの変更、またはイベントに24時間以上かかる場合は、結果を手動で調整する必要があります。
1つのイベントが深夜0時を過ぎて、たとえば23:50から00:10まで続く場合、これは負の時間として表示されます!
これらのイベントを「正しく」処理するには、「24:10」を入力するか、イベントを2つに分割します。
データを入力するのは少し難しいですが、これを行う最も確実な方法は、ビニングおよび終了フィールドを「Date Time」として、デルタフィールドを「Hours」としてマークすることです。これは次のようになります。
Beginning End Delta
8/1/2013 0:00:00 8/2/2013 12:30:00 36:30:00
D2
に次の式を追加すると、分が自動的に計算されます。
=ARRAYFORMULA(IF(ISBLANK(B2:B)=FALSE,((C2:C-B2:B)*24*60),""))
10進形式による時間の差は日数で表されます。したがって、24に60を掛けると分が得られます
前提条件が1つあります。列Dは「通常」にフォーマットする必要があります。
作成したサンプルファイルを参照してください:Delta Time
より堅牢なソリューションのために、カスタム関数を使用します。
1。カスタム関数の追加
スクリプトエディタの使用( https://developers.google.com/apps-script/execution_custom_functions の指示に従ってください)-書き込み:
function toEpoch (indate) {
return indate.getTime();
}
2。式を追加
次に、セルに次のように書き込みます。
=(toEpoch(C2)-toEpoch(B2)) / 60*1000
エポックミリ秒の差を分に変換します。
私は多くの実験を行ってきました。これは最も簡単な Googleスプレッドシートで時間差を計算する方法です。次のような数式を含むセルをフォーマットします。
形式>数値>その他の形式>その他の日付と時刻の形式、「秒」と:
を削除します。次に、h:mm am/pm
のように、終了時刻と開始時刻のセルをフォーマットします。
式=abs(end time - start time)
を使用します。これにより絶対値が得られるため、負の時間値はありません。
はるかに簡単:これを見てくださいB2:23:00 C2:1:37 D2:= C2-B2 +(B2> C2)
なぜ機能するのか、時間は1日のほんの一部であり、B1> C2の比較は、1日(24時間)が追加されるとTrue(1)またはFalse(0)を返します。 http://www.excelforum.com/Excel-general/471757-calculating-time-difference-over-midnight.html
時間差を日単位で測定したい場合は、使用します
=DAYS(end_date, start_date)
TIMEVALUE()
も試してください。
上記の場合、解決策は次のとおりです。
(TIMEVALUE(End Time) - TIMEVALUE(Start Time))*24*60
は、時差を分単位で示します。
Googleスプレッドシートでは、次の式を使用しました
=Round((hour(A2-A1)*60 + minute(A2-A1))/60,2)
小数時間の違いを教えてください。
私はこの式を使用します:
=HOUR(C2-B2)*60+MINUTE(C2-B2)
それから
Format -> Number -> More Formats -> Custom number format -> #,##0