
エクセルで不可日と祝祭日が同じ人にならない考慮をしてランダムに毎日の当番表を月毎に作成したいと思っています。
月の予定表に不可日は×を表示、それを利用して当番可能な人の中から毎日一人を選出してなるべく公平になるような当番表を作りたいです。
添付画像の説明としては
行28~29は日付と曜日
B33~B41は稼働者
F33~AJ41は不可日
行31にF33~AJ41の不可日より×の付いていない稼働可能者の中から毎日一人の当番の表示
このような条件でどのような関数を入れたらよいでしょうか?
御教授どうぞよろしくお願いいたします。

No.1ベストアンサー
- 回答日時:
こんにちは
ご質問のイメージはわかりますが、実現するにはいくつかの問題点があるようです。
例えば、列の左の方から順に可能な人からランダムに選定してゆく方法を考えたとします。
この方式の場合、表の右側に多く不可日を設定している人の方が選ばれにくくなり、結果として偏りが生じ、「公平に選定する」のとは異なってしまう可能性があります。
「公平に」を重要視するなら、「順に決めてゆく」方法ではなく「全体を見渡しながら決めてゆく」方法にせざるを得ませんが、これを関数で行うことは難しいと思われます。
(VBAで行えば、ロジックさえきちんと作成できれば可能と思います)
一方で、不可日を自由に記入できるとするなら、そもそもそこに不公平があるので、題意を満たせる保証はありません。
(極端な例として、全員が同じ日に不可であれば、該当者を選定できない)
また、エクセルの関数で実現しようとする場合には、「ランダム」とするには乱数の関数等を使用する必要がありますが、乱数の関数はシートが自動計算の場合に再計算が発生しますので、何かの操作をしたりブックを開いたりする毎に表示内容が変わってしまいます。
想像するところ、このことが利用上は不都合になるのではないかと思いますが・・・
(VBAを利用なさるのであれば、自動実行するような仕組みにしなければ、このようなことは起こりませんけれど)
>祝祭日が同じ人にならない考慮をして
に関しては、どのような考慮をするのか記載がありません。
平日と祝祭日をまったく別にして、同じことを行えば可能ですが・・
例えば、Aさんは平日6日、祝祭日0日当番を行っていて、Bさんは平日1日、祝祭日1日行っていた場合に、祝祭日の当番でAさんかBさんかの判断をどのようにするかということです。
平日と祝祭日を完全に分けて考えるなら、当然Aさんが選定されます。
「いや、Aさんは既に平日6日もやっているのだから・・」というような判断をするのなら、よくあるのは、祝祭日の当番は平日の1.5日分と見做すとか2日分と見做すなどの重み付けをして評価するような方法でしょうか。
この場合には、「平日と祝祭日を完全に分けて」考える方式とは異なり、「祝祭日に重み付けをして評価する」ような考え方になりますが。
・・・などなど、いろいろあると思いますけれど、以下はごく単純化した一例です。
(以下を、修正することである程度のことまでは可能と思いますので)
考え方としては、
1)左側の列から順に選定してゆく
2)平日、祝祭日の区別はしない
3)当番可能な人から、それまでの実績の少ない人を優先して選定する
4)実績回数が同じなら、名簿の早い順(=行番号の小さい順)に選定する
という方式のものです。
2)に関しては、実績のカウントに祝祭日の重みを加えればそれなりの評価は可能でしょう。
(ご提示の表で、日付や曜日の実際のデータ形式や祝日の判断をどうしているのかなどが不明なので、式にはできませんが)
4)については、実績が同じ人の人数をカウントして、その中からランダムに選択することは関数でも可能と思いますが、前述のような問題は残ります。
※ ご提示の添付図がはっきりとは読み取れないので、セル位置を以下の図のように仮定してあります。
(多分、合っているとは思いますが念のため)
添付図では、F31セルに以下の式を入力し、右方にフィルコピーしてあります。
=INDEX($A:$A,MOD(AGGREGATE(15,6,(COUNTIF($E31:E31,$A33:$A41)*100+ROW(A33:A41))/(F33:F41=""),1),100))
※ E31セルが「空きセル」であることを条件にしています。
(正確には、空きセルでなくても良いですが、A33:A41の名前と一致しない値であること)
※ いろいろと問題があり、ご参考までとしての式なので、エラー処理はしてありません。
(該当がない場合などにはエラーになります)

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 当番表の作成 2 2022/06/15 07:40
- Excel(エクセル) エクセルで当番表を作成したいです。 1 2023/08/09 19:53
- Excel(エクセル) 条件付き書式で文字入力 6 2022/08/29 10:40
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- 宗教学 旧統一教会の被害者救済に向けて悪質な寄付を規制する新たな法案は、衆議院本会議で、自民・公明両党や立憲 3 2022/12/10 20:37
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで当番表の作成(休み考慮、完全ランダム)
Excel(エクセル)
-
エクセルで少し複雑な当番表を作成したい。
Excel(エクセル)
-
エクセル 当番表の作り方 エクセルで土日祝日を除いた、平日のみの当番表を作りたいです。 カレンダーま
Excel(エクセル)
-
-
4
Excelにて年間の当番表作成したい
Excel(エクセル)
-
5
従業員増減対応で当番種類の増減対応な当番表
その他(Microsoft Office)
-
6
C列にF列の担当者(A〜)を順番に入れて、当番表を作りたいです。 C列にいれる数式を教えてください。
Excel(エクセル)
-
7
仕事のシフトを組むときに、シフトが同じになる回数を均等にしたいんですが
Excel(エクセル)
-
8
当番表の作成について
Excel(エクセル)
-
9
エクセル 年間の当番表 ローテーションに振り分ける方法がわかりません。
Excel(エクセル)
-
10
Excel 掃除当番をランダムに1名抽選
Excel(エクセル)
-
11
エクセルで当番表を作成したいです。
Excel(エクセル)
-
12
エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をお
その他(Microsoft Office)
-
13
エクセルでシフトをランダムで作るにはどうしたらいいでしょう
固定IP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
近所のゴミ当番。文句を言われ...
-
公務員宿舎でのペット
-
エクセルで不可日と祝祭日の考...
-
大掃除のゴミを玄関の前に仮置...
-
共同のゴミ置き場を複数のアパ...
-
庭にゴミを捨てられ悩んでいます。
-
まだ入居はしていないのですが...
-
親に同棲がバレない方法
-
週に3日以上、交際相手のアパー...
-
ルームシェア相手が私が留守の...
-
2年契約の賃貸マンションを1年...
-
ルームシェアを解消したいので...
-
賃貸物件の解約通知書には退去...
-
県営住宅や市営住宅について。 ...
-
鬱過ぎるルームシェアを解消したい
-
同棲の際に、世帯主を1人にし、...
-
来月同棲するのですが、 会社に...
-
シェアハウスでのセックス
-
会社名義で賃貸を借りていて同...
-
賃貸解約の際、同居人との退去...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
近所のゴミ当番。文句を言われ...
-
コバエが絶えないことについて...
-
公務員宿舎でのペット
-
エクセルで不可日と祝祭日の考...
-
庭にゴミを捨てられ悩んでいます。
-
大家の干渉がひどくて困ってい...
-
地域のゴミ当番について
-
当番表の作成
-
月曜だけ3人火水木金は2人の当...
-
大掃除のゴミを玄関の前に仮置...
-
共同のゴミ置き場を複数のアパ...
-
アパートの問題で悩んでいます...
-
マンションの管理人がマメすぎ...
-
共益費でまかなわれるものとは...
-
階段下のゴミ
-
中学、高校で寮生活中に家族の...
-
松戸市に引っ越し予定です。 ①...
-
国立大学の教職員宿舎について...
-
エントランスリビング等が共有...
-
ゴミ処理のご近所問題について ...
おすすめ情報