![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
勤務予定表を作りたいのですが
出勤日は出・休・出・休・出・休・休・出・休・出・休・出・休・休・休の15日を1サイクルとしその繰り返しが予定となります。一日ずつずらしたパーターンをいくつか作ります。
<イメージ>
サイクル1 出 休 出 休 出 休 休 出 休 出 休 出 休 休 休 ・ ・ ・ ・ ・
サイクル2 休 出 休 出 休 出 休 休 出 休 出 休 出 休 休 ・ ・ ・ ・ ・
サイクル3 休 休 出 休 出 休 出 休 休 出 休 出 休 出 休 ・ ・ ・ ・ ・
サイクル4 休 休 休 出 休 出 休 出 休 休 出 休 出 休 出 ・ ・ ・ ・ ・
・
・
・
個人別にサイクルを割り当てます。
Aさんはサイクル1
Bさんはサイクル2
Cさんはサイクル3
・
・
・
エクセルの表は
月を記入すると自動に日付・曜日が表示されるように設定。
(11日始まり10日締めなので31日の表示のある月ない月がある)
個人名または社員番号を入力すると自動にサイクルが割り当てられられる
<イメージ>
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
月 火 水 木 金 土 日 月 火 水 木 金 土 日 月
Aさん 出 休 出 休 出 休 休 出 休 出 休 出 休 休 休 ・ ・ ・ ・ ・
Bさん 休 出 休 出 休 出 休 休 出 休 出 休 出 休 休 ・ ・ ・ ・ ・
Cさん 休 休 出 休 出 休 出 休 休 出 休 出 休 出 休 ・ ・ ・ ・ ・
Dさん 休 休 休 出 休 出 休 出 休 休 出 休 出 休 出 ・ ・ ・ ・ ・
・
・
・
可能でしょうか?。どなたかご教授ください。
No.5ベストアンサー
- 回答日時:
15日では割り切れない月もあるという事は、毎月の11日が、必ずしもサイクルの第1日目とはなっていない、と考えて宜しいのでしょうか?
例えば、2011年の1月11日からサイクルが始まったとした場合、2011年の1月25日が第1周目のサイクルの最後の日となり、2011年の1月26日~2月9日がサイクルの第2周目となり、2011年2月11日はサイクルの第3周目の2日目に当たるため、Bさんが「出」となり、Aさん、Cさん、Dさんは「休」となり、2011年3月11日はサイクルの第4周目の最後の日に当たるため、サイクル4のDさんが「出」となり、Aさん、Bさん、Cさんは「休」となる、という様に考えれば宜しいのでしょうか?(もしも、そうではなく、毎月の11日にサイクルがリセットされて、11日は必ず、サイクルの第1日目になるのだとすると、人によって年間の「出」の日や「休」の日の日数に差が生じてしまう事になります)
もしも、年や月によってサイクルの節目の日が異なるのだとしますと、使用中のサイクルが始まった起点となる日が、何年何月何日なのかを明記しておかなければ、自動的に計算する事は出来ません。
今仮に、B2セルにサイクルを開始した日を入力し、
サイクル1~サイクル4というサイクルの名称を、B3~B6に入力し、
C3~Q3に1つ目のサイクルの出休のパターンを入力し、
A8セルに何年の何月度の勤務予定表なのかを入力し、
B10以下に各勤務者が、どのサイクルに従って勤務するのかを入力すると、
C4~Q6には、1行上に入力されている出休のパターンから、1日ずつずれた出休のパターンが、
C列~AG列の8行目には日付が、
C列~AG列の9行目には曜日が、
C列~AG列の10行目以下には、その月度における各勤務者の勤務予定表が、
自動的に表示されるものとします。
まず、A1セルに「サイクル開始日」と入力して下さい。
次に、B8セルに「度」と入力して下さい。
次に、A8セルの書式設定の[表示形式]を[日付]の[2001年3月]に設定して下さい。
次に、C4セルに次の数式を入力して下さい。
=Q3&""
次に、D4セルに次の数式を入力して下さい。
=C3&""
次に、D4セルをコピーして、E4~Q4の範囲に貼り付けて下さい。
次に、C4~Q4の範囲をコピーして、C5~Q6の範囲に貼り付けて下さい。
次に、C8セルに次の数式を入力して下さい。
=IF($A$8="","",$A$8+COLUMNS($C:C)+9)
次に、C8セルをコピーして、D8~AD8の範囲に貼り付けて下さい。
次に、AE8セルに次の数式を入力して下さい。
=IF(OR($A$8="",$A$8+COLUMNS($C:AE)+9>DATE(YEAR($A$8),MONTH($A$8)+1,10)),"",$A$8+COLUMNS($C:AE)+9)
次に、AE8セルをコピーして、AF8セルとAG8セルに貼り付けて下さい。
次に、C9セルに次の数式を入力して下さい。
=TEXT(C$8,"aaa")
次に、C10セルに次の数式を入力して下さい。
=IF(AND(ISNUMBER(C$8),COUNTIF($B$3:$B$6,$B10)=1),VLOOKUP($B10,$B$3:$Q$6,MOD(C$8-$B$1,15)+2,FALSE),"")
次に、C9~C10の範囲をコピーして、D9~AG10の範囲に貼り付けて下さい。
次に、D10~AG10の範囲をコピーして、同じ列の11行目以下に貼り付けて下さい。
以上で準備は完了で、後は、
B2セルにサイクルを開始した日を、
C3~Q3に1つ目のサイクルの出休のパターンを、
A10以下に各勤務者の名称を、
B10以下に各勤務者が、どのサイクルに従って勤務するのかを、
それぞれ入力しておき、
月度が変わる毎に、A8セルに新しい月度を、例えば、
2011年7月
或いは
2011/7/1
という形式で入力すれば、
その月度における
日付がC8~AG8に、
曜日がC9~AG9に、
各勤務者の勤務予定表が、C列~AG列の10行目以下に、
自動的に表示されます。
![「エクセルで勤務予定表を作成」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/b/1235215_5497e8e12a512/M.jpg)
ありがとうございます!!!
回答して頂いた内容に感動!。自分の希望した通りにできました。
いろいろ勉強して汎用したいと思います。感謝いたします。
No.4
- 回答日時:
私はVBAを使ってやります。
関数では複雑になると思う。こういうアイデアを生かすにはVBAが出来ないと、関数では複雑になって、自分でやれず、誰かに聞くことになる。
VBAは習得に時間がかかるが、ルールをプログラムに織り込みやすい。
(1)1日づらし
(2)月中日数の変動
などもVBAならできそうだ。
こくみんの祝日などは機械的に決めたパターンを当てはめて良いのか?何も書いてない?
はッきり言って、質問者には関数では無理でないかな。コピペなりして作らざるをえないだろう。
ーー
操作でやる場合に
パターンは、ツールーオプションーユーザー設定リストに定義すると、最初の1セルデータを入れると、連続データの作成的(+ハンドルを出して右へドラッグする)に入れられるのではないか(これを活用できないか)
Aさんに対しBさん分は、1列ずらして最初の「出」など入力し、右へドラッグして貼り付け、月末分以後(11日以後?)オーバーは翌月(回)繰越して張り付ける。
少し作業が楽になるかも。
No.3
- 回答日時:
ANo.1 補足です。
曜日の自動算出は 参考URLなどで可能です。
曜日などにより 出勤者数を調整する必要がなければ
パターン番号は RAND関数を使えばランダムに生成が可能です。
参考URL:http://www.officepro.jp/excelfunc/date/index9.html
No.2
- 回答日時:
作成可能ですよ。
質問文に入力しているんだから、同じように作ればOK。
問題ありません。
楽をしたいなら…
Aさんのパターンを入力したら、そのまま下へコピーして
パターンの最後(右端)のセルを Bさんから最後の人まで選択し、
Shiftキーを押しながらパターンの先頭へドラッグすると、選択したセルを移動挿入できます。
それができたら同様に、Cさんから最後の人までのパターンを選択して移動挿入です。
必要な回数繰り返せば良いでしょう。
あとは、オートフィルでしょうか。
月と入力したセルを横や縦にフィル(選択したセルの右下の黒い点をドラッグすること)すると
火、水、木、金、土、日、月…
と繰り返し表示される機能です。
「ツール」→「オプション」を選ぶ
↓
「ユーザー設定リスト」タブを選ぶ
↓
「ユーザー設定リスト」項目→「新しいリスト」を選ぶ
↓
「リストの項目」項目に必要なパターンをカンマ(,)区切りで入力する
↓
「追加」ボタンをクリックする
↓
「ユーザー設定リスト」項目に「出,休,出,休,出,休,休,出,休,出,休,出,休,休,休」と表示されていることを確認する
↓
「OK」ボタンをクリックする。
これで、出を入力した後にフィルを行うと設定したパターンが表示されるようになります。
あとは好きにコピーするなり移動させるなりしましょう。
No.1
- 回答日時:
Excelはロジカルな作業でしたらなんでも可能です。
だから答えは「可能です」
しかしそれ以上は どのようにその作業をしたいのかが
分からないので答えようがありません。
たとえば 名前の横のセルに パターン番号を入れれば
1日から 31日まで出勤パターンが自動で記入される。
> テンプレートのシートに 必要な出勤パターンを全部作っておき
各セルに IF関数でそれを転記していく
関数を使いたくなければ、マニュアルでコピペする。
などでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessでlaccdbファイルが削除...
-
Access レポート印刷するときに...
-
access2021 強制終了してしまう
-
【Access】Dcount関数の複数条...
-
Vba Userformを前面に出すについて
-
access2019の起動が遅い
-
アクセス ステップインのやり方
-
Accessのクエリで、replace関数...
-
Microsoft365にAccessってあり...
-
実行時エラー3131 FROM 句の構...
-
CSVファイルの「0落ち」にVBA
-
AccessVBAで任意の複数リンクテ...
-
Accessのスプレッドシートエク...
-
Access Error3061 パラメータが...
-
ACCESS VBA でのエラー解決の根...
-
【至急・画像あり】建物or住所...
-
Accessのリンクテーブルのパス...
-
アクセス レポートを開いたとき...
-
Access で半角スペースと全角ス...
-
access2019 チェックボックスと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
Accessのクエリで、replace関数...
-
Microsoft365にAccessってあり...
-
実行時エラー3131 FROM 句の構...
-
ACCESS VBA でのエラー解決の根...
-
Accessレポートのチェックボッ...
-
【Access】Dcount関数の複数条...
-
Accessのスプレッドシートエク...
-
Vba Userformを前面に出すについて
-
access2019の起動が遅い
-
Access Error3061 パラメータが...
-
Access VBA [リモートサーバー...
-
Access で半角スペースと全角ス...
-
Access VBA を利用して、フォル...
-
Access 複数条件検索の設定が上...
-
access2019 チェックボックスと...
-
アクセス レポートを開いたとき...
-
access2021 レコードロックの使...
-
CSVファイルの「0落ち」にVBA
-
Access DAOのExecuteメソッドの...
おすすめ情報