Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
時間の計算:エクセル練習問題
Home »
エクセル練習問題:目次 »
時間の計算
更新:2025/9/20;作成:2012/9/6
問題1:入場時刻と退場時刻が記録されています。滞在時間はいくらでしょう?
また、合計滞在時間をD6セルに求めなさい。 問題1の解答
B
C
D
2
入場時刻
退場時刻
滞在時間
3
9:09
17:05
4
9:08
17:13
5
9:04
17:09
6
合計
問題2:ここは入場時刻〜退場時刻の時間に対して課金されます。
ただし、12:00〜13:00の間は無料となっています。課金される時間は何時間何分でしょう? 問題2の解答
B
C
D
2
入場時刻
退場時刻
課金時間
3
9:10
11:40
4
11:04
12:30
5
10:50
13:15
6
12:10
14:10
7
13:05
14:48
問題3:駐車料金が20分で100円の駐車場に入りました。料金はいくらでしょう 問題3の解答
B
C
D
2
入車時刻
出車時刻
駐車料金
3
9:10
11:40
4
11:04
12:30
5
10:50
13:15
解答
入場時刻と退場時刻はシリアル値になっていますので、そのまま引き算で計算できます
D3セルは =C3-B3 としました。
D6セルは =SUM(D3:D5) としました。
セルの表示形式は h:mm となっていると「0:06」と表示されるので、[h]:mm とします。
演算誤差を考慮すると・・・
時刻のシリアルとは小数になっているので、演算誤差を生じる可能性があります。
演算誤差を避ける計算をしてみたいと思います。
演算誤差については下記のサイトをご覧ください。
整数値で計算する方法があります。
24時=1 となるので、24*60=1440をかけることで分単位(整数)になります。
D3セルに =(ROUND(C3*1440,0)-ROUND(B3*1440,0))
E3セルに =D3/1440
と入力して、下方向へ数式をコピーします。
E8セルには =C3-B3
F3セルには =EXACT(E8,E3) として計算結果を比較してみると =C3-B3で演算誤差が認められます。
この結果演算誤差が認められたものをピックアップしています。
たいていの計算は問題はないことが多いとは思いますが・・・こんなこともあるということで書いています。
Text関数を利用して、Excelの内部で丸め処理を行う方法もあります。
E3セルに =TEXT(C3-B3,"h:mm")*1 と入力して、下方向へ数式をコピーしています。
ただし、Text関数では文字列が返りますので、*1として数値へ変換します。
時刻の文字列であるので、Excelが計算ができる文字列と判定して計算をします。
=C3-B3 の結果と異なっているのが、Exact関数での結果で演算誤差があることを示しています。
12:00〜13:00の間は計算しないわけですので、12:00までと13:00以降とに分けて計算することができます。
12:00までの計算は MIN("12:00",C3)-B3 で求めることができます。
13:00以降は C3-MAX("13:00",B3) となります。 しかし、負(マイナス)の時間となる計算はエラーになるので、負のときは最大値の「0」となるようにMax関数を使っています。
=MAX( 0 ,MIN( "12:00" , C3 )-B3)+MAX( 0 ,C3-MAX( "13:00" , B3 ))
TEXT関数を組み合わせると、
=TEXT(MAX(0,MIN("12:00",C3)-B3),"h:mm")*1+TEXT(MAX(0,C3-MAX("13:00",B3)),"h:mm")*1
となります。
解答例
なお、D列の表示形式は「G/標準」とします。
B
C
D
2
入車時刻
出車時刻
駐車料金
3
9:10
11:40
800
4
11:04
12:30
500
5
10:50
13:15
800
20分で100円というのは、1分間あたり5円となりますので、 (C3-B3)*1440*5 となります。
ここで、20分刻みでの課金=100円単位での支払い と考えると、100円単位で丸め処理することも可能です。
丸め処理にはCEILING関数を使いました。
時刻から駐車時間を求めるには C3-B3 となります。
20分単位ですので (C3-B3)/"0:20" として、端数を切り上げればよさそうです。
よって、=ROUNDUP((C3-B3)/"0:20",0)*100 としました。
時刻を数式内で使う時は「"」で括ります。Excelが時刻のシリアル値に変換して計算してくれます。
20分単位ですので、駐車時間を分単位で求めると ROUND((C3-B3)*1440,0) としました。
20分単位ですので、 ROUND((C3-B3)*1440,0)/20 となり、端数は切り上げで求めることにしました。
よって、=ROUNDUP(ROUND((C3-B3)*1440,0)/20,0)*100 としました。
Bと同じ考え方の計算ですが「分」を出すのに、TEXT関数を使うこともできます。
TEXT(C3-B3,"[m]") で分数を出すことができます。
この部分で返される値は文字列ですが、Excelは計算できる文字列ということで、数値として扱って計算してくれます。
スポンサードリンク
Home |エクセル練習問題:目次 |時間の計算
PageViewCounter
Since2006/2/27