• ベストアンサー

勤務表の作り方

同じ質問あるかもなのですが、発見できなかったので質問させていただきます。 会社で勤務表を作っているのですが、1ヶ月1シートを 使い、A列に日付・B列にやったこと(会議や資料作成等)・C列に開始時間・D列に 終了時間を記入します。 1ヶ月続けて書くと、日によっては会議にも出て営業も 行って資料も作って・・・となると、同じ日付がダーっと 続くことになります。 そこで平日休暇や土日祝日を除いたりして、1ヶ月で何日 勤務したかを計算するにはどのようにすればいいのか 教えてください。 つまり、A列の中に何種類のモノがあるか知りたいの ですが、やり方が分かりません。 もう一つ、1ヶ月単位のシートですが、1週間毎に 会議は計何時間・・・というのを知りたいのですが、 イイ方法はあるでしょうか? 1ヶ月丸々の会議時間や、就労時間はDSUMで求める ようにしているのですが、更に細かく、その1ヶ月の 内で1週間毎の集計を出したいです。 シートを1週間毎にすると、膨大な数になるので できれば1ヶ月にシート1枚だと嬉しいです。 説明分かりにくいと思うのですが、よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

>つまり、A列の中に何種類のモノがあるか知りたいの >ですが、やり方が分かりません。 土日祝日は入力がないものとして =SUMPRODOCT(1/COUNTIF($A$2:$A$100,$A$2:$A$100&"")) >その1ヶ月の内で1週間毎の集計を出したいです。 1週間の単位は月曜~金曜として =SUMPRODUCT((INT((DAY($A$2:$A$100)-WEEKDAY($A$2:$A$100,3))/7)=[週])*NOT(ISERR(FIND("会議",$B$2:$B$100)))) ※月曜日を週の初めとするので、[週]の部分次の数式のセルを参照してください。 第1週=ROW(A1)-(WEEKDAY(TEXT($A$2,"yyyy/mm")&"/01")<>2)*2 第2週=ROW(A2)-(WEEKDAY(TEXT($A$2,"yyyy/mm")&"/01")<>2)*2 第3週=ROW(A3)-(WEEKDAY(TEXT($A$2,"yyyy/mm")&"/01")<>2)*2 第4週=ROW(A4)-(WEEKDAY(TEXT($A$2,"yyyy/mm")&"/01")<>2)*2 第5週=ROW(A5)-(WEEKDAY(TEXT($A$2,"yyyy/mm")&"/01")<>2)*2

ken460-y
質問者

お礼

どうもありがとうございます! SUMPRODOCTを使うんだろうなーって とこまでは分かったのですが、エラーが出て 使いこなせませんでした。やってみます。 1週間の集計方法も、知らない関数(INT)が ありますが勉強してみますね。 どうもありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1にも書いておられますが、質問があいまい。 >説明分かりにくいと思うのですが・・ というより、解決の為に何が必要かが整理されておらず、判っていないため、必要な項目の説明が、抜け落ちている。それを勉強して、資料そのものを、解決しやすい形に近付けることも必要。 エクセル以前にするべきこと考えるべきこと、表現すべきことが有るということ。 必要な条件は残し、必要でない煩雑さはカットした実例でも上げるのが判りやすいと思う。 >1ヶ月で何日勤務したかを 勤務した以外の日もA列に現れるのか。 ○このシートにはA氏以外B氏、C氏・・の情報も入っているのか それはどの列か ○土日・休日の日付もA列に現れるのか >1ヶ月で何日勤務したかを A氏は何日、B氏は何日、・・の別を出したいのか >会議は計何時間 「会議」「資料作成」など要約した、それだけの文字列が、どこかの列ににあるのか ーー 回答にも出ているように、ピボットが一番便利でしょう。 そのためには、入力の手間はかかるが、分類コードや要約文字列をデータとして、持つとかの工夫が必要かと思う。

ken460-y
質問者

補足

説明が分かりにくくてすみません。 補足しますと 1.この表には一人分しか入っていません。 2.土日祝日にも出勤した日があるし、また   突発的に平日休んだ日もあるので、A列に   入る日付=出勤日ということで、A列に   何種類の日付が入るかをカウントできれば   出勤日数が分かると思い、種類の数をカウント   する関数が知りたかったんです。

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

