![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
こんにちは
20日を10人×2回ということなので、丁度ぴったりなのですが、ランダムに埋めてゆくと他の条件から上手くいかず再試行が必要な場合もありますけれど、以下ではいかがでしょうか?
(上手くいくようにしてしまうことも可能とは思いますが、そうすると段々ランダムではなくなってきてしまいますので、この方式にしてあります)
条件がそれなりに複雑なのと、「出勤不可日」を関数式に組み込んでしまうと、後で習性できなくなるでしょうから、不可日は別入力するようにしてあります。
また、一気に計算式だけで求めると、相当面倒なことになるので作業テーブルを用いています。
添付図では、6~15行目が担当者一覧と、不可日の入力欄で、C6:V15は作業用のテーブルとなっています。
作業用テーブルがうるさければ、この部分だけ別シートにしても良いですし、文字色を背景色と同じにしておけば、見た目は表示されなくなるようにもできます。
1行目C1:V1は日付のつもりですが、1~20の数字(=日付型ではありません)を単純に入力してあります。
担当者の不可日の入力は、単純にカンマ区切りで入力します。無駄なスペース等を入れると判断されませんのでご注意。
添付図では「3,5」、「7」のように入力してあります。
また、必ず計算がうまくいく保証がないので、リトライが必要かどうかの判断用に、A2セルに式を入れてあります。(リトライが必要な場合は、「要再試行」の表示になります)
前置きはこのくらいにして・・
添付図では、
・C1:V1に1~20の数値(日付ではありません)
・担当一覧(A6:A15)に担当者の名前
・不可日(B6:B15)に勤務不可の日(カンマ区切り)
をあらかじめ入力しておきます。
・作業テーブルのC6セルに
=IFERROR((FIND(","&C$1&",",","&$B6&",")=0)*1,1)*(COUNTIF(OFFSET($A$2,,MAX(COLUMN()-4,1),1,MIN(COLUMN()-2,3)),$A6)=0)*(COUNTIF($B$2:B$2,$A6)<2)
の式を入力し、C6:V15までフィルコピーします。
(ご提示の条件を式にしたもので、勤務可能ならば「1」が表示されます)
(結果的に、後ろの方になると「1」の数は減ってゆくことになります)
・C2セルに
=INDEX($A:$A,AGGREGATE(15,6,ROW(C6:C15)/(C6:C15=1),RANDBETWEEN(1,COUNTIF(C6:C15,1))))
を入力して、C2:V2にフィルコピー。
(計算としては、作業テーブルの「1」の人からランダムに選出しています)
・チェックのため、A2セルに(必要なければ、これは省略できます)
=IF(SUMPRODUCT(ISERROR(C2:V2)*1)>0,"要再試行","OK")
を入力します。
※ 以上ですが、randbetween関数を用いているため、シート上の空きセルなどに何か入力する毎に、表示内容が(再計算されて)変わりますのでご注意ください。
※ 上記を逆用して、A2セルの表示が「要再計算」の場合は、シート上の空きセルに何かを入力したり消したりして、再計算を試みてください。
(何度かトライすれば、上手く計算できる結果が得られるはずです)
![「エクセルでの勤務表作成、インターバルの設」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/587726_629ad169cfe85/M.png)
この回答へのお礼
お礼日時:2022/06/04 19:43
ご回答ありがとうございます。うまくいきました!
要再試行の数式までつけて頂き、ありがとうございます。
大変助かりました。
お忙しい中、本当にありがとうございました。
No.2
- 回答日時:
済みません。
チェック不十分で投稿しました。30行目の式で、35行目の候補から選択する式になっていて、結果が狂っていました。
30行目の式は、36行目の候補から選択するのが正しいです。
![「エクセルでの勤務表作成、インターバルの設」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/542966551_6299fd0d81ecf/M.jpg)
No.1
- 回答日時:
回答がすぐにつかないのは、EXCELの関数だけでやろうということに、無理があるとか、面倒なことになるとかではないかと想います。
添付画像でも一応できます。 かなり、面倒です。
なお、総員10名で、勤務は3日の空きをおく、1日に2名は詰める、希望休日は叶えるという条件だと、一発の乱数ではうまく当番を指定できず、数度乱数を発生させなおす(空いているどこかのセルに何か入力させるだけです)必要があるでしょう。
最終的に乱数を使いますが、その前段階で、当日に勤務可能な候補メンバーリストを作成し、その候補から乱数で一人を選ぶという方式がいいのではないかと思いました。
![「エクセルでの勤務表作成、インターバルの設」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/542966551_6299f595b3c36/M.jpg)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでシフト表を作成中で困っています。 3 2022/06/22 11:49
- アルバイト・パート アルバイト先の勤務形態について質問です。 現在のアルバイト先は商業施設内の 社員2名のバイト3名の小 2 2022/04/27 16:19
- Excel(エクセル) エクセル:シフト表条件付き書式色付けのカウント方法 3 2022/10/11 21:59
- その他(社会・学校・職場) 急なシフト変更をされました、対処の方法を教えて欲しいです 4 2023/08/05 13:46
- その他(業種・職種) 新聞配達と郵便配達を兼業する新会社は創れないでしょうか? 4 2023/01/26 22:20
- Excel(エクセル) 年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。 4 2022/12/09 04:12
- 求人情報・採用情報 シフト勤務について 2 2023/08/05 16:53
- アルバイト・パート 大学生新人バイトで7連勤は普通なのでしょうか。 2 2023/04/29 17:40
- Excel(エクセル) エクセルの関数 1 2022/06/08 23:38
- アルバイト・パート アルバイトで起こった出来事 2 2023/03/01 11:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
休憩時間が遅い
-
友人が働いてる会社がとんでも...
-
勤務時間と勤務時間の間は8時...
-
退職日まであと4回勤務です。 ...
-
SNS上で業務上横領公表 私が昔...
-
私には消防士の彼氏がいるので...
-
私ばかりが遅番勤務の理由、納...
-
仕事の休憩時間について、教え...
-
損保ジャパンのパートってどん...
-
8時間フルに働く人で休憩って何...
-
工場勤務の人って陰湿な人多く...
-
休日出勤の場合の休憩時間の考え方
-
再度質問です。シフト表から日...
-
歯科助手と受付の正社員なりた...
-
会社にいるおじさんのLINEや声...
-
ドラッグストアに勤務している...
-
保育園入園申請の際の就労証明...
-
大企業のエリートって高級取り...
-
管理監督者の責任範囲について
-
外注の入れ替えの周りへの説明
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
私ばかりが遅番勤務の理由、納...
-
休憩時間が遅い
-
工場勤務の人って陰湿な人多く...
-
日本語での漢字は、3交代勤務...
-
勤務時間と勤務時間の間は8時...
-
退職日まであと4回勤務です。 ...
-
工場の始業時間が早いのはなぜ?
-
大企業のエリートって高級取り...
-
私には消防士の彼氏がいるので...
-
月〜金曜日の週5回契約でアルバ...
-
歯科助手と受付の正社員なりた...
-
否めないの意味を教えていただ...
-
8時間フルに働く人で休憩って何...
-
パチンコ店でバイトをしており...
-
遺言書に関してご教示下さい。...
-
勤務時間が終わっても職場に居...
-
勤務時間が一方的に減らされる...
-
年2回の健康診断の対象者は?
-
たかが一回のミスじゃないです...
-
再度質問です。シフト表から日...
おすすめ情報