ぱそくま ろご
Windows > Excel > 時間計算その2

時間計算その2(切り捨て、切り上げ、時間計算の仕組み、切り捨て問題)

切り捨て計算

時間の切り捨て計算を行う場合はFLOOR()を使用します。なお、切り捨て計算による誤差に関しては「切り捨て誤差による問題」を参照してください。

切り捨ての例
AB
1 切り捨て単位 0:30
2 18:45 =FLOOR(A2,$B$1)
計算結果
AB
1 切り捨て単位 0:30
2 18:45 18:30

FLOOR関数は=FLOOR(A1,"0:30")とも指定できます。

切り上げ計算

時間の切り上げ計算を行う場合はCEILING()を使用します。CEILING()は=CEILING(A1,"0:30")のようには指定できないので、次のように行います。

切り上げの例
AB
1 切り上げ単位 0:30
2 18:45 =CEILING(A2,$B$1)
計算結果
AB
1 切り上げ単位 0:30
2 18:45 0.791666667

計算結果が小数になっていますが、足し算の章で行った「セルの書式」を変更すればOKです。詳しくは時間計算その1の足し算を参照してください。

セルの書式設定後
ABCDG
1 切り上げ単位 0:30
2 18:45 19:00


時間計算の仕組み

切り上げ計算で小数をセルの書式設定で時間表示にしましたが、まさにこの通りで、Excelは数値をむりくり時間や日付表示しています。1日=数値の1となります。1時間は1/24(≒0.041666667)です。

セルの書式設定前
ABCDG
1 =1/24 =1/24 1 1 1
セルの書式設定後
ABCDG
1 1:00 1:00 0:00 24:00 1900/1/1
2 書式h:mm 書式[h]:mm 書式h:mm 書式[h]:mm 書式yyyy/m/d

また、時間どうしの掛け算や割り算も同様で、例えば9:00 * 3:00は0.375 * 0.125 = 0.046875 = 1:07となります。

切り捨て誤差による問題

「時間計算の仕組み」で取り上げましたが、Excelは数値を時間表示していることがネックになり、 少数値の誤差によりFLOOR関数が期待する結果を出さない場合があります。その例を下記に示します。

切り捨て計算の誤差の例
ABCDG
1 あるセルの値を切り捨て 0:30 =FLOOR(D1,"0:30")
2 引算した結果を切り捨て 9:00 9:30 =C2-B2 =FLOOR(D2,"0:30")
計算式の結果
ABCDG
1 0:30 0:30
2 G2が0:30にならない 9:00 9:30 0:30 0:00

正しく表示するには以下の計算式にしなければなりません。

時間の計算式
ABCDG
1 0:30 =FLOOR(D1, "0:30")
2 解決先その1 9:00 9:30 =C2-B2 =FLOOR(TIME(HOUR(D2),MINUTE(D2),0),"0:30")
3 解決先その2 9:00 9:30 =C3-B3 =FLOOR(VALUE(TEXT(D3, [h]:mm)),"0:30")