勤務時間の計算方法とエクセルでの式の修正方法

このQ&Aのポイント
  • 勤務時間の計算方法とエクセルでの式の修正方法について説明します。
  • 勤務時間の計算には、出社時刻と退社時刻の差を求める方法があります。
  • エクセルの式での勤務時間の計算には、条件分岐関数を使用することがおすすめです。具体的には、IF関数を使って出社時刻と退社時刻の差を求め、昼休みの時間を差し引くようにします。
回答を見る
  • ベストアンサー

勤務時間の計算

勤務時間 8:00~19:00 の間なら何時間でも働いてよくて 昼休み12:00~13:00の時間帯は必ず休みになります。 9:30出社 17:30退社 の場合、7時間となり 9:30出社 11:30退社 の場合 2時間となり、 14:00出社 18:00退社 の場合 4時間の勤務となります。 エクセルで     A      B      C 1  勤務時間    昼休み 2   8:00      12:00 3   19:00     13:00 4  出社       退社    勤務時間 5   9:30      17:30    7:00 6   9:30      11:30    2:30 ↓ドラッグ 7  14:00      18:00    5:00 C5に =IF(COUNT(A5:B5)<2,"",TEXT(MAX(0,(MIN($B5,A$3)-MAX($A5,A$2))-(MIN($B5,B$3)-MAX($A5,B$2))),"h:mm")*1) と入れてC7までドラッグすると、 C6が2時間のところが2:30になり、 C7が4時間が正しいのに5時間になってしまい、うまく計算されません。 うまく計算されるには、どのような式にすればいいのでしょう? もしくはもっと簡単な関数があるのでしょうか? ご教授、よろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 C5セルに次の数式を入力してから、C5セルをコピーして、C6以下に貼り付けると良いと思います。 =IF(COUNT($A5,$B5)=2,($A5<$B$2)*(MIN($B$2,$B5+($A5>$B5))-$A5)+($B5+($A5>$B5)>$B$3)*($B5-MAX($B$3,$A5)),"")

chashibu
質問者

お礼

ご回答、ありがとうございます。 こちらもシンプルでいいですね!

その他の回答 (4)

回答No.5

セルC5に =IF(A7>=TIME(13,0,0),B7-A7,IF(B7>=TIME(13,0,0),B7-A7-TIME(1,0,0),B7-A7)) の式を入れて、C7まで数式をコピーする方法もあるかな? ^^

chashibu
質問者

お礼

ん? C5に入れるにはA7とB7をA5、B5にすればいいですね?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

C5セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(A5:B5)<>2,"",IF(AND(A5<B$2,B5>B$3),MIN(B5,A$3)-MAX(A5,A$2)-(B$3-B$2),IF(AND(A5<B$2,B5<B$3),MIN(B5,B$2)-MAX(A5,A$2),IF(AND(A5>B$2,B5>B$3),MIN(B5,A$3)-MAX(A5,B$3),"")))) C5セルからのセルの表示形式は時刻から選択します。

chashibu
質問者

お礼

ご回答、ありがとうございます。 一ずつ追っていって納得しました。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

これでは? =IF(B5<=12/24,B5-A5,IF(B5<13/24,12/24-A5,IF(A5<=12/24,B5-A5-1/24,IF(A5<13/24,B5-13/24,B5-A5))))

chashibu
質問者

お礼

お返事ありがとうございます。 分かり易いですね!  このままだと未入力のところも0:00になってしまうので =IF(COUNT($A5,$B5)<>2,"",IF~)でくくってみました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

=IF(IF(AND(A5>$B$2,A5<$B$3),$B$3,IF(A5<$A$2,$A$2,IF(A5>$A$3,$A$3,A5)))>IF(AND(B5>$B$2,B5<$B$3),$B$2,IF(B5<$A$2,$A$2,IF(B5>$A$3,$A$3,B5))),0,IF(OR(IF(AND(A5>$B$2,A5<$B$3),$B$3,IF(A5<$A$2,$A$2,IF(A5>$A$3,$A$3,A5)))>=$B$3,IF(AND(B5>$B$2,B5<$B$3),$B$2,IF(B5<$A$2,$A$2,IF(B5>$A$3,$A$3,B5)))<=$B$2),IF(AND(B5>$B$2,B5<$B$3),$B$2,IF(B5<$A$2,$A$2,IF(B5>$A$3,$A$3,B5)))-IF(AND(A5>$B$2,A5<$B$3),$B$3,IF(A5<$A$2,$A$2,IF(A5>$A$3,$A$3,A5))),IF(AND(B5>$B$2,B5<$B$3),$B$2,IF(B5<$A$2,$A$2,IF(B5>$A$3,$A$3,B5)))-IF(AND(A5>$B$2,A5<$B$3),$B$3,IF(A5<$A$2,$A$2,IF(A5>$A$3,$A$3,A5)))-B3+B2))

