• ベストアンサー

エクセルの件

勤務表を作成したいのですが、例えばA-1のセルに開始時間(9:00) A-2のセルに終業時間(17:00)と入力すると A-3のセルに(7)となるような計算式を教えてください。 ちなみに休憩時間を1h引いた時間です。同様に16:00~21:00の場合は5となるような式も教えてください。よろしくお願いいたします。

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

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

おそらく7や5というのは時間単位で数字を出したいとのことでしょう。それ時給を掛けることでその日の賃金が計算できますね。そのためにはA3セルには次の式を入力します。 セルの表示形式は「標準」にします。 なお、式では勤務時間が午前中で終業時間が午後1時過ぎの場合に1時間の休憩時間を考慮した式にしています。 =(A2-A1-IF(AND(A1<"12:00"*1,A2>"13:00"*1),"1:00",0))/"1:00"

jomari
質問者

お礼

おはようございます。 ありがとうございました。

その他の回答 (4)

回答No.4

こんにちは。 『 終業時刻-開始時刻-休憩時間(1h)=勤務時間 』として、「A3」セルに表示させたいのですね。 勤務時間「7」か「5」&休憩時間は8時間以上勤務の場合に1時間と決まっていて、 とくに月集計を行うなど無ければ、他回答者さまの組み合わせでOKだと思います。  =IF((A2-A1)>=8),(A2-A1)-1,A2-A1) ← No.2さんの回答式 上記プラスセル書式設定(ユーザー定義で「h」)← No.1さんの回答後半 残業がある、イレギュラー休憩時間がある等を考慮した場合は、  ・開始時刻  ・終業時刻  ・勤務時間 上記他に、休憩時間のセル(行?)を設けてマイナスしたほうが早いです。 例えば、「A3」に休憩時間を表示、「A4」へ勤務時間を表示の場合、 上記式は =IF((A2-A1)>=8),(A2-A1)-A3,A2-A1) となります。 この場合は、勤務時間が「7:45 → 7」「8:20 → 8」となりますが、 そのまま集計するとシリアル値で集計されるので「16:05 → 16」と表示され チェックする人によっては、「表記は16なのに、7+8=15?」などと混乱しますので、 hour関数やminute関数で数値として拾い出すか、 シリアル値扱いで「hh:mm」と『時:分』表記させるかは、検討されたほうが良いですね。 また、日別の実績などを各日入力する等であれば、 勤務表+実績表などとして、右へ日付が足されていく表もアリですが、 勤務時間を記載するだけなら、縦方向に日付を加算していき、 一番下に集計行とした方が見やすいかと思います。

jomari
質問者

お礼

おはようございます。 ご丁寧にご説明頂き、ありがとうございました。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

開始時間(9:00)、終業時間(17:00) 休憩1時間を考慮して、7時間(7) 開始時間(16:00)、終業時間(21:00) 休憩1時間は考慮せず、5時間(5) 休憩時間を考慮する条件がわかりません。 なので、一般的に、と言う話です。 普通に考えて、単純な引き算です。   終業時間-開始時間(-休憩時間)=就業時間 つまり、A3セルには   =A2-A1 で就業時間を出せます。 これの「時間」部分だけ表示するには、 セルの書式設定→表示形式→分類をユーザー定義にして、 種類に「 [h] 」と打ち込むと“経過時間”を表示できます。 「h」だけだと“時刻”を表示してしまいますので注意です。 (24時間を過ぎると1に戻ってしまいます。) ちなみに“分間”も必要なら「 [h]:mm 」とします。 さて、休憩時間の考慮ですが、大別して2通りと思われます。 一つは、休憩が発生する条件をつけて引くか引かないか区別するやりかた。 この場合はIF関数を使用して   =A2-A1-IF(条件,1,0) または =A2-A1-IF(条件,"1:00",0) 例えば「8時間以上なら」が条件であれば、式は   =A2-A1-IF(A2-A1>=8,1,0) 例えば「開始時間が午前中なら」が条件であれば、式は   =A2-A1-IF(A1<=12,1,0) などとして使ってやります。 もう一つ考えやすいやり方があるとすれば、 「休憩時間を別のセルに持つ」と言う方法。 例えば、就業時間をA4セルに移動させ、A3セルに「休憩時間」を用意しておき、 A4セルには式   =A2-A1-A3 としてやります。 A3セルに休憩時間が「1:00」と入っていれば1時間引きますし、 空白ならばもちろん引かずにそのまま計算します。 休憩時間が30分だったり2時間だったりと変わる可能性があるなら、 (と言うよりも、普通に勤務表を考えたときに) こちらの方が間違いなく簡単だと思いますよ。

jomari
質問者

お礼

おはようございます。 色々とご親切に説明いただきありがとうございました。

  • since_1968
  • ベストアンサー率24% (254/1053)
回答No.2

IF関数を使うとかですかね =IF((A3-A2)>=8),(A3-A2)-1,A3-A2) A-3 - A-2が8以上のときは、(A-3 - A-2)-1 =7 それ以外は(A-3 - A-2)=5ってことです

jomari
質問者

お礼

おはようございます。 ありがとうございました。

  • anchanok
  • ベストアンサー率66% (2/3)
回答No.1

・式 A-3のセルに「=A2-A1-1」を入力。 ・計算結果を時間だけを表示する A-3のセル上で右クリック ↓ 「セルの書式設定」を選択 ↓ 分類に「ユーザー定義」を選択 ↓ 種類に「h」を入力する ↓ 「OK」

関連するQ&A

専門家に質問してみよう