• ベストアンサー

エクセルで時間の計算、なぜ24をかける?

いつもお世話になっております。 実働時間=退社時間-出勤時間-1(休憩時間) を出すには =(退-出)*24-1 となります。 私は漠然とわかった気がしてやっているのですが、 人(エクセルを開いたこともなかった人)に理由を聞かれて説明できません。「24時間だから…」… どういえばいいのでしょうか? 教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

●A1に3:00 B1に1:00 C1に=A1-B1と入れてみてください。 :付きで入れると、そしてそれらのセルで計算すると 書式はエクセルが「時刻」に設定します。しかしこの世界ではなにも不思議な点は現れません。 ●A1:C1を範囲指定し、書式-セル-数値-小数点異化の桁数を5とかにしてください。 A1は0.12500 B1は0.04167 C1は0.08333 と現れます。これがエクセルがセルの値として持っている時刻値です。 これはそれぞれ=3/12,=2/12,=1/12を計算した値です。 即ち24時間を1とし、その時間がいくらに当たるかを 少数値で計算し持っています。(1を越えると日に繰り上げ、24時間以内の時刻にしたりもしますが。) 表示上では、表示形式を日付にすると、エクセルが表示形式をうまくやってくれて上記で困ることはないです。 ●ところが時給の計算(時給1000円の人の例)をやろうとすると =c1*1000では83とかになってしまいます。 =0.08333*1000を計算しているからです。 これではおかしいので、=C1*24*1000と、かってエクセルが24で割ったのを元に戻す意味で、24掛ける必要があります。

noname#13352
質問者

お礼

シンプルでわかりやすい解説をありがとうございます!! これまで回答をしてくださった方の説明を頼りに 知り合いには何とか説明しましたが、 咀嚼が足りないといった感じでした。 これで消化できそう(してもらえそう)です!

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

1日=24時間、1時間=60分、1分=60秒 はすぐに説明できますよね。 日を基準にした場合 1時間=1/24日、1分=1/24/60日、1秒=1/24/60/60日になります。 時刻型は1日を基準にしている為、整数値に換算するために上記の逆数を掛ける必要があります。 *24が説明しずらいなら =(退-出)/"1:0:0"-1 とするとか、表示形式は時刻表示のままで =退-出-"1:0:0" とする方法もあります。 こちらで結果が24時間を超える場合は表示形式を[h]:mmにすれば対応できます。 ただ時給計算の場合は時間に直すほうをお薦めします。 "1:0:0"は1/24でTIMEVALUE("1:0:0"),TIME(1,0,0)でも同じです。 あと、まれに小数点以下の数値の丸め誤差が出る場合があります。 ROUND等の関数で調整してください。

noname#13352
質問者

お礼

他の方法まで教えてくださってありがとうございます。 色々やってみたいとおもいます。 お礼が遅くなって申し訳ありません。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

実働時間=退社時間-出勤時間-1(休憩時間) この式は 退社時間18時、出社時間9時といった数値で有れば、 18-9-1=8 で実働時間8時間と出ます。 出社時間が9:30だったりすると、9.5といった数値になりますね。 =(退-出)*24-1 この式は、「退社時間と出社時間のデータ形式」と「休憩時間と実働時間のデータ形式」が異なっていますね。 エクセルで言うところの 退社時間18:00、出社時間9:00といったデータ形式です。 エクセルでは数値の1を1日としたデータ形式で、 1時間 =1/24 1分 =1/24/60 1秒 =1/24/60/60 という数値です。 退社時間18:00 =0.75 出社時間9:00 =0.375 休憩時間1時間 =1 実働時間 =(0.75-0.375)*24-1 =0.375*24-1 =8 なぜ、24を掛けなくてはいかないのかというと、データ形式が異なるためです。 データ形式を統一すれば、 退社時間18:00 =0.75 出社時間9:00 =0.375 休憩時間1:00 =0.041666667 であれば、 実働時間 =0.75-0.375-0.041666667 =0.333333333 =8:00 の様に 実働時間=退社時間-出勤時間-休憩時間 といった式で良いのです。

noname#13352
質問者

お礼

そうなんです!! 「休憩時間を1:00で計算すればいいはずなんじゃないの?」 と言われ、答は出ないにもかかわらず、そりゃそうだ…と言葉をなくしていました。 わかりやすい解説、ありがとうございました!!

noname#7896
noname#7896
回答No.1

私も説明でないのですが、下記URLの真ん中よりちょっと下の『時刻データに時給をかけて給与を求める』に解説があります。 ※1時間は1日を24時間で割ったシリアル値として表示されるので、24をかける事により、通常の数値に戻す シリアル値についても理解していないとさっぱりわからないですf^_^;

参考URL:
http://www.sskpc.com/excel_tokusyu/excel_kansu/k017.htm
noname#13352
質問者

お礼

早速の回答、ありがとうございます。 シリアル値まで加えて説明、なんてできそうにありません。「覚えるしかないね」でいこうかしら…^^;

関連するQ&A