chashibu
質問者

お礼

さっそくご回答ありがとうございます。こんなに長くなるとは思いませんでした。。。

関連するQ&A

  • 勤務時間の計算方法

    勤務時間の計算を、以下のようにやりたいのですが、可能でしょうか? A1=出社時間 B1=退社時間 C1=1日の勤務時間 ※昼休憩12:00~13:00と夜休憩18:00~18:30は休憩時間となります。 出社時間が日によって異なるため、どのように休憩時間を 引けばよいのか悩んでいます。 よろしくお願いします。

  • 勤務時間・時間外の計算方法を教えて下さい

      A      B     C    D     E    F 出社時間 退社時間 休憩 勤務時間 時間外 勤務日数 1 8:00    17:30    1    8:00   0:30   1 2 8:00    17:00    0.5    ☆   0:00   1 4 8:00    12:30    0     4:30    ★ 5 8:00    12:00    0    4:00   0:00   0.5 6 13:00   17:00    0    4:00   0:00   0.5 (1)勤務時間を計算する場合 B1-A1-C1かB1-A1-TIME(1,0,0) で計算できることは分かったのですが、休憩時間が30分のときの計算式☆が分かりません。 (2)時間外計算は=IF(D2>TIME(8,0,0),D2-TIME(8,0,0),0)だと勤務時間が8時間の場合にしか当てはまらないので半日勤務の場合の残業計算★はどういう式になるのかも教えて頂きたいです。 出来れば、8時間のときも半日のときも一度に計算したいです。 また、勤務日数を勤務時間 8時間の場合は 1 半日の場合は 0.5 というようにすぐ表示出来るようにならないでしょうか。0.5は赤字で表示出来たらうれしいです。 無理なことを言っているかもしれませんが、お願いします。

  • 勤務時間 Excel

    エクセルで勤務時間から時間外勤務時間を出す計算式を教えて下さい。 勤務時間は仕事に応じてなので不規則です。 Excel 出社時間 C2 退勤時間 F2 ①8:00〜17:00 → セルG2 ②17:00〜22:00 → セルH2 ③22:00〜24:00 → セルI2 ④00:00(24:00)〜05:00(29:00) → セルJ2 ⑤05:00(29:00)〜08:00(32:00) → セルK2 例として 出社 17:15~退社20:00 出社 18:00~退社26:00 出社 3:00~退社05:00 出社 3:00~退社09:00 出社 10:00~退社16:00 出社時間から記入するため25:00表記の場合と01:00表記の場合があります。 いろいろ調べたのですが難しくて思うように計算できませんでした(T_T) わかる方いましたら、是非教えて下さい宜しくお願いします。

  • エクセルの時間計算の数式を教えてください

    勤務管理をエクセルで作成しています。 19時前と、19時後の時間給を分けて支給することになり、 分けて集計をしたいのですが設定の仕方がわかりません。。。 出社12:00 退社22:00 とすると 12:00~19:00 の 「7:00」 19:00~22:00 の 「3:00」 を自動計算したいのですが、どうしたらよいでしょうか? ただ、出社時間と退社時間は、出勤していない日は0:00と表示するようになってしまってます。 そのため、 Aセル:出社時間 Bセル:退社時間 Cセル:19:00 Dセル:B-A-E Eセル:B-C にしみましたが、出社していない日の時間計算がうまくできません。。。 手計算は膨大な作業になってしまうので、自動計算させる方法を教えていただけると大変ありがたいです。 宜しくお願いします。 表示方法

  • VBAでの勤務時間計算

    基本的なことですいません。 18:00-8:30といった勤務時間の計算をしたいのですが Range("C1")= Range("B1")-Range("A1") だと結果がでません。 昼休みや残業時間も計算しなければならないのですが まずは、単純に引き算すらできなくて困ってます。 ご回答の程よろしくお願いいたします

  • 残業代の計算方法(エクセル)

    今残業代計算シートをエクセルで作っています。現在使用している計算式は =MIN(D6,"24:00")-MAX(C6,"18:00")(C6:出社時間 D6退社時間)でやっているのですが、こうすると休日の空欄のところに残業6:00時間と計算されてしまうのです。 出社時間と退社時間を入力して残業時間が一発で出てくるような計算式はないでしゅうか? よろしくお願いいたします。

  • エクセルで勤務時間を計算したい

    例えば、 セルAに出社時間) 9:00 セルBに退社時間) 16:00 と記入し、 2時間ごとに休憩15分あるので、 それを自動的にセルCに表示させたいです。 この場合ですと、 セルCに休憩時間) 0:45 そして、 拘束時間から、休憩時間を引いた勤務時間をセルDに表示させたいです。 セルDに勤務時間) 6:15 そして、 時給を仮に800円として、日給をセルEに表示させたいです。 *15分で200円の計算です セルEに日給) 5000円 マクロは使わないでお願いします。

  • エクセルの勤務計算で一部の時間を省く計算式は?

    エクセルで勤務管理表を作りました。 1日何時間働いたか、タイムカードの時間を打ち込み 月間で管理する表です。 だいたいは出来たのですが、1点難問が・・・。 基本は9:00-17:00勤務なので (昼45分差し引き)計7:15分です。 残業が17:16~しかつかないんです。 (17:00~17:15は残業とみなさない) つまり・・・17:15までですと勤務計は7:15分。       17:16までですと勤務計は7:31分です。 これを考慮した計算ができる式を教えていただけないでしょうか?     A1       B1      C1       D1 (退社時間-出社時間)-昼時間=1日の勤務時間 上記のことがあるので 「D1」セルに正しい勤務計を出すことが出来ないんです。  17:01~17:15は省く・・・みたいな。計算式が必要なんでしょうか?

  • Excel:勤務時間の計算がうまくいかない。

    No.1468024の質問をした者です。 勤務表を作成しています。(Excel2002を使用) 終了時刻(D列)ー開始時刻(C列)ー休憩時間(E列)=当日の勤務時間を計算しています。 No.1468024の質問でアドバイスをいただき、以下のような計算式を記述しました。 <例> =AND(C13*D13)*(MIN(IF(AND(D13>="12:00"*1,D13<="13:00"*1),"13:00",D13),"17:40")-MAX(IF(AND(C13>="12:00"*1,C13<="13:00"*1),"12:00",C13),"09:00")-E13+FLOOR(MAX(D13,"18:00")-"17:59:59","0:15")) ほぼうまくいくのですが、開始時刻9:00終了時刻12:00とした場合、勤務時間4:00となり、間違ってしまいます。(正しくは勤務時間3:00。また開始時刻9:00終了時刻が12時から13時までの間の時刻で入力された場合も勤務時間3:00と出力したいです。) 休憩時間セルに以下のような計算式を書いています。 <例> =IF(COUNT(C13:D13)<2,0,IF(D13-"12:00"*1<=0,0,IF(C13-"12:00"*1>=0,0,IF(D13<"18:00"*1,"1:00","1:20")))) 休憩時間は12時から13時までの1時間。 終了時刻が17:40以降なら20分休憩時間が加算されます。 開始、終了が入力されていないと0:00表示。 言葉足らずでしたら、進んで補足させていただきますので、よろしくお願いします。

  • Excel:当日勤務時間の計算式のアドバイスを下さい

    Excel2002を使用し、勤務表を作成しています。 修正を繰り返しだいぶ計算ができるようになりました。 今回は、開始13:15終了16:15の場合、休憩なし、当日勤務時間3時間と計算させたいのですが、何かアドバイスあればよろしくお願いします。 現在使用している計算式では以下のように計算されます。 開始8:30終了17:05、休憩45分、当日勤務時間7時間50分※定時 開始7:30終了16:05の場合、休憩45分、当日勤務時間7時間50分 開始8:00終了16:35の場合、休憩45分、当日勤務時間7時間50分 開始13:15終了17:05の場合、休憩なし、当日勤務時間3時間50分 開始13:15終了17:50の場合、休憩なし、当日勤務時間3時間50分 -------------------------------------------------------- 開始時刻:C列 終了時刻:D列 開始時刻を15分単位で切り上げる:P列:=CEILING(C6,"0:15") 終了時刻を15分単位で切り上げる:Q列:=CEILING(D6,"0:15") 休憩時間を45分として勤務時間を計算する:R列 -------------------------------------------------------- ■休憩時間 =IF(COUNT(C6:D6)<2,0,IF((P6<"12:30"*1)*(Q6>"13:15"*1),"0:45",IF ((C6>="13:15"*1)*(D6>="17:20"*1),"0:15","0:00")))+IF(R6>="8:00"*1,"0:15","0:00") ■当日 勤務時間 =IF(COUNT(C6:D6)<2,0,IF((C6>="13:15"*1)*(D6>="17:20"*1),R6-"0:15",IF(R6>="8:00"*1,R6-"0:15",R6))) ■休憩時間を45分として勤務時間を計算する =IF(COUNT(C6:D6)<2,0,AND(C6*D6)*(MIN(IF(AND(D6>="12:30"*1,D6<="13:15"*1),"12:30",Q6),"16:05")-MAX(IF(AND(C6>="12:30"*1,C6<="13:15"*1),"13:15",P6),"07:30")-IF((P6<"12:30"*1)*(Q6>"13:15"*1),"0:45","0:00")+FLOOR(MAX(D6,"16:05")-"16:04:59","0:15")))

専門家に質問してみよう