『基本的ですが時間の計算について教えてください』(オバサン) ちょっと改行がおかしくなりました。 もう一度送らせていただきます。ごめんなさい。 出勤時間 退勤時間 休憩時間 11:30   18:00    30分 12:00   17:00    30分 11:00   18:00    60分 10:30   13:00    45分 10:00   17:00    60分 こんな表があります。勤務した時間を出す方法を教えてください。 退勤時間−出勤時間で、6:30とかすぐに出るのですが、休憩時間をどう扱ったらいいかわかりません。 休憩時間を0.5(時間)と表示形式を変えて、退勤時間−出勤時間−休憩時間としてみたのですがエラーで出ます。 過去ログを見たのですが、応用力がないというのかまるっきり同じ形式が無くてわかりませんでした。よろしくお願いします。 Excel2002  WindowsXP ---- 恐らく休憩時間を0.5と入力されて計算されている為に、 エラーになるのではないかと思います。 エクセルで、 日付,時刻の計算はシリアル値と言われる数値が使用されます。 シリアル値による 0.5 は 12時間を表します。 休憩時間の欄は、30分なら 0:30 と入力し、表示形式を ユーザー定義で [m]分 にします。これなら、入力された値はシリアル値の30分なので 「退勤時間−出勤時間−休憩時間」の計算で出来るのではないかと思います。 休憩を 0.5 のようにしなければいけないなら、計算時に、0.5をシリアル値の30分に 変換して計算します。A1が出勤、B1が退勤、C1が休憩時間(0.5)だとして、 =B1-A1-(C1*"1:0") ↓シリアル値についてはこちらを参考にして下さい。 [[20041118111248]] 『シリアル値とは』(まめしば) ↓表示形式のユーザー定義についてはこちらを参考にして下さい。 エクセルの学校・ライブラリ 表示形式・ユーザー定義 http://www.excel.studio-kazu.jp/lib/e3g/e3g.html (Yosh!) ---- ありがとうございました。実はこれは本の中の練習問題で、答えはあるのですが 手順が載っていません。 問題に休憩時間は30分と書いてあるので、 =B1-A1(C1*"1:0")の方法で、やってみたらうまくいきました。 でも、本当は、なぜ1:0をかけるのかよく分かりません。 C1*"1:0"で、シリアル値になる?ンですよね。 一日24時間で、シリアル値1になって、1時間はその1/24と理解したのですが・・ すみません。頭が悪くて・・よろしくお願いします。 ---- [オバサン]さんが理解されているとおりです。 1時間はシリアル値では 1/24 になります。 なので、例えば C1に1が入力されていて1時間を表している場合、 C1を24で割る,若しくは 1/24 の値を掛けるとシリアル値の1時間と 同じ値になります。その為C1*(1/24)=C1/24という式で シリアル値への変換が出来ます。 同様に、もしC1に30と入力されて、それが30分を意味しているならば、 C1/24/60とすれば、1/24のさらに1/60が1分なのでシリアル値の 30分に変換する事が出来ます。 秒への変換ならC1/24/60/60になります。 (C1*"1:0")は(C1*(1/24))と同じ意味で今回の式で使用しました。 (C1*"1:0")の"1:0"の部分は、""で括られているので本来は文字列なのですが、 計算で出てきた文字列をエクセルが数値として判断して計算してくれる場合があります。 "1:0"をシリアル値の1時間=1/24とエクセルが判断してくれている為、 (C1*(1/24))と同じ意味として計算が成り立ってくれています。 "1:0"のような書き方は好みの問題なので、[オバサン]さんがわかりにくければ C1/24として覚えて下さい。 (Yosh!) ---- 感謝感激です。今度こそ本当によく理解できました。 これをコピーしておいて、これからまた、忘れたときは、見直します。 一人で勉強するって、ほんとエクセルなどは、特にわからないときに、 困っていましたが、とても助かります。 時々、質問させていただきたいと思います。 どうぞよろしくお願いします。ありがとうございました。