• 締切済み

エクセルで勤務日程表を作りたい!

エクセル2010を使って、添付した画像のような日程表を作りたいです。 月間のシフト表と日程表は別のエクセルブックです。 実際の従業員は20名いる上、勤務時間もバラバラなので「早番」「遅番」と設定する事が出来ません。 日程表は、一番左の列がA列とすると、A列、E列、H列、L列に時間列が入ります。 勤務時間外の時間帯のセルをグレーで塗りつぶしたいのですが、 このような表を作るにはどうしたら良いでしょうか? どなたかお力を貸して頂けませんでしょうか?よろしくお願い致します。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • mr_2kasa
  • ベストアンサー率0% (0/0)
回答No.2

以前、私も勤務時間内に色を付けるエクセルのシートを作成したことがありますので、参考になるかと思います。 日程表に関してですが、以前私が作成したものは下記のものになります。 多機能 勤務シフト表(ガントチャート式) http://excel-template.jp/article/353095524.html 質問者様と同様1ヶ月分の30枚のシートを1つのブックに収めています。 こちらの場合、白地の表内に赤や緑で線を引いていますので、こちらの色を替えることで質問者様の要望に応えられると思います。 (表全体をグレーにして、線の部分を白くすれば時間帯以外のセルがグレーで塗られたように見えます) ただし、ご覧のとおり、私のものは名前が縦に並び、時間帯が横に並んでいて、質問者様とはレイアウトが異なります。 この点についてですが、質問者様のように縦に時間帯を並べるのは、横に比べて計算式の入力が煩雑になるかと思います。 (カーソルを+にしてのオートフィルで、式がうまく複製されない可能性があります) このテンプレートでは、休憩の判定などで計算式が複雑になっていますが、基本的な計算の手順は以下の様になります。 (1) ・退勤時間から出勤時間を出して、勤務時間を出す ・出勤時間を、セル1つ分の時間帯で割る ・これで、白くすべきセルの数が求まる (2) ・表の出勤時間に該当するセルに(1)の数を表示させる ・その次のセルには、前のセルより1引いた数を表示させる ・これで、出勤時間と退勤時間の間のセルには1位上の数字が入る (それ以外は、0かマイナスの数値になっている) (3) ・セルの条件式で、1以上のセルには色を付ける この手順で、要望する表は作成できると思います。 もちろん、ここで一番難しいのは、(2)の計算式の組み立てです。 具体的には (条件) (1)前のセルが1以上なら、前のセルより1引いた数を表示 (2)違ければ、そのセル自体が出勤時間に該当しないか判定 (3)両方違えば0を表示 つまり、以下の式になるかと思います。 =if([一つ前のセル]<>0,[一つ前のセル]-1,if([このセルの時間]=[出勤時間],[(1)の値],0) 実際にどのような計算式が並ぶかは、私の作成したシフト表の式を参考にしていただければと思います。 ダウンロードした段階ではセルに保護がかかっていますが、パスワードはありませんので、書式のセルの保護を解除していただければ数式を見ることができます。(数式部分は、非表示になっているので、列の再表示で表示してください) 以上、長々とした説明で申し訳ありませんが、上記の計算式の条件をIF関数で判定すれば、時間帯が縦に並んだ表の作成も可能だと思います。 頑張ってください!

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

補足をすべきだ。 >添付した画像のような日程表 添付画像が全体的に文字が小さく、ぼやけて見えない。(シートの範囲は広いものを添付すると、こうなるようだ) 質問者自身で質問を投稿後に確認ぐらい、すべきだ。 人数を2、3名にして、データ例(シートの状態)を質問文に「テキスト」で挙げること。やりたいことの説明文章も添えて。 日程表は1シートで、勤務時間表は1日1シートなのか。

xx_HELP_xx
質問者

補足

