• ベストアンサー

エクセルでランダム組み合わせする方法

はじめまして、エクセルを使用してある集団からランダムに組み合わせを作りたいのですがよい方法あるいはヒントがあればアドバイスをいただきたいのでよろしお願いします。 具体的には、7列12行の席があり、その中からランダムに7席(名)を選んで1~3チームを作るというものです。各チーム内で重複しないようにし、7席(名)を選択する方法あればベストですが、それに近い方法でもよいです。(結果を見て、重複席を自分で変更するなど微調整できればよいと思っています。 ちなみに7列12行のそれぞれのセルには氏名か番号をつける予定です。 よろしくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.5

[回答番号:No.4この回答への補足]に対するコメント、    A  B  C  …  G 1      座席表 2  A01 B01 C01 … G01 3  A02 B02 C02 … G02 4  A03 B03 C03 … G03 … …  …  …  … … 13 A12 B12 C12 … G12     Q   R 1  乱数  名前 2  0.9199 A01 3  0.0623 B01 4  0.1686 C01 … ……… … 8  0.2037 G01 9  0.3649 A02 10 0.8395 B02 … ……… … 84 0.3442 F12 85 0.6138 G12 Q2: =RAND() R2: =OFFSET($A$2,INT((ROW(A1)-1)/7),MOD(ROW(A1)-1,7))     I    J  K  L  M  N  O 1  チーム名     メンバー名前 2  Team_01  D11 E07 C03 B07 G02 F10 3  Team_02  B05 B01 C09 A04 B10 A09 4  Team_03  E02 B06 B08 E11 C07 C01 … ………  …  …  …  …  …  … 13 Team_12  E03 A01 F08 E09 E06 F05 J2: =VLOOKUP(SMALL($Q$2:$Q$85,COLUMN(A1)+(ROW(A1)-1)*7),$Q$2:$R$85,2,0)

ikokujira
質問者

お礼

mike_g様どうもありがとうございました。またまた感動しました。 mike_g様のアドバイスとおりというか、そのまま表や関数をコピーして思って いたものを完成することができました。 質問方法を具体的にするなどアドバイスもありがとうございました。

その他の回答 (4)

noname#204879
noname#204879
回答No.4

[回答番号:No.3この回答への補足]に対するコメント、 お書きになっている内容を全く理解できません。 [回答番号:No.2]に挙げた表(範囲 C2:J13)がどのようになれば良いのか具体例をお示しください。 私の回答がそうであるように、ゴチャゴチャ文章で記述するより、希望する表を示した方が分かりやすいと思います。それで分からない場合は私も貴方に質問しやすいです。

ikokujira
質問者

補足

お手数をおかけします。mike_g様の先の回答で氏名を番号することで重複 しない12チームを作ることは可能であることは確認しました。既に座席表を作成しているので、そのまま直接「氏名」を使用できればと思って追加の質問をしました。こう考えればというアドバイスでもよいのでよろしくお願いします。 (1)84名の座席表(氏名)をエクセル表で以下の様に作成(A1さん、B1さん・・・) A1 B1 C1 D1 E1 F1 G1 A2 B2 C2 D2 E2 F2 G2 ・ ・ ・ ・ ・ ・ ・ A12 B12 C12 D12 E12 F12 G12 (2)座席表からランダムに7名選抜し、チームを作り、代表でゲームを行わせたり数チーム作り、ゲーム等対抗戦を行わせる。  (ゲームはスポーツ、連想ゲームなどレクレーションを想定) team_01 B2 C1 A12 E5 F10 G3 D7 team_02 F8 A5 D1 E11 A4 B5 D6 ・   ・ ・ ・ ・ ・ ・ ・ team_12 ・ ・ ・ ・ ・ ・ ・ (3)やりたいことは座席表から直接 ランダムに選抜してチーム表を作成できないかという点です。  ポイントは、ランダムに7名を選抜することと考えています。

noname#204879
noname#204879
回答No.3

[回答番号:No.2]の A1: ==RAND() は A1: =RAND() の間違いでした。

ikokujira
質問者

補足

mike_g様の回答で解決済みなのですが以下のようなことは可能でしょうか? 追加の質問ですみません。84名のメンバー(エクセルの7列12行に配置:固 定)から1チーム7名の12チーム(1~3チームでも可)にランダムに振り分ける ときに7列12行から直接選出する方法はありますか? もちろん先に回答いただいた方法で84名のメンバーを別にNo1~84まで順序 よくをつけて、ランダムに選出した12チームの番号にあわせてメンバー を配置すればよいのですが、直接7列12行に入力された番号(あるいは氏名) を12チームに配置できると助かります。(選手のゼッケンは通常バラバラなの で。。。)

noname#204879
noname#204879
回答No.2

   A   B   C   D  E  F  G  H  I  J 1  0.9454   チーム名    メンバー番号 2  0.5524   Team_01  13 60 43 80 42 40 69 3  0.8977   Team_02  04 61 84 23 47 74 50 4  0.0776   Team_03  51 26 06 75 17 79 48 5  0.6609   Team_04  63 78 52 20 09 16 54 6  0.1797   Team_05  66 68 77 71 64 45 34 7  0.9247   Team_06  11 29 73 25 49 08 02 8  0.5350   Team_07  27 15 33 30 67 05 72 9  0.3160   Team_08  22 44 41 31 10 58 46 10 0.7086   Team_09  37 35 38 65 55 24 81 11 0.4843   Team_10  70 32 59 82 36 18 03 12 0.9026   Team_11  12 76 19 07 62 01 14 13 0.0127   Team_12  28 57 53 56 83 21 39 14 0.9599 … ……… 83 0.9849 84 0.0997 A1: ==RAND() D2: =MATCH(SMALL($A$1:$A$84,COLUMN(A1)+(ROW(A1)-1)*7),$A$1:$A$84,0)

ikokujira
質問者

お礼

mike_g様どうもありがとうございました。 そのままエクセルで作成して、12チーム重複しない組み合わせを作ることが できました。チームは1~3チーム作ればよいのですが12チームすべて重複し ない組み合わせができるとは思いませんでした(感動)。 後は、個々の席(あるいは人)にゼッケン(No1~No84)をつけて、たとえば Team01、Team05、Team11のチームの番号のゼッケンの人を配置すればよいと いうことで対応できそうです。 A1:=RAND()も了解しました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

EXCELさんはランダムの処理は結構苦手です。 関数でRND関数は有るけど、再計算で数値が変化してしまうので、そのあたりの工夫が必要に。 選出のルールが解り難い気がします >7列12行の席があり7席(名)を選んで1~3チームを作る 84名中7名1チームで最大3チーム作成? 7名*3組=21名 4回分の組み合わせを作る言う事? 重複しないって事は一回チームに参加した人は2回目以降は省くと言う事かな? ちっともランダムでないような気がしますが ランダムにする必要性もわかりませんし、7列12行なら行ごとに1チームと言うわけにはいかないのでしょうか? 実用的な方法ではなく、考え方(手法)に関する質問なのかな?

ikokujira
質問者

お礼

web2525様どうもありがとうございました。 説明が不足していました。ご指摘のとおり行ごとに1チームにすることで よいのですが、何回かチーム編成を行いたいのでランダムに選手を選出する ようなことがしたかったのです。質問をもう少し目で見える形で行った方が よかったと思いました。ご指摘ありがとうございました。

関連するQ&A