いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)時間を考慮して経過した満日数を求める

 Googleスプレッドシートで、日付の差だけではなく時刻を含めて考え、満何日経過したのかを求める方法です。
 つまり24時間経過したら1日、48時間経過したら2日……と数える数え方です。

  • 「=INT(終了日時-開始日時)」で、期間の間に丸何日経過しているかを求められます。

手順

f:id:accs2014:20220411070137p:plain:right:w500

 B列とC列に開始日時と終了日時の組が並んでいます。
 日付だけをみて期間を求めるなら単純に日付を引き算したりDAYS関数を使えばいいですが、時刻を考慮すると、例えば2番目の組(B4,C4セル)の経過時間は23時間59分59秒で、24時間に満たないので0日と数えることとなります。

 D3セルに式を入力し、このように時間を含めて丸何日経過したかを求めています。D4以下も同様です。

 D3セル

=INT(C3-B3)

 Googleスプレッドシートの内部では日付時刻を、1日を1と換算する数値(シリアル値)として扱っています。12時間は0.5に、1時間は約0.0417に換算されます。
 例えば「2022/4/12 10:00:00」は44663.4166666667というシリアル値に相当し、「2022/04/13 9:59:59」は44664.4166550926に相当します。
 これを利用して終了日時から開始日時の引き算を行い、INT関数で小数部分を切り捨てれば期間のうち「丸何日」の部分が求められます。