• ベストアンサー

乱数(組み合わせ)を発生させるには

よろしく、おねがいします。  1から28までの数値を10人づつのグループに組み分けしたいのですが 関数であれこれやりましたが、ダメでした。 VBAなんでしょうか、VBAはまったく、知りません。 簡単なプログラム、エクセルのVBAに貼れるように 書いていただけませんか。 サルにも判るように、手順もいただければ とても助かります 厚かましいのですが お願いします。 

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

関数でも可能です。 人数が10人ずつ+残りというグループ分けなのか、できるだけ均等な数(ご質問の場合28/3に近く)になるように割り振るのか、で考え方が違います。 あるいは、正確に >1から28までの数値を10人づつのグループに組み分けしたいのです~ だとすると、あと2足りません。 一番最初の例でいけば、1~28の数にそれぞれ乱数を割り振っておいて、その数の順に番号を振ります。あとはその番号に従って10人ずつとって行けば良いだけ。 関数の例のを手順が分かるように、添付図にしましたので、考えてみてください。(下半分は同じなので省略してます) もちろん、VBAでも可能ですが… >エクセルのVBAに貼れるように 書いていただけませんか。 >サルにも判るように、~~ 「サルでもわかる」は見つかりませんでしたが、イヌならわかりそうです。 http://excelfactory.net/inu.htm

kimari14
質問者

お礼

頭のいい人は得ですね。助かりました ありがとうございました なるほどこんなふうにやるんだなあと思いました いろいろ応用加工します。 

その他の回答 (1)

回答No.1

・メニューの「ツール」→「マクロ」→「新しいマクロの記録」をする。 ・A1セル~A28セルに1~28までの続き番号を入力する。 ・B1セルに「=RAND()」と入力する。 ・B1セルを「セルのコピー」でB2~B28セルにコピーする。 ・A、B列を選択する。 ・メニューの「データ」→「並び替え」で、最優先するキーを「列B」にして並び替える ・マクロの記録を終了する。 これで「A1~A10にグループ1、A11~A20にグループ2、A21~A28にグループ3の番号」が入っている事になります。 上記で記録したマクロを実行すれば、いつでも再現できます。

kimari14
質問者

お礼

大助かりです。 ありがとうございました 

関連するQ&A