ピボットテーブルを使ってみたらどうでしょう? E列に所要時間を記載します。 E2セルに =D2-C2 と式をいれ、E2セルのフィルハンドルをダブルクリックします。 表内のどれかのセルを一つ選択して、「データ」-「ピボット~」を選択します。 「ピボットテーブル ウィザード」の3/3で新規のワークシートか既存のワークシートを選択できます。 既存のワークシートを選択して、表内の空いたセルを選択すればそこに作成されます。 H列あたりのセルを選択すれば、邪魔にならないでしょう。 行のフィールド~に「日付」を、列のフィールドに「仕事内容」をドラッグします。 データアイテムに「所要時間」をドラッグします。 >そこで平日休暇や土日祝日を除いたりして、1ヶ月で何日勤務したかを計算 意味が良く判らないのですが、この表にある日付はなんらかの仕事をしているのですから、 勤務しているはずですね。ピボットテーブルでは、日にちごとにまとめられていますから、 これの合計でよいと思うのですが・・・。 COUNTA関数で計算できると思います。 さて、所要時間が「データの個数」になっているかも知れません。 右クリックして、「フィールドの設定」で「集計の方法」を「合計」にします。 シリアル値が表示されますので、範囲指定して「書式」-「セル」の「表示形式」タブで 「分類」を「「時刻」にします。 「日付」欄を右クリックして、「グループとアウトラインの設定」-「グループ化」を選択します。 「単位」に「月」が選択されていると思います。クリックすると解除になります。「日」を選択します。 (日だけが反転した状態にします) 下の日数の欄を「7」にします。 開始日は元の表の最初の日付になっていますが、月曜日からの1週間にしたければ、 「開始日」を月曜日の日付にします。 今月であれば3日が月曜日ですので、「2006/7/3」にします。 このように週単位で集計されます。 <2006/7/3 2006/7/3 - 2006/7/9 2006/7/10 - 2006/7/16 2006/7/17 - 2006/7/20

ken460-y
質問者

お礼

ピポットテーブルなんて使ったことなかったので、 びっくりでした。 早速勉強して、やってみます。 どうもありがとうございました。

回答No.1

>そこで平日休暇や土日祝日を除いたりして 土日であるかは、weekday関数で得られます。 平日休暇=有給休暇等のことですよね? その情報は、どこに持っているのですか? 祝日の情報は、どこにどのようにして持っているのですか? >A列の中に何種類のモノがあるか知りたい 有給や祝日の情報保持方法が分かりませんが、土日だけを除いた日数なら、作業用の列を作り、以下のような式を作り、sumで合計を求めたら日数が得られます。 先頭行・・・セルA2とすると =IF(WEEKDAY(A2,2)>=6,0,1) 2行目以降は、下記をコピー =IF(WEEKDAY(A3,2)>=6,0,IF(A2<A3,1,0)) >1週間毎に 月初、月末の週の扱いはどうするのですか? もっと具体的に説明してくれないと、具体的な回答はできません。

ken460-y
質問者

お礼

土日を調べる関数があるなんて初めてしりました。 どうもありがとうございました。

