![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
先日、年間の4直3交代のシフト表の作成をお願いしたのですが今回は年間のシフトを元に週間の予定表に自動入力出来ないかよろしくお願いしますm(_ _)m
※この写真のソフトは正規のEXCELではありません。再現のために作ったものです。
元々の仕様が「B4」に日付を入力すると「B3」「C3」「C4」「D4」「E4」「F4」「G4」「H4」が自動入力されるようになっています。
本題はこれではないのですがこれももっと楽に入力出来る方法があれば教えて下さい。
本題ですがABCDのグループがあり各グループ5人所属しています。
「A6」より下は氏名のみが入ります。
現在この週間勤務表は各マスにドロップダウンリストを作成してあって(1.2.3.定休.有給)のリストから選択して作成しているため時間が掛かります。
先日教えて頂いた年間のリストを元に例えば「B4」を入力すればABCDグループ5人×20人分のシフトが自動的に入るようにする方法はありますか?
ただし、有給を取ったりする場合もあるので後でドロップダウンリストから「G7」のように有給を選択したりもしたいです。
※基本は自動入力で後で編集も出来れば助かります。
![「先日、年間の4直3交代のシフト表の作成を」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/543050760_5fc30d27684ad/M.jpg)
No.12ベストアンサー
- 回答日時:
他の回答者さんが「数式を消さない方法」について回答されないので、若干荒技ですがその方法を投稿します。
まず、週間シフト表とは別のシートに「選択用リスト」などと適宜の名前をつけて、A列に選択する項目を入力します。
A列の書式は「文字列」を指定します。試しに選択項目として、「有休」「欠勤」をA1、A2に入力します。
最後にA3に、入力規則用に修正した以下の数式を入力します。
=CHOOSE(MOD($B$4-1-INT((ROW()-6)/5)*4+COLUMN()-2,16)+1,1,1,1,1,"定休",2,2,2,2,"定休",3,3,3,3,"定休","定休")
ここで重要なのは、A3セルの書式が文字列であることです。つまり、上記の数式を入力してもA3セルの内容は数式の結果ではなく、数式そのものが表示されている状態だということです。
次に、週間シフト表を作成するシートの各班のシフト表示用のセル全てに
=CHOOSE(MOD($B$4-1-INT((ROW()-6)/5)*4+COLUMN()-2,16)+1,1,1,1,1,"定休",2,2,2,2,"定休",3,3,3,3,"定休","定休")
という数式を記述します(全て同じ数式なので一つのセルに記述し、あとはコピーでよい)。
さらに、数式を記述した全セルに入力規則を設定します。
入力規則の「設定」タブの「入力値の種類」で「「リスト」を選択、「元の値」で「選択用リスト」シートのA1からA3を指定します。さらに「エラーメッセージ」タブで「停止」ではなく、「警告」に設定します。
これで、「有休」「欠勤」「数式」の三択が可能になりました。もともと数式が記述されていますので、有休等を選択しなければそのままでOKですが、一旦有休等を選択した場合にも「数式」を選択し直すことができます。
しかし、「有休」「欠勤」は単純にドロップダウンリストから選択入力すればよいのですが、「数式」の場合は選択しても数式の文字列が表示されるだけで、シフト勤務の内容が表示されません。
ここで、数式バーにカーソルを移動し、表示されている数式の末尾をクリックしてEnterを押してみて下さい。
警告メッセージが表示されると思いますが、これに「はい」を返すと、シフト勤務の内容が表示されます。
数式を文字列で入力するという荒技ではありますが、参考になれば幸いです。
![「先日、年間の4直3交代のシフト表の作成を」の回答画像12](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/142736_5fc64c7d13918/M.gif)
No.11
- 回答日時:
No.10です。
前回の回答で漏らしてしまった注意事項を追記します。>これにより、添付画像①のように、数式と入力規則を共存させることができます。
と書きましたが、これはあくまでも「有給」等を選択入力する前の状態です。
一旦、選択入力で「有休」等を選択してしまうと、数式は消えてしまいます。
このため、週間シフト表はマスターのブックまたはシートを作成し、各週のシフト表作成作業は、マスターをコピーしたもので作業する必要があります。
また、誤って他のセルを選択して「有休」を入力してしまうと、そのセルの数式がきえてしまいます。
この場合はメニューの「編集」から「元に戻す」で、数式を復活させてください。
「数式が消えないように」というご質問者のニーズと異なるかもしれませんが、次回の週間シフト表の作成は、前回作成したものを修正するか、マスターコビーから作業開始するかの違いだけで、手間は変わらないと思います。
また、以下の数式
=CHOOSE(MOD(B$4-1-INT((ROW()-6)/5)*4,16)+1,1,1,1,1,"定休",2,2,2,2,"定休",3,3,3,3,"定休","定休")
の中の「INT((ROW()-6)/5)」の部分の6は氏名欄の開始行位置、5は一つの班の人数(全ての班が同じ人数が前提)ですので、例えば、A班に新人の見習いを配置し、コーチングのためA班の1人がサポートにつくといった場合、A班は一時的に6名となるため、この数式は使えません。
No.10
- 回答日時:
既に、他の回答者さんにより殆ど解決済みの中、横から割り込むようで、心苦しいのですが、先日回答させていただいた、年間のシフト勤務表はすでに作成されている状況だと認識していますので、一年間の予定はあるものの、有休等もあるので、週間のシフト表を実勤務の一定の期間前に確定させたいというニーズと理解しました。
だとすると、敢えてこの週間シフト表に「開始日」を入力させる意味はあるのか疑問になりました。
そこで、週間シフト表は今日から4週間後の月曜日からのものを作成するという前提にして作成したみました。
したがって、B4に「=TODAY()-WEEKDAY(TODAY(),3)+28」(最後の+28が4週間後を示していますのでこの数値で何週間後を適宜調整可能です)という数式を入れておき、必要ならここに直接日付を入力するものとします。
さらに、「有休」「欠勤」などを指定するための入力規則の設定についてシフト勤務を表示するは全てのセルに添付画像②③の設定を行うものとします。
これにより、添付画像①のように、数式と入力規則を共存させることができます。
添付画像①では「有休」「欠勤」をリスト化していますが、会社によっては「公休」「休務」「産休」「育休」なども必要かも知れません。
なお、既にNo,9さんが示されたように、班によって異なる数値の調整が必要となり、No.9さんは別表で対応されていますが、数式でも対応可能です。
>C=「B16」D=「B21」の予定です。
ということであれば、添付画像①でB15に記述した数式
=CHOOSE(MOD(B$4-1-INT((ROW()-6)/5)*4,16)+1,1,1,1,1,"定休",2,2,2,2,"定休",3,3,3,3,"定休","定休")
を表示していますが、この数式はすべてのシフト勤務表示セルにコピーできます。
![「先日、年間の4直3交代のシフト表の作成を」の回答画像10](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/142736_5fc4f8b0e679b/M.gif)
No.9
- 回答日時:
2020/11/30 19:09附の[補足コメント]へのコメント、
添附圖參照(Excel 2019)
範圍 B6:B25 には次式を入力するが、係数pm1 は氏名に依って、シートShiftCycleに示す正数pm1(又は負数m2でもOK)に變更の事。
=CHOOSE(MOD(B$4+pm1,16)+1,1,1,1,1,"定休",2,2,2,2,"定休",3,3,3,3,"定休","定休")
A6:A10→氏名A1: 15
A11:A15→氏名B1: 11
A16:A20→氏名C1: 7
A21:A25→氏名D1: 3
因みに、式 =YEAR(F4) を入力したセル F3 を右方にズズーッとオートフィルして居る(オアソビ?)。
![「先日、年間の4直3交代のシフト表の作成を」の回答画像9](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/298588_5fc4e8c12a31b/M.jpg)
No.8
- 回答日時:
>あとドロップダウンリストで有給とかにしてしまうと式が消えてしまいますね(´・ω・`)
>可能であれば例えば12月の第4週の1/2の「G7」をドロップダウンリストで有給に変更した場合、式が消えずに?次の週に変更しても変更した「G7」は元の式通りの表示になることは出来ますか?
mike_gからの回答がないようなので、僭越ながら私が回答したします。
>>mike_gさんへ
もし、私の回答が誤っているようでしたら、その旨、ご指摘ください。
関数式が設定されたセルへ手入力なりドロップダウンリストで値を設定すると、そのセルの関数式は消滅します。
従って、次の週に元通りにするためには、関数式を再設定する必要があります。
従って、「関数式を再設定するのがいやなら、ドロップダウンリストで値を設定してはいけない」ということになります。
それ故、今回のようなケースではマクロでシフト表を作成し、それをドロップダウンリストで更新するのが、もっとも簡単な解決方法です。
但し、マクロを使わなくても、あなたの要求は実現可能です。
あなたの要件をまとめると
1.関数式でシフト表を作成したい。しかし、1度設定した関数式を、次の週に、再設定することは避けたい。
2.作成したシフト表の値だけでなく、”有給”等の値も、必要があれば設定できるようにしたい。
ということになります。
以下のような方法になります。
シフト表の右側に同じサイズの表を作りその右側の表をドロップダウンリストで設定可能にします。
シフト表自体(左側)はドロップダウンリストによる更新は禁止になります。
添付図参照。
右側の表のどこかに”有給”を設定すると、それが、自動的に左側の表に反映されるようにします。
添付図の黄色いセルです。
左側に設定する式は、以下のような手順の式です。
1.右側の表の該当するセルが空白でないならその内容を表示。
2.空白なら、今まで通りのシフト表の値を表示。
なお、右側のセルは有給以外の任意の値が設定可能です。(1,2,3,定休も設定可能)
尚、添付図が、小さくて見づらい場合は、下記URLの図を参照ください。
https://gyazo.com/efed64c5e37a7ff152de245b14355122
この方法で良ければ、その関数式を提供可能です。
![「先日、年間の4直3交代のシフト表の作成を」の回答画像8](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/543026052_5fc4c0d1be055/M.png)
No.6
- 回答日時:
》 2点ほど質問追加させてください
》 C=「B16」D=「B21」の予定です。
私、キャッチボールやラリーを何囘も繰り返すのは嫌いです
單に B16、B21 だけでなく、範圍 B16:G21 のデータも全て教えて下さい。
それとも、貴方から教えられなくても觧る方法があるので、黙って居られたのですか?
No.3
- 回答日時:
下記URLに記載しました。
https://ideone.com/ZTDV83
仕様上の注意
1.このマクロは前回のマクロとは別の標準モジュールに登録してください。
(前回のがModule1なら今回のはModule2にしてください)
2.B4~H4の書式はm/d/aaaであることが前提です。これで、11/15/金のような表示になります。
3.マクロはA列については、更新しません。
B3,C3,B4~H4,B6~H25を更新します。
4.このシートのシート名は”週刊シフト表”にしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- その他(就職・転職・働き方) 内定を3社貰って悩んでます 8 2022/08/10 04:38
- Excel(エクセル) エクセル 全自動シフト表の祝日シフト表示を消すには? 3 2022/04/23 16:43
- 求人情報・採用情報 皆さんでしたらどちらの会社に行かれるか教えてください。 年齢は45歳 男性です。既婚者です 1会社、 4 2022/06/07 08:08
- 転職 転職活動中で2社内定があり迷っています。皆様ならAとBどちらの方が良いと思いますか?理由もお願いしま 1 2023/02/06 12:20
- 会社・職場 派遣社員の業務応募について 2 2022/10/22 21:59
- 正社員 皆さんでしたらどちらの会社に行かれるか教えてください。 年齢は45歳 男性です。既婚者です 1会社、 6 2022/06/04 13:51
- リフォーム・リノベーション 来なかったリフォーム業者 5 2023/08/23 11:49
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- 労働相談 今年の4月で4年目になります。会社員です。 有給消化について質問です。 会社に10月にならないと有給 2 2022/08/27 15:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】for next構文について
-
エクセルで表
-
PDFの請求明細をエクセルにしたい
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
下記マクロでMsgBox "空白です...
-
エクセルでバーコード作成し使...
-
在庫管理表に使うエクセルの関...
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
Excelで50個のセルに同じ文字を...
-
Excel 2019 は、SPILL機能があ...
-
Microsoft Officeの中古は信用...
-
エクセルの表で1年間の曜日を...
-
エクセルで会社の従業員のデー...
-
スプレッドシート、Excelでの数...
-
[オートフィルタ]で抽出された...
-
エクセルでB列でフィルターをか...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報
mike_gさん
回答して頂きありがとうございます。
見事に出来ました(^O^)
2点ほど質問追加させてください。
A.Bグループの式は分かったのですがC.Dグループの式も教えていただけますか?
C=「B16」D=「B21」の予定です。
あとドロップダウンリストで有給とかにしてしまうと式が消えてしまいますね(´・ω・`)
可能であれば例えば12月の第4週の1/2の「G7」をドロップダウンリストで有給に変更した場合、式が消えずに?次の週に変更しても変更した「G7」は元の式通りの表示になることは出来ますか?
mike_gさん
ご指摘ありがとうございます。
データーを送っていませんでしたね。
失礼しました。
tatsumaru77さん
ご回答頂きありがとうございます。
じっくり拝見させていただきます。