就寝時間と起床時間の差を計算するGoogleシートを作成する仕事をしています。これが私が起こしたいことです:
Sleep time Wake time Difference
23:30 6:00 6.50
00:00 6:00 6.00
00:30 6:00 5.50
これが実際に起こることです:
Sleep time Wake time Difference
23:30 6:00 -17.50
00:00 6:00 6.00
00:30 6:00 5.50
Difference
列の数式は
= (B2 - A2) * 24
この答え のとおり。数値としてフォーマットされます。もちろん問題は真夜中の境界です。私の頭では、23:30が1日目の午後11時30分を意味するのは明らかですが、6:00は2日目の午前6時であることは明らかですが、Gsheetsにとってそれは明確ではありません。だから私は起床時刻の日付に1を加えるという非常に厄介な回避策を試しましたが、それもうまくいきません:
Date Sleep time Sleep date time Wake date Wake time Wake date time Difference
29/05/2019 23:30:00 29/05/2019 23:30:00 30/05/2019 06:00:00 30/05/2019 06:00:00 6.50
30/05/2019 00:00:00 30/05/2019 00:00:00 31/05/2019 06:00:00 31/05/2019 06:00:00 30.00
31/05/2019 00:30:00 31/05/2019 00:30:00 01/06/2019 06:00:00 01/06/2019 06:00:00 29.50
真夜中前に眠りにつくシナリオでは正しく計算されますが、真夜中またはその後に眠りにつくときは正しく計算されません。時刻が深夜前か深夜後かをテストする方法を知っていれば、この解決策は可能だと思います。次のいずれかのオプションのように、単純な比較は機能しません。
= A1 < A2 (where A2 is '00:00:00' formatted as time)
= A1 < "00:00:00"
最初のものは、A1が「23:30」、「00:00」、または「00:30」であるかどうかに関係なくすべてFALSEを返し、2番目のものは同じパラメーターに対してすべてTRUEを返します。
私は明らかな何かを見逃していると確信していますが、このコンテキストで時刻が深夜前か深夜後かをテストする方法がわかりません。方法はありますか?
私は この答え を知っています。これは、時刻を深夜24時30分にフォーマットすることを提案します。これは、時刻を入力するのが簡単になるように、または「イベントを2つに分割する」ために避けたいと思います。それが実際に何を意味するのか私にはよくわかりません。ブールソリューションがある場合、それはより簡単かもしれません。
時刻が午前0時より前か後かを判断するためのより良い方法があることに気づきました。HOUR
を使用して時間コンポーネントをテストしてください。時間が0〜6の場合、時刻は午前0時以降と見なすことができます。そうでなければそれは前です。
=AND(HOUR(C2)>=0, HOUR(C2)<=6)