- ベストアンサー
エクセルで勤務表から実働時間を自動計算したい
- 私の会社は365日24時間休みなく稼働しています。正社員は3班に分かれ、1日は1班、2日は2班、3日は3班、4日は1班と3日に一度24時間勤務をしています。正社員で各勤務地をカバーできればいいのですが、有給や慶弔で休みを取るので穴のあいた勤務地に68歳を超えた方が嘱託社員として穴のあいた勤務地の補充をしていただいております。勤務地によっては日勤は一人勤務を行い、夜勤になってから二人勤務になるところもあります。
- 今回の質問は、嘱託社員の方の一カ月の勤務時間を自動計算できないかというものです。表はA1に日にち、A2に曜日、A3は空白、A4に氏名、A5に氏名、A6に氏名となります。B1とC1は結合して1日、B2とC2は結合して曜日、B3に日勤の日、C3に夜勤の夜、B4~B6勤務地、C4~C6は勤務地となり後は添付した表のようになります。
- 嘱託社員の一カ月の勤務時間を表示するためにExcelで勤務表から実働時間を自動計算したいです。正社員は日勤、夜勤を通しで行い、班長や副班長は当直のため夜勤は現場では働かず当直室に詰めます。しかし、夜勤勤務者や時には日勤勤務者が足りなくなることがあります。そのため、嘱託社員の方に足りなくなった勤務地の補足をお願いしています。嘱託社員は日勤だけ、夜勤だけ、または日勤夜勤の通しで働くことになります。勤務表の空白の部分は正社員が勤務をしているため開けてあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 計算自体は、前回のサンプルで言うと D4列に以下を入れれば計算できます。 =IF(B4="",IF(C4="",0,11),IF(C4="",8,18)) 列を挿入しないならこの式を1日分ずつ、 「勤続時間」欄に+で足していけば可能ですが 長い式はセルの選択誤りやカンマ位置の誤り等を見つけにくく、 検算もしにくいので私はおすすめいたしません。 列を挿入したくないのは、なぜでしょう? 1.印刷したくないため 2.中間計算を見せたくない 3.シートやセルに保護があって列挿入できない 1,2の理由であれば、列を非表示にすれば問題なくなると思います。 3の場合は別シートで各日別の計算をして、 集計結果を「勤続時間」欄に持って行くのも手ですね。
その他の回答 (1)
- mako_sea
- ベストアンサー率47% (62/130)
添付画像の字が小さかったので、 通しは8+10=18時間と勝手に補完しましたがよろしいでしょうか? その仮定で問題なければ、 こんな感じで作成してみてはいかがでしょう。 (1) C列とD列の間に1列挿入して新しい列を作ります (2) D4セルに次の式を入力します =IF(B4="",0,8)+IF(C4="",0,10) (3) D5:D6にD4をコピーします (4) D列と同じものを2列おきに日数分挿入しながら貼り付けします (添付画像参照) (5) 「勤続時間」欄でsum関数で行の合計をとります
お礼
回答ありがとうございます。 質問の説明が不足しておりました。 申し訳ありません。 勤務の実働時間ですが、日勤は8時間、夜勤は11時間、日勤夜勤の通しは18時間となっています。 そして、勤務者の一か月の勤務時間を列を挿入しないで、知りたいのですが。 このような変則の時間で計算できるのでしょうか。 よろしくお願いします。
お礼
mako_seaさんありがとうございます。 できました。(本当にありがとうございます) 列の追加をしないで、表の下に教えていただいた(=IF(B4="",IF(C4="",0,11),IF(C4="",8,18)))の計算式を記入したところ日勤のところに勤務地を記入すると8、夜勤の勤務地を記入すると11、日勤夜勤の勤務地を記入すると18と表示されました。 合計を勤務者の月の終わりに入力し表の完成となりました。 この表の月の勤務時間を手計算で行い、162時間を超えないように何度も勤務地を入力しては月の勤務時間を計算していた苦労がウソのようです。 本当に助かりました。 また、計算式も複雑でないのでよかったです。 また教えてください。よろしくおねがいします。 mako_seaさんのご健勝をお祈りしています。ありがとうございます