![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
勤務予定表を作りたいのですが
出勤日は出・休・出・休・出・休・休・出・休・出・休・出・休・休・休の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で質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- 求人情報・採用情報 皆さんでしたらどちらの会社に行かれるか教えてください。 年齢は45歳 男性です。既婚者です 1会社、 4 2022/06/07 08:08
- 求人情報・採用情報 この求人はブラックだと思いますか? 月給26万5,000円 ~ 35万円 交通費支給あり <想定年収 9 2023/01/07 13:43
- 人事・法務・広報 法定休日に出勤し振休をとった場合の休日手当は週40時間を超えたら支給するのかについて。 全社員参加必 1 2023/05/17 00:08
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- 労働相談 振替休日を従業員自身が指定するのは問題ないですか? 例えば日曜日に会社行事で出勤させる場合、振替休日 2 2023/07/02 14:50
- 労働相談 飲食店勤務のスタッフの勤怠管理について 新規事業で飲食店を始めたのですが、深夜営業もあり勤怠管理が難 2 2023/04/23 15:56
- 求人情報・採用情報 年間休日について 内定いただいている会社が ・年間休日110日 ・週休2日制 土曜、日曜、祝日 休み 7 2023/01/22 02:24
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- 人事・法務・広報 会社の行事などで休日労働させる時、振替休日が休日労働した日の前週or翌週以降、月をまたいだ場合の手当 3 2023/05/21 23:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
access2021 レコード移動を防ぐ
-
Access runtimeでのオプション...
-
【Access】Dcount関数の複数条...
-
access2021 強制終了してしまう
-
Accessのスプレッドシートエク...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
実行時エラー3131 FROM 句の構...
-
Vba Userformを前面に出すについて
-
CSVファイルの「0落ち」にVBA
-
Access で半角スペースと全角ス...
-
ACCESS VBA でのエラー解決の根...
-
チェックボックスにチェックが...
-
accessでlaccdbファイルが削除...
-
Accessのリンクテーブルのパス...
-
access2021 メッセージボックス...
-
Access VBA [リモートサーバー...
-
accessのフォームに設置したボ...
-
アクセスの更新クエリでカレン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
ACCESS VBA でのエラー解決の根...
-
実行時エラー3131 FROM 句の構...
-
Microsoft365にAccessってあり...
-
access2021 メッセージボックス...
-
Accessのクエリで、replace関数...
-
Access VBA を利用して、フォル...
-
エクセルのデータをアクセスに...
-
Accessのスプレッドシートエク...
-
Access VBA [リモートサーバー...
-
Accessのフォーム上のテキスト...
-
accessデータを指定したExcel、...
-
access2019の起動が遅い
-
Accessのリンクテーブルのパス...
-
アクセスクエリの計算
-
Vba Userformを前面に出すについて
-
Access Error3061 パラメータが...
-
【Access】Dcount関数の複数条...
-
【世界はデータで出来ている】...
-
Accessレポートのチェックボッ...
おすすめ情報