• ベストアンサー

【Excel】体験申し込みの人数の振り分け方

いちご狩体験の申し込みを受付センターで一斉に受け付けます。 時間と人数を読み込んで5つの農家に均等に振り分けることは可能でしょうか。 マクロでももちろん構いません。 今は以下のみ入力されています。データは、日にもよりますが100行前後です。 A列・・・申し込み人の名前 B列・・・申し込み人数 C列・・・時間(10:00,11:00,12:00,13:00,14:00) 表計算初心者なので説明が分かりづらいとは思いますが、どうぞ知恵をお貸しください。宜しくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>時間ごとに人数を振り分けたいのです。 人数をできる限り公平に分配することはできますが、時間を考慮した分配は、基準が無いので基本的にできません。 もし、時間を考慮した分配を行いたいなら(各時間帯のデータ数が十分多いなら)、時間ごとのデータに対して前回回答した方法で分配することになります。 いずれにしろ、人数を重視するのか、時間帯を重視するのかによって分配する方法は異なることになります。 すべてのデータでまとめて対応するなら、例えばデータを並べ替えるときに、再優先のキーを時間帯、第2優先を人数にしてしておけば、時間帯のバランスの良い組み合わせを得ることができます。

ma3276
質問者

お礼

分かりやすい上に詳しい説明、本当に助かりました。参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

人数をできる限り公平に分配するには、人数の多い団体から順にドラフト会議のような方法で順番に選択していくことになります。 すなわち、B列の人数を降順で並べ替えておいたデータで(データタブのZ↓Aのアイコンクリック、後から並べ替えてもOK)、D2セルに以下の数式を入力します。 =CHOOSE(ABS(5*(MOD(INT((ROW(A1)-1)/5),2)=1)-(MOD(ROW(A1)-1,5)+(MOD(INT((ROW(A1)-1)/5),2)=0))),"A","B","C","D","E") ちなみに、各農家(A~E)ごとの人数は以下の数式で表示できます。 =SUMIF(D:D,D2,B:B) このようにしてうまく配分できたデータは、D列の計算式をコピーして、そのまま右クリックから「値」貼り付けして、このデータを農家の列で並べ替えれば農家ごとの一覧を作成することができます。 元の数式の入ったシートはテンプレートとして残しておいて作業すると良いと思います。

ma3276
質問者

補足

素早い回答ありがとうございます。すみませんが一つ書き漏れがありました。 時間ごとに人数を振り分けたいのです。もし宜しければご教授ください。

関連するQ&A