関連するQ&A

  • EXCEL 勤務表作成(長文です)

    今回、新たに皆様の助力を戴きたく投稿いたします。 当方、職場の勤務表を作成することになり、ただ単に、打ち込むことは (誰でも)できるのですが、もう少し効率よくできないものかと模索しておる次第です。あくまで理想論として以下に例を記します。 宜しくお願い致します。 例(sheet1) A列|B列|C列|D列|E列|F列 勤務者1 |勤務者2 |勤務者3 日 |   |夜 |   |明 | (sheet2) A列|B列|C列|D列|E列|F列 勤務者1 |勤務者2 |勤務者3 8.0|   |   |9.0 |  |7.0 (伝わらないかもしれませんが)上記の様式を仮としまして・・・ 要領は(sheet1)の3行目~下に向かって各自の勤務形態を日々 「日(日勤)」、「夜(夜勤)」...etc のように打ち込んでいくと (sheet2)の3行目以下が自動で時間が表示されるようにしたいのです。 結果的には「勤務形態を打ち込んだsheet」と「実際の勤務時間が 打ち込んであるsheet」ができればいいのですが・・・ 質問は2点です。 (1)この理想は実現可能なんでしょうか? 可能であればどんな関数を使用するのでしょうか? (2)勤務者名が2行にまたがって表示しているのは意味がありまして、 合計時間の集計上「夜」や「明」(夜勤関連の勤務)は (sheet2)のように隣の行に表示させたいのです。 これも可能ですか?これが無理でも仮に(1)が可能ならば、 (sheet1)に打ち込む時点で隣の行に打ち込めば可能だと思うの ですが・・・ 繰り返しになりますが、ひたすら打ち込めば2枚のsheetを作成する ことは可能だと思います。ただ、勤務者がかなり多いことと、勤務階ごとに作成しなければならない状況がありまして、 なんとか効率よくできないものかと困っている次第です。補足はいくらでもしますので宜しくお願い致します。

  • 勤務表作成について

    ここでも、いろんな勤務表の作成の仕方をみたのですが、もうちょっと複雑な勤務表の作成について教えてください。 ・○年○月○日から○年×月×日(4週間分)と指定することにより、日付と曜日が 表示される ・一週間ごとに一列間がほしい。 ほかにもほしいのですが、最低上記の2点をクリアしたいのです。 どのような方法があるか、ぜひ教えていただけませんでしょうか? お願いいたします。

  • Excelで勤務管理と座席表作成をしたい。

    仕事で勤務管理と座席表作成を行っています。 勤務はシフト勤務で勤務に応じた座席表も作っています。 現在座席表はほぼ手入力でやっており非常に手間がかかっています。 1か月分まとめて作っていますが非常に面倒なので勤務表を貼り付けると座席表ができるようにしたいのですがなかなか制限があり苦慮しています。 よい方法があればご教示願います。 シフト表 1列目に日付(1日~末日) A列に名前があり、A~Gの勤務シフトがある。(全部で20人) 座席表 全部で10席。固定の席はなく出勤者に応じて決めています。 シフト表に応じて座席表に人を埋めたい。 使用ソフト:Excel2003(ただしセキュリティー制限でマクロ、VBAが使えません。もちろん制限解除はできません。) なので関数を駆使しないといけないです。 シートは別になってもOKです。 仮にSheet2のA1~A10に名前が埋まるようにしたいです。

  • エクセルで勤務表・・

    勤務表作成について教えてください 浅海も質問させていただいたのですが・・ たとえば A1.A2.A3と従業員の氏名を B1.B2.B3とB列には 出勤時間を C列には退社時間を入れた表をつくり D列から右の列には 勤務シフト(出勤から退社までの時間帯)を帯状に作成したいのですが・・1日の会社の営業を朝9時から夜10時までとして シフト表を簡単に記入できたらと思っています。できれば 休憩時間も D列に記載して自動入力できれば最高なのですが  それ以上の機能は もとめませません   作成方法教えていただけませんか? グラフのテ入力しかありませんか? よろしくお願いします

  • エクセルでの勤務表時間計算についてですが、例えば"A"勤務は8時間"B

    エクセルでの勤務表時間計算についてですが、例えば"A"勤務は8時間"B"勤務は6時間とします。 一ヶ月を通してA・B勤務が10日ずつあったとして勤務表に勤務を入力していくと月のトータル勤務時間数が自動的に出る関数はないでしょうか?別のシートにあらかじめ時間を登録しておいてそこから引き出すような格好になるのでしょうか?わかりにくい質問ですみませんがよろしくお願い致します。

  • 勤務実績表入力にオブジェクトを含む実績入力自動化

    月単位の勤務実績表を作成しています。 一列目に日付、一行目に時間の見出しをつけていますので、 【B列が0時~0時30分、AW列が23時30分~0時(一列=30分) 2行目が一日32行目が31日】 という表があります。 勤務パターンが3種類ありますので 同じシートの別欄に実際に勤務した時間をオブジェクトの矢印にて示した 3パターンのひな型を作り、実績に応じて3つのうちのひとつをコピーして 勤務実績表にペーストする方法で作成しているのですが、この作業を 自動化する方法はあるでしょうか? 例えば、ひな型の3勤務パターンをそれぞれAパターン、Bパターン、Cパターンとして 勤務実績表のそれぞれの日の末尾(AX列)にAと入力すれば、勤務実績表の 該当日に矢印オブジェクトを含む内容が自動で反映されるようなマクロ、関数など ありましたら、ご教授ください。よろしくおねがいします。

  • エクセル勤務表を作成したい

    色々調べてみたのですが、力が足りずうまく行かないので教えてください。 (1)9:00~18:00が基本の労働時間です。 (2)18:00以降は残業 (3)昼休憩は12:00~13:00の一時間で、その分実働から引きたい (4)12:00までの勤務は昼休憩を引きたくない (5)13:00からの勤務は昼休憩を引きたくない (12:00からの勤務は13:00からと同じになります) 今までは以下のような式を入れてました。 A列:日付(問題なし) B列:曜日(問題なし) C列:勤務開始時間(勤務する方が入力予定) D列:勤務終了時間(勤務する方が入力予定) E列:実働時間 =IF(C11="","",(D11-C11)-F11-G11) F列:休憩時間(1時間)・・・・ここは無くてもいいです。 =IF(C11="","",IF(AND(D11<=TIME(12,0,0)),TIME(0,0,0),TIME(1,0,0))) G列:残業時間(18:00以降) =IF(D11<=TIME(18,0,0),"0:00",D11-TIME(18,0,0)) これが、いいレベルのものだとは思ってませんが なんとか形になったのですが・・・ (6)9:00前に出勤も残業入れる という条件を出されまして、困っています。 皆さんのお知恵を貸してください! 休憩時間は表示しなくても大丈夫です。 実働が、(4)、(5)の条件を満たしていて表示されることと 残業が9:00前までと18:00以降の合算で出ると良いのですが・・。 よろしくお願いします!

  • Excel VBAを使用した勤務表の作成

    現在、月毎にシート別になっている勤務表の管理をしており、初心者ながらExcel VBAを使って効率的に作成したいと思っています。 勤務表は1行目に日付、A列に従業員の名前が入っています。 その中でつまづいている箇所がありますので以下の2点について教えてください。 ① 従業員の中に三交代制の従業員がいます。  A、B、Cの3つの班に分かれており、その日がどの班なのか分かるように日付の下の行に「A B C A B C ・・・」と順番に記載したいですがどのようにしたら良いでしょうか?  また、この時に月を跨ぐとAから始まらない(前月がBで終わると翌月1日はCから始まる)と思うのですが、シートを跨いでABCの3つが続いていくようにしたいです。 ② 前記①が完了したら、三交代制の従業員の隣にそれぞれABCの表記をし、日付のABCと従業員のABCがそれぞれ交わる日のセルに「出勤」と入れたいです。 職場のパソコンで作業しているため、現在手元にデータがなく、参考となる画像がつけられずに分かりづらいとは思いますがご回答頂けると助かります。 よろしくお願いします。

  • エクセル関数:シフト表を超過勤務表へ入力したい

    エクセルシート1に勤務表、シート2に超過勤務一覧表を作っています。 勤務形態としてはA,B,C,AB,BCの5種類あり、 週2回A,B,Cの各2名の6人体制(7時間労働が6人)、週5回はAB2名,BC2名の4人体制(8時間労働が4名)で動いています。 A,B,Cという勤務体制とAB,BCという勤務体制が混ざることはありません(例:2月10日に田中さんがA,同日に佐藤さんがBCという勤務体制はあり得ない) この週5回のAB,BCという勤務体制の日については1時間の残業が発生しているため、その管理を超過勤務一覧表にて管理しています。(A,B,Cという勤務体制の日については残業が発生していないため管理はしていません。) 超過勤務一覧表ではセルA1,2,3,,,に日付、B1,2,3,,,に名前、C1,2,3,,,に勤務時間(例:ABであれば19:00~20:00、BCであれば20:00~21:00というように記載)、D1,2,3,,,に残業時間数(毎回ほぼ決まって1時間)を記入しています。 現在はシート1の勤務表をプリントアウトし、それを片手に持ちシート2の超過勤務一覧表へ毎回手入力していますが、少しでも業務負担をはかりたく、 IF関数やVLOOK関数などについて調べてみましたがうまくできませんでした。 勤務表にて2月10日に田中さんと佐藤さんがABという勤務形態、鈴木さんと田中さんがBCという勤務形態として働いた場合、それを上述のような一覧表に一部分でもいいので自動入力できるような関数はありませんでしょうか? すべて手入力の状況から少しでも脱することができればと思っています。よろしくお願いします。

  • 勤務表の就労時間を求める関数について教えてください。

    勤務表の就労時間を求める関数について教えてください。 職場より勤務表を渡されたのですが、画像にある2つものが別々のシートに別れています。  ・画像の上側:勤務報告書  ・画像の下側:労働時間早見表 「勤務報告書」(上側の画像)の就労時間(I列)の欄に、下記の関数が入力されているのですが 「労働時間早見表」(下側の画像)にいくつかの勤務場所の早見表があり、そのうちの1つを参照しに いっています($B$17とか)  ※I7にある式  =IF($H7<>"",OFFSET(労働時間早見表!$B$17,0,MATCH($H7,労働時間早見表!$C$13:$X$13,0)),"") 「労働時間早見表」(下側の画像)の画像にある範囲   ・始業時刻がB3~B8   ・終業時刻がC2~AH2 という範囲に、各始業時刻と終業時刻に対応した就労時間が用意されています。 上記のI7に入っている式を、上記の労働時間早見表にある範囲を参照して就労時間が算出ように したいのですが、どのような式に変えればよいのかわからず困っております。 I7へは、どのような式を入れればよいかご教示頂きたくご質問を作成しました。 よろしくお願い致します。

専門家に質問してみよう