ご指摘ありがとうございます。配慮が足らず済みませんでした。 シフト表は1カ月分を1シートに入力されており、勤務日程表は1日1シートで作成しています。(1カ月分を一つのブックにまとめています) 1月1日の場合、A3のセルより下に従業員の名前、B1のセルに日付、B2に曜日、B3より下に従業員の勤務時間が入力されています。   A  B  1 1/1 2     Sun  3 鈴木 12:00-5:00 4 山田 5 佐藤 3:00-10:00 6 渡辺 10:00-5:00 7 田中 2:00-8:00 それを、別のブックの日程表に、当日勤務する従業員の名前と勤務時間、更に勤務時間外の部分はセルをグレーで塗りつぶしたいのです。 1月1日の場合、A4セルより下に時間、B~N2(最大10名まで)に当日勤務する従業員の名前 B~N3に勤務時間を表示したのですが、A,E,H,L列にam8:30からpm10:00までの30分刻みで時間列が入ります。   A    B       C      D    E    F 1   1/1(Sun) 2    鈴木     佐藤    渡辺        田中 3    12:00-5:00 3:00-10:00 10:00-5:00     2:00-8:00 4 8:30 5 9:00 6 9:30 7 10:00 どうぞ、よろしくお願いします。

関連するQ&A

  • エクセルで勤務表・・

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

  • エクセルの勤務表(マクロ)についての質問です。

    エクセルの勤務表から、日付別に出勤者とその出勤者の勤務を抜き出すマクロを作りたいのですが、途中で分からなくなってしまい困っています。 初めまして。私はマクロを初めてまだ、2ヶ月の初心者でございます。 質問内容に、不手際がありましたら、ご容赦ください。 勤務表マスタには勤務表があり、それ以外にsheet1 からsheet30まで、30枚のシートを用意しておき、日付別にsheet1に4月1日の勤務者とその出勤者の勤務を(早番はB3から下に表示し、遅番はB8下に表示するようにします。)抜き出し、同じようにしてsheet2には、4月2日の勤務者とその出勤者の勤務を、同じように、それぞれB3とB8に抜き出し…というように、30日分抜きだしたいのです。休みの人は表示しません(画像写真を参照願います。見にくい写真で恐縮でございます。) <勤務表マスタ> 名前 4月1日 4月2日 4月3日 4月4日… 坂本 遅番 早番 遅番 休み… 井端 早番 休み 早番 遅番… 長野 遅番 早番 早番 早番… 阿部 遅番 遅番 遅番 早番… 村田 休み 早番 遅番 遅番… 高橋 早番 遅番 休み 遅番… <sheet1=4月1日> (B3、C3から下に) 井端 早番 高橋 早番 (B8、C8から下に) 坂本 遅番 長野 遅番 まずは、勤務表から4月1日だけをとりあえず抜き出そうと、マクロを作って、勤務表マスタから、sheet1である、4月1日には、転記できたのですが、同じように、sheet2(4月2日)、 sheet3(4月3日)…と勤務表マスタから、各シートに転記するには、どうすれば良いのか?分からなくなってしまいました。 力技で、このマクロの「Sheet1」の部分を「Sheet2」にするようにしてといった感じで、あと30個書けば、できるような気もしますが、膨大な行数になりますし、何か他の方法をと考えたのですが、まだまだ、初心者で、どうすれば良いのか全く思いつきません。ここまで、インターネットで調べたりして、何とか作ったもので、全く幼稚なマクロかと思いますが、なにとぞ、ご鞭撻のほど、よろしくお願い致します。 Public Sub test() Dim strSerch1 As String Dim strSerch2 As String Dim LastRow As Long Dim i As Long, j As Long, k As Long '検索する文字を以下の二つの変数に代入 strSerch1 = "早番" strSerch2 = "遅番" 'Sheet1に「早番」の人をリスト化するための変数を設定 '最初に入れるのが3行目なのでjに3を代入 j = 3 With Worksheets("勤務表マスタ") '.Cells(.Rows.Count, 1).End(xlUp).Rowで最後の行がどこなのか調べて 'LastRow変数に代入する。 LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「早番」の人がいたら、Sheet1の3行目から、リスト化する。 If .Cells(i, 2).Value = strSerch1 Then Worksheets("Sheet1").Cells(j, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(j, 3).Value = .Cells(i, 2).Value j = j + 1 End If Next i End With 'Sheet1に「遅番」の人をリスト化するための変数を設定 '最初に入れるのが8行目なのでkに8を代入 k = 8 With Worksheets("勤務表マスタ") LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 2 To LastRow 'ここで2列目を検索して、「遅番」の人がいたら、Sheet1の8行目から、リスト化する。 If .Cells(i, 2).Value = strSerch2 Then Worksheets("Sheet1").Cells(k, 2).Value = .Cells(i, 1).Value Worksheets("Sheet1").Cells(k, 3).Value = .Cells(i, 2).Value k = k + 1 End If Next i End With End Sub

  • エクセルで勤務表を作りたいのですが関数がわからなく困っています

    こんにちは。 エクセルで15人程の月間勤務表を作りたいのですが、勤務体系がたくさんあり、時間により□■△▲▽▼◆◇などで区別して表(1つのセル)に入れたいと思います。 この際、 (1)1個1個記号を入れるのではなく、全部のセルにプルダウンリストとして選択出来るようにしたい。 (2)(1)で出来た勤務表の1ヶ月の合計欄(右端)に「労働時間」を表記したいのですが、(例えば□は6時間 ■は8時間と予め決まっており、表には■等の記号しか入っていないのですが、合計欄にだけ時間を表示させたい)どのような関数を使って作成すればいいのでしょうか? なお、当方VBA等は全くわからず、初心者レベルです。 4/1より必要となる為どうかご教授お願い致します。

  • エクセルで勤怠表作成について教えてください

    エクセル2007を使っています。 エクセルで勤怠表を作成するのですが、問題点があるので お教え頂ければ幸いです。 1.交代勤務をしています。 早番・遅番・日勤・深夜勤があります。   この区別をしたいです。 2.遅刻、早退が多いので評価に反映させたいです。   極端ですが、1分の遅刻や早退でも、15分単位として勤務時間を減らしたいのです。 3.時間の表現は、通常「8」時間、15分単位としての遅刻、早退などがある場合は、 「7.75」時間、「7.5」時間というように勤務時間を表示したいのです。 A1列に出勤時間、B1列に退社時間というような標準的な入力としています。 よろしくお願いします。

  • エクセルの勤務表で給与計算したいのですが....

    勤務表の日付のセルに勤務シフトA、B、C....と入力します。この時、Aシフトは5時間勤務、Bは6時間勤務、Cは7時間勤務だとします。一ヶ月にAシフトが5日、Bシフトが4回、Cシフトが7回なら、合計の時間のセルに98(5X5+6X4+7X7)というように計算される方法を教えてください。

  • エクセルでシフト表作成をしたい

    30人規模のシフト表作成をエクセルでやっています。 月間シフトを作成して、日別シフトも作成しているんですが、これを同時にできないかな、という相談です。 例えば、月間シフトで10月14日にAさんが7時から16時まで、Bさんが10時から19時までのシフトだとすると、日別シフト表の方にAさんとBさんの勤務時間を棒線などで表示させて、各時間帯で人が多いとか少ないとかを視覚的に把握したいのです。 こういった事はエクセルVBAで可能でしょうか。 エクセルでなくても、こういうソフトがあるとかでも教えて頂けたら嬉しいですが、自宅PCだけでなく職場のPCでも使いたいので、可能ならVBAで自作をしたいです。

  • エクセルで勤務表を作りたいのですが・・・【再】

    やはり、わからなくなってきたので、再度質問させていただきます。 使用ソフトEXCEL Ver2000 WinXP使用 今、EXCELにて勤務管理表を作成しているのですが、 関数を挿入する際にどの関数を使用すればいいのかいまいちわからないのでご教授いただけますでしょうか? まず、例として、セル列が A⇒日 B⇒曜日 C⇒区分 D⇒出社時間(1つのセルの中に「10:00」というように入力する) E⇒退社時間(              〃               ) F⇒休憩(15分単位で入力 例:1時間休憩なら⇒60) G~J⇒時間内(セルごとに結合させて使用)通常8時間以内であればこのセルに時間数を表示(例:6時間半勤務⇒6.5) K⇒時間外 8時間以上の勤務時間はこのセルに入力 (例:2時間45分残業⇒2.75) 以上のように入力を進めていきたいのですが、 まず、出社時間・退社時間は手入力となり、出社時間等を入力した際に自動入力で【休憩・時間内・時間外】を計算されるようにしたいのです。(休憩は60分と自動入力できれば嬉しいのですが・・・) 普通の計算式なら入れられそうにも感じたのですが、『休憩』は60進法『時間内・外』は10進法と少々ややこしいので、 わからなくなってしまいました。(こういう進法は会社でこのように入力するように言われました) 他の方の質問・回答など参考にさせていただいたのですが、A列に1:30と入力してB列に1.5と表示させるようにする関数の使い方は見かけたのですが、直接対象セルに表示させる方法を知りたいです。 以上の条件で、どの関数を使用すればよろしいでしょうか? その際の書式設定で変更しなければいけない点もございましたら合わせて教えていただけましたら幸いです。 =追記= この勤務表なのですが、私個人の勤務表になります。 派遣会社から毎月勤務管理シートを送付するように言われていて、エクセルのデータとしていただいていたものなのですが、その中には関数は何も入っていなかったので、作りやすいように関数を入れようと思い作成し始めました。(会社の許可済み) ・退勤時間も24時以降になることはありませんし、休憩なしということもありません。 よろしくお願いします(/_<。)

  • エクセルで、勤務表を

    勤務表を作りたいと思っています 3交代のシフト制の会社で、各時間帯にどの位の人員が配置されているか、一目瞭然の表のようなものを作成したいと考えています 例えば、(1)5:00~16:00 (2)8:00~19:00 (3)19:00~9:00というシフトで、各時間帯にA~Iまでを休みを含めて配置した時に、現場にいる人員の管理ができるようなものを考えています エクセル上で、(1)5:00~16:00に配置された人の欄に、その時間が色が変わるなど・・・ 表現が難しいのですが、そのように表現できないかと考えています もし何かアイデアがあればご教授ください 

  • 5人のシフト勤務シフト表を作るには

    5人分の勤務シフト表を作成したいのですが、なかなか作成できません。 管理職は毎月、土日がお休みです。 一般社員はシフト制です。現場は管理職は1人で一般写真は4人で合計5人です。 まず、月が28日の場合は月の労働時間が160時間、月が30日に場合は168時間、月が31日の場合は176時間です。完全週休2日制です。勤務体系は早番が2人、遅番が2人で、必ず一人は休みます。宜しく、お願いします。

  • エクセルで可能でしょうか?

    すいません。エクセル事態よく理解していないのでトンチンカンな質問かもしれませんが。エクセルで次のようなことは可能でしょうか? 123456・・・ 合計(あ・いの合計) あいあおさあ・・・  4 数字ではなく文字で、あ・いの出てきた合計数を出したいのですがむりでしょうか?規則正しく出てくるものではないのでやはりむりでしょうか、何か良い知恵があったら教えて欲しいのです。またこんなソフトあるよでも、結構です。勤務シフトを作っているので、早番や遅番の一ヶ月の合計をかぞえるのが面倒なので、勤務表はエクセルで作っているので、何とかできないかなあと思っています。 

専門家に質問してみよう