• 締切済み

スケジュールのシフトを簡単に作成したい

販売の仕事をしていてシフト作成を毎月しているのですが 人数が11人分とかなり大変で作成と調整でとっても時間がかかるので アナログ作業をなんとかデジタル処理できないかと考えています 実際に行っている作成要領としては、 1.あらかじめ個人別に希望の休みを固定して決定 2.指定休をまず5日連勤にならないようにある程度ふりわける 3.勤務の〆日が15日(社員区分によっては10日)なので   月の前半・後半で取れる休みが決まってきます 4.一日に必要な動員数を考慮しながら休みを調整します 5.他店の応援要請もありますのでそれも調整します 6.休みが決定したらシフト(早番、遅番等)を偏らないように振り分けます 5,6の調整が出間取ります シフト作成のみならず他の仕事が山積みなのでかなりの負担になっています。 プログラミングはまったくやったことがなく 上記の条件はこんな関数をつかったら、などがわかれば 参考書を購入して作りたいと思うのですが、どのような内容の指導書が あればいいのかすらわからない状況です あと仕上がりのイメージとしては、 *○月○日~×日までの指定休は何日ですか? *希望休を入力して下さい などの条件を入力する画面から入力した後 自動計算でラフ案のスケジュールをつくり そこから細かい調整ができる、という作業ができればいいなと思っています 必要な関数の種類と、VBAが必要だと思うのでこの項目が掲載している 指導書を使いなさい、等のアドバイスを宜しくお願いします ちなみにプログラミングはおろか、エクセルも初級者ですが 独学するやる気はありますので、どなたか精通した方、ご伝授ください!! はやくスケジュール作成の苦労から解放されたいんです…

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

指定休の入力から考えだすと大変だと思います。また、プログラムしづらい要素が多いので、Excelを『作業の補助をしてくれる道具』にする方針で考えてみました。土日と指定休の関係が不明なため日曜日は休みで。指定休=1ヵ月に5日としてみました。Sheet1で処理をします。 ○A2に月の1日を入力します。(2001/10/1のように)  A3は =A2+1 として、これをコピーしA32まで貼り付けます。A33に表題『指定休計』  A2~A32まで書式を『月日』にします。これでA2に入力すれば日付が変わります。  10月31日などがあれば消します。 ○B2は =A2 として、これをコピーしB32まで貼り付けます。  B2~B32まで書式をユーザー定義で『(aaa)』にします。曜日の表示です。 ○C1~M1までは氏名を入力(11名)  日曜日には『***』などを入力しておきます。(入力しないための目印) ○C2~M32の範囲に範囲名 Kinmu を付けます ○N1に表題『休み』、N2に算式 =COUNTIF(C2:M2,"指定休") N3からN32までコピー ○O1に表題『出勤者』、O2に算式 =COUNTA($C$1:$M$1)-N2 O3からO32までコピー ○P1に表題『必要動員数』。P2からP32については、その日の必要動員数を入力します。   P2に条件付き書式を設定(書式→条件付き書式)   『数式が』『=P2>O2』として、書式→パターン→例えば赤を選択、OK、OK   P2を選択してコピー。P3~P32に形式を選択して貼り付け→書式、OK ○Q1に表題『早番』、Q2に算式 =COUNTIF(C2:M2,"早番") Q3からQ32までコピー ○R1に表題『遅番』、R2に算式 =COUNTIF(C2:M2,"遅番") R3からR32までコピー ○C33に算式 =COUNTIF(C2:C32,"指定休")  C33に条件付き書式を設定(書式→条件付き書式)   『セルの値が』『次の値に等しくない』、『5』として、書式→パターン→例えば赤を選択、OK、OK  C33を選択してコピー。D33~M33に貼り付け(指定休を1ヵ月に5日とした) これで、範囲名Kinmuの中に『指定休』と入力すると個人の指定休の日数計と各日の出勤者が計算されます。 同時に、出勤者<必要動員数になるとP列のそのセルが赤くなります。個人の指定休計も5日にならないと赤のままです。 次に、『指定休』と入力する方法ですが面倒なので仕掛けを作ります。(Worksheet_BeforeRightClick) ツール→マクロ→Visual Basic Editor でVBE画面に移動し、プロジェクトエクスプローラのSheet1をダブルクリックして出てきたコードウインドウに下の『Private~End Sub』をコピーして貼り付けます。 Sheet1に戻り、範囲名Kinmuの中で右クリックすると『指定休』と入力されると思います。既に『指定休』と入力されていれば、逆に消えるはずです。初期入力したあと右クリックをして調整して赤いセルが消えるようにします。 早番、遅番は『等』となっており、『偏らない』、『シフトの仕方(サイクル)』が不明なので早番、遅番についてもマウスで入力できるようにしてみました。ダブルクリックで、早番→遅番→未登録と切り替わります。(BeforeDoubleClick) 全てを1画面で見えるように調整すると作業がしやすいと思います。 ご参考に。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、Sheet1をダブルクリックして出てきたSHeet1のコードウインドウに下記モジュールを貼り付けます。(Private Sub~End Sub) Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)   If Target.Cells.Count <> 1 Then Exit Sub   Dim rg As Range   Set rg = Application.Intersect(Range("Kinmu"), Target)   If Not rg Is Nothing Then     With Target       If .Value = "" Then         .Value = "指定休"       Else         .Value = ""       End If       Cancel = True     End With   End If End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   If Target.Cells.Count <> 1 Then Exit Sub   Dim rg As Range   Set rg = Application.Intersect(Range("Kinmu"), Target)   If Not rg Is Nothing Then     With Target       Select Case .Value         Case "": .Value = "早番": .HorizontalAlignment = xlLeft         Case "早番": .Value = "遅番": .HorizontalAlignment = xlRight         Case "遅番": .Value = ""       End Select       Cancel = True     End With   End If End Sub

