- 締切済み
エクセルでの勤務時間の計算の仕方、関数を教えてください
オフィス2003でエクセルのに出社時間と退社時間を入力し、何時間働いたかを給料計算として表示したいのですが、なにかいい方法はあるでしょうか? たとえば、あるセルに08:15 別のセルに17:30と入力したとします。それをまた別のセルに何時間働いたかを計算する関数はありますか? お昼休憩などが入っても対処できるのがいいのですが・・・。 どなたかご存知の方、助けてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- ozigakura
- ベストアンサー率20% (16/80)
#2です補足します IF(ISBLANK(E3),1,0)について ISBLANK(E3)はE3が空白の場合真(true)になりますのでE3にチェックマークがなければ 1、あれば0です。つまり半日勤務で昼休み時間を挟まない場合チェックを入れることで1時間の昼休み時間を控除しない計算をさせています。 E列にはデータ 入力規制 でチェックマークか空白が選択できるようにしています。 全体のIFはデータの無い場合空白にするものです。 別シートで個人ごとの支払い明細と源泉税の計算などをさせています。
- dejiji-
- ベストアンサー率38% (327/858)
単純に時間を引いて、計算するなら、コロンで区切ればただの引き算なんですが。大きい方から小さい方を引くだけです。(セル書式は自動的に変更されます。) imogasiさんの言うように、いろいろ条件がありますよね。引き算だけでは片付かないような場合がほとんどです。 24時以降の勤務はありませんか?(1時以降は計算できなくなります)最後に合計もするでしょう。(24時間以上表示できなくなります。セルの書式設定が必要です。) 質問を見ていて、あまりエクセルを使われていないように思われるのですが、特に、時間に絡む計算はかなり質問が出ています。それを参考に、まず引き算と足し算を使い、単純な勤務表を作ってみましょう。そして、そこで何か問題が出れば質問してください。ちょっと内容が抽象的であるために、具体的なアドバイスが困難です。 また、給料計算としては直ぐ使うべきではありません。私も、色々作りましたが、必ず問題が出てきます。数ヶ月試用して問題が本当に無くなってから使うべきでしょう。 それと、今使っているのは本当に2003ですか?日本語版は10月24日発売ではなかったでしょうか。
- imogasi
- ベストアンサー率27% (4737/17069)
>何時間働いたかを計算する関数はありますか? 関数は単機能のものがほとんどで、業務のニーズに一発で 応える関数などありません。工夫して、あれこれ組みたてて、無理している結果、やっと結果が出ているようなのが多い。その結果熟練者でも、関数式を他人が見て、何をしているか直ぐ判らないものも頻出します。 時間計算は基本的に、エクセルが時間を時刻シリアル値(24時間を1にする)で考えてくれているため、引き算で済みます。 一番の問題は、場合分け(注)が業務では複雑なことです。 そこでIF関数を使ったりして、工夫するのですが、直ぐ 式が複雑になり(ネストと言う)過ぎて、不適です。 条件が単純でないと、関数式ではほんとに複雑になることを覚悟してください。または一部で人間が計算や判別をする折衷方式を取り入れると、式は簡単になる場合も考えられます。 私も去年パートの方の勤務時間計算を考えましたが、 出勤時間もいろいろで、早朝、深夜勤務があると、1日を 何時からスタートさせるのかさえ迷いました。 その際VBAが利用できると、少し考えやすいですが、 未経験なら直ぐは無理でしょう。 相当覚悟してください。業務では、家計簿などと違って、後日間違ってましたでは済みませんでしょうしね。 自社のルールや勤務実態が単純かどうかチェックしてください。手に余る場合は、フリーソフトなどに適当なものがないか探したほうが良いでしょう。 そして関数を質問し聞く前に、内容の整理・明確化や文書化は済んでいますか。そちらが先です。その後もう少し 下(細かい)のレベルで、「こう言うことがしたいが、どう言う関数でどう組みたてたら良いでしょうか?」と言う質問になるはずです。 (注)例えば早朝、昼休憩、通常労働時間、期間外時間、割増時間、深夜時間などの判別が必要で、6つも場合分けはIF関数では煩雑でしょう。
- ozigakura
- ベストアンサー率20% (16/80)
僕が以前タイムレコーダーから時間計算するのを作って使ったものです。 C3に出勤時刻 8:15 D3に退社時刻 17:30 F3に外出時間 E3は半日で早退や遅刻で昼休みの1時間を控除しない場合チェックマークを入れるセル IF(C3>0,(D3-C3-F3)*24-IF(ISBLANK(E3),1,0),"") 24を掛けると時間が出ます。
お礼
ありがとうございます。 試してみましたができました。 IF関数の複雑なものに慣れていないのでわからないのですが、IF(ISBLANK(E3),1,0),"") の意味を具体的に教えていただければありがたいです。 どうかよろしくお願いいたします。チェックマークというのは数値と考えてよいでしょうか?
- mamemamegogo
- ベストアンサー率32% (9/28)
単純にこんな方法でどうでしょう? 時間を表示させるセルは予め下記のような設定をしておきます。セルの書式設定→表示形式を時刻にしておきます。 例えばAに出社08:15 Bのセルに17:30と入れた場合 単純に計算式はBセル-Aセルで何時間働いたかは計算できます。そして休憩を引く場合は固定の時間であれば良いですがいろいろと休憩時間も異なるかと思いますので セルCに休憩時間を入れる列を設けて Bセル-Aセル-Cセルという簡単な方式でされてはどうでしょうか?
補足
すみません。 2002の間違いでした。あわてて申し訳ありませんでした。