• ベストアンサー

エクセルで勤務表作成について

昨日もご相談させていただき、色んな方からご回答をいただき、やったぁ~と喜んでいたんですが、色んな検証をすすめていくと、修正が必要だと判明したので、また助けていただけますでしょうか? 以下のような項目で表を作成しているんですが、G7:普通残業の部分でずっとひっかかっております。 宜しくお願いいたします。 A7:月日 B7:区分(土日・祝日に1を入力) C7:始業時間 D7:終業時間 E7:休憩時間 F7:所定時間(7:30までしか表示しない)   =IF(B7>0,"",IF(D7-C7-E7>7.5/24,$F$1,IF(C7="","",D7-C7-E7))) G7:普通残業(実働7:30を超え、8時間までの時間表示) ※ ここが上手く出来ません =IF(B8>0,"",IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),""))という式を入れたんですが、C7:始業時間が9:30、D7:終業時間が18:30(18:30以外の時間は全て表示するようです)、E7:休憩時間が1:00の時、G7:普通残業には0:30とはいらないんです。 =IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),"")という式では上の問題は解決するが、B7:区分に「1」を入力した場合に表示されてしまう。 B7:区分に「1」が入力された場合はJ7:休出残業とK7:休出深夜に数字が飛ぶようにしてあるんです。 H7:時間外(実働8時間を超え、10時間までの時間表示) =IF(B7>0,"",IF(D7>"22:01",D7-C7-E7-"8:00"-I7,IF(D7-C7-E7>8/24,D7-C7-E7-"8:00",""))) I7:深夜残業(実働10時間を超えた場合の時間を表示)   =IF(B7>0,"",IF(D7>"22:00",D7-"22:00","")) J7:休出残業=IF(B7="","",IF(B7=1,IF(C7="","",IF(K7="",D7-C7-E7,D7-C7-E7-K7)),"")) K7:休出深夜=IF(B7="","",IF(B7=1,IF(D7>"22:01",D7-"22:00",""),""))

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

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

mshr1962です。昨日は用事があったので補足に対する回答ができなくてすみませんでした。 単純にIF文をひとつ追加なら =IF(B7>0,IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),""),"") AND関数を使うなら =IF(AND(B7>0,D7-C7-E7>7.5/24),IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),"") 上記をさらに整理するなら =IF(AND(B7>0,D7-C7-E7>7.5/24),MIN(0.5/24,D7-C7-E7-7.5/24),"")

megrain
質問者

お礼

早速ありがとうございます。 また検証させていただきます。

その他の回答 (1)

  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.2

先日も回答しましたhiruminです。 > G7:普通残業(実働7:30を超え、8時間までの時間表示) > ※ ここが上手く出来ません > =IF(B8>0,"",IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),"")) 質問の際、式をコピー&貼り付けしたのでしたらですが… 式の先頭、「B8>0」が「B7>0」の間違いではないかと思うのですが、いかがでしょう?

megrain
質問者

お礼

そうなんです。 投稿した後、気づきました。 ありがとうございます。

専門家に質問してみよう