参考URL:
http://www2.odn.ne.jp/excel/waza/
kanoyuka
質問者

お礼

さっそくのご回答いただいていたのにもかかわらず 質問をした後のPCの調子が悪く、お礼が大変遅くなりすみません。 急ぎで回答が欲しいといいつつ、忙しく、ぜひ近いうち時間を作って チャレンジしてみます! もし途中で分からなくなったら、補足の回答がいただけましたら幸いです 自信がないので… またご報告させていただきます!!

関連するQ&A

  • シフト作成のオートメーション化

    仕事でシフト作成をしております。 この作業をExcelかAccessにて自動化させたと思っております。 条件として、 (1)基本パターンを入力。 (2)従業員の日々の最大出勤可能時間を入力。 (3)作成にスキル・能力を反映。 (4)人員不足時間を表示 (5)表示は時間表示、および棒グラフ。 (6)一定の人にシフトが偏らないようにする。 以上が主な条件となります。 こういったものを作成する事は可能でしょうか? また、こういうものを紹介しているページがありましたら 紹介いただけたらと思います。(貧乏人なのでフリーソフト希望です) どうぞ、よろしくお願いいたします。

  • エクセルで1日のタイムラインスケジュールを作成したいのですが

    エクセルで1日のタイムラインスケジュールを作成したいのですが 例えば下記のような セルA1に会社のシフトコードを入力(AAやABなど)しそのコードが8時間労働の 10:00~18:00のシフトで10:00~18:00のセルに○などで記号をセルに反映する事は可能ですか? 実働時間を○でセルに反映させたいのですが。 ちなみにシフトコード表は事前に作成しコードを入力するとVLOOKUP関数で 時間などを抽出するなどはできます。 セルB1~横軸に30分刻みのタイムライン表を作成したいのですがどうもうまくいきません。 うまく説明できませんが逆に皆さんの技術でタイムラインスケジュールを作成するとしたら どのように作成しますか? 複雑でわかりにくいですがご回答よろしくお願いします。

  • エクセルでスケジュール表作成

    いつもお世話になっています。 エクセル(オフィスXP使用)でスケジュール表を作成しています。 日付は一番初めのセルに日付を入力すると自動的に日数が入力されるよう計算式を(隣のセル+1)で作成しています。1Pに月曜始まりで2週間分の日数が入っています。曜日は固定なのでWEEKDAY関数は使っていません。(直接曜日を入力しています)土日は網掛けをしています。 以上のスケジュール表で、自動的に祝日を判別し、セルの色を変えたいのですが方法はありますか?出来れば祝日の曜日欄には自動的に祝日と入るようにしたいのですが・・・。条件付書式などを組み合わせてなんとか1ヶ所入力すると全て自動で行えるように出来ないでしょうか?どの関数を組み合わせればよいか、もしくは別の方法(シートを別に作成し、祝日だけを入力すると、スケジュールのシートが自動的に変わったり・・・)など、ありましたら教えていただけると助かります。 宜しくお願いします。

  • エクセルでスケジュールを自動作成する方法

    いつもお世話になります。 仕事の「完成日」を入力することで、スケジュールを逆算してくれるような仕組みをエクセルで作成することはできますか? 仕事スタートから、完成日までは約2ヶ月なのですが、完成の3日前、2週間前、1ヶ月前というように、決まった期限で手続きを行う必要があるのですが、毎回スケジュールをひくのが大変おっくうで… スケジュールに完成予定日を入れたら、逆算してスタートまでのスケジュールが書き換わらないかなぁ~と思っています。日付と曜日だけ変われば、項目は日祝にあわせて微調整したいと思っています。 よい方法があれば教えてください。

  • エクセルVBAでのスケジュール作成

    いつも大変お世話になっております。 本日も質問させてください。 会社指定の異なる2つのブックのエクセル表に自分の部署の社員全員のスケジュールを入れなければいけません。 (1つは月間、もう1つは週間で、それぞれ各月、各週毎にシートがあります。) VBAのフォームを作成し、週間スケジュールは自動でセットできるようになりました。 ですが、月間のスケジュールがうまくいかなくて困っています。 (入力フォームは共通のものを使用します。) スケジュールの表はシートが月別になっていてA列に社員名、1行目に日付、2行目に曜日、3行目に祝日が表示されるようになっています。 4行目からが各社員のスケジュールですが、1人の1日分のスケジュール入力のセルは2列×3行=6セルです。 (わかりにくいので図で表現したかったのですが、ずれて表示されてしまって余計にわかりにくいのでやめてみました。ちなみに、1人目の1日目のスケジュールのセル範囲はB4:C6となります。) そして、各セルには入力する項目が決まっています。 (この項目についてはフォームで作成済みです。) セルが多いため、Rangeを使おうと思っても指定するのが困難です。 個人的にはRangeのセルの値を別シートに作成した表からindexで検索できたらなぁ。と思っています。 できるかどうかすらわかっていませんが。(汗) もちろん、もっと効率的な方法があればそちらを教えていただきたいです。 週間スケジュールのセルから入力値をもってくる事も考えたのですが、月間は1日から必ず始まっていますが、週間は月曜日からのため、月や週によって日付が異なることなどから、やはり私には難しいのです。 よろしくお願いします。

  • EXCELの関数を使ってシフト表を作成したい。

    EXCELの関数を使ってシフト表を作成したいのですが、下記の条件により関数やマクロを組むことは可能でしょうか?どなたか教えてください。 ・3~4つのグループよりバランスよくシフトを組みたい。 ・1つのグループには4~6人在籍している。 ・午前と午後に各2人を配置。 ・同一グループでの配置はNG。 条件が多くて申し訳ありませんが、シフトを組むのに毎度難儀をしております。 どなたか教えていただけると助かります。

  • シフト管理表の作成でわからないことが・・・

    エクセルの関数やマクロはほぼ初心者で、わからないことだらけなので教えてください。 シフト管理表で、半月ごとのシフト表(作成用)で、日単位のシフト表(自動作成)が出来るようにしたいのです。 半月シフト      a     b    c     d     e  ・・・(人) 1/1 1~5        2~3        2~5 1/2 1~5   2~5        2~3 1/3 2~5   1~3  2~3 上記ように作成したら日単位で 1/3 b 1~3 l c 2~3 l a 2~5 l のように日単位で別シートに自動作成できるようにしたいのです。 (dとeは日単位には表示されずに、出勤者のみ時間が早い順に表示) フォーマットは決められており、現在手入力の為ミスが多く時間もかかり・・・ わかりにくかったらごめんなさい もしかしたら簡単かも?しれないけどまったくわからないのでお願いします。

  • 少人数企業での勤務シフトの自動作成ソフトについて

    10人ぐらいの小規模企業での勤務シフトの自動作成ソフトを探しています。 勤務時間は、8時から17時のみで、夜勤等はありません。 会社全体の休日もありません。 業務に必要な人数だけ入力して、後は個人の休みを指定すれば、自動的にシフトを組んでくれるソフトを探しています。 実際には、8人の従業員さんがいて、日々の業務には、5人で対応できる場合の月間でのシフトの自動作成ソフトです。 有料、無料は問いません。 よろしくお願いいたします。

  •  ワークスケジュール ガントチャート

     仕事でワークスケジュール表が必要で、日別単位でその日の出勤者。作業内容を書ける欄があるものを作りたいと考えています。 その月のグループシフトを入力したら自動で日別出勤者が表示され印刷できるようなソフトはないでしょうか?フリー・シェアは問いません。

  • シフトの決め方について(長文です)

    この秋からシフト制の店舗でパートをしています。上から、店長・シフト表作成担当のAさん・他の先輩方数人・私・私より少し後に入社したBさん。みんな同じパート雇用です。本部の担当者はいますが、面倒ごとにはあまり関わらないスタンスの様です。 シフトの決め方でモヤモヤします。 まず、前月の半ばを過ぎると翌月のシフト表が張り出されます。ここに、皆それぞれ休み希望を記入します。希望日なので、家庭の事情や通院日など、どうしても取りたい休みを記入しますので、書いた日はお休みになります。 だいたいみなさん、月に2〜4日程度の希望日を出しています。その他は人数調整でお店側が決めたお休みをとることになります。 私のモヤモヤポイントは、シフト表を張り出した時点で、シフト作成担当のAさんが自分の休みを殆ど全て希望休扱いで記入し終わっていることなんです。 希望休=何があってもこの日は休むし、交代するつもりはありませんよ、という意思表示になる訳です。それなら、Aさんと同じ様にみんながみんな、自分の休みたい日を全て希望休にして提出してしまうと、シフトを組めなくなってしまうのは誰にでもわかることです。ごちゃごちゃ書いてしまいましたが、要はシフトを作成するAさんだけ、自分の思い通りのシフトが組めるのは不公平に思えてしまっています。(遠慮とか気遣いってこの方にあるのかしらと正直驚いています。)また、勝手にシフトを変えられていることもあり、「ここ変えたけど、希望休じゃなかったから、出勤にしたけど、大丈夫よね?」と言われることが何度かあり、入社したての不安や緊張から断ったらどう思われるか怖くて何も言えませんでした。今までシフト制の職場は沢山経験してきました。一度決まったシフトを簡単に変えるのって、凄く失礼だと思うのですが、せめて変える前に一言欲しかったのですが皆様はどう思われますか?

専門家に質問してみよう