• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで割り振りしたい。)

Excelで部屋の割り振りを行う方法

このQ&Aのポイント
  • Excelを使って10人の参加者が3つの部屋を選び、回ごとに割り振られる方法について説明します。
  • 詳細な要件として、各部屋の均等な割り振りを行うために、10人の参加者を部屋ごとに人数が均等になるように割り振ります。
  • また、Excelのマクロを使用せずに割り振り表を作成する方法も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • masnoske
  • ベストアンサー率35% (67/190)
回答No.5

> ・各部屋の各回の人数はなるべく均等になるようにします。 この条件も曲者ですね。 (1,1,3) よりも (1,2,2) のほうが均等(=ばらつきが少ない)と考えますが、(1,1,3) の組があるのは許されないのでしょうか。 そもそも必ず (1,2,2) になる答えがあるのかどうか。 仮に (1,1,3) が許されるなら、200件を10~15分で手作業振り分けできそうです。そんなに時間を掛けられないというのなら、手作業をマクロ化することは可能です。でも、できるだけマクロを使いたくないんですよね。 また、せっかくマクロでやるのに、最適解がどうかわからないというのも気持ち悪いです。

ryou4649
質問者

お礼

ご指摘のように各部屋の人数にバラツキを許可して、手作業を加えた半自動で解決できました。

ryou4649
質問者

補足

(1,1,3)の組が許されないわけではないです。 というか、目から鱗です。 今まで、自分で作ったものでは、どうにもうまくいかなかったのですが、(1,1,3)を許したらどうなるか、明日早速試してみたいと思います。

その他の回答 (4)

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.4

 実際にコードを組んだ訳ではないので出来るかどうか分かりませんが、数独のアルゴリズムは応用できないでしょうか?  回数(1,2,3)と部屋(A,B,C,D,E,F)の3*6の18マスで、各マスには参加人数分の子マスがある、といったデータ形式ならば、既存のアルゴリズムが利用できそうな気がしますが。

ryou4649
質問者

お礼

ありがとうございます。次の3連休あたりに数独のアルゴリズム研究してみたいと思います。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

各参加者の部屋を回る順列は、以下の6通りあります。 (1,2,3)(1,3,2)(2,1,3)(2,3,1)(3,1,2)(3,2,1) それが200人ということは、6の200乗の組み合せから答えを見つけなければなりません。マクロで総当りするのは、現実的ではないので他の方法を検討する必要がありますね。

ryou4649
質問者

補足

おそらく答えのパターンも数多くあるんだと思います。 そのウチの1つが分かればいいのですが… 最初、もっと簡単だと思ったのですが、やり始めてみるとものすごく難しく困っています。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.2

簡単な関数と手作業をして良いなら方法はありますが、関数やゴールシークを使って一発で求めたいというのなら難しい。 この例であれば、以下が答えの1つになるかと(他にあるかも)。 1(B,C,D) 2(F,A,C) 3(D,B,A) 4(F,C,B) 5(A,D,E) 6(B,E,F) 7(E,A,D) 8(C,D,B) 9(A,F,C) 10(C,B,F) 部屋の人数割は、 A(2,2,1) B(2,2,2) C(2,2,2) D(1,2,2) E(1,1,1) F(2,1,2)

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.1

希望者数から各回別の各部屋定員を決め、一人ずつ希望から割り振っていくことになると思います。簡単に関数で割り振ることはできません。マクロならできなくありませんが、かなり面倒です。手動で行うのが現実的です。

ryou4649
質問者

補足

実は、対象者が10名でなく200名前後となるため、手動は困難なのです。

関連するQ&A