こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

抽選会の当選番号を決めるのに、入場者は500人、賞品は36個として、エ

抽選会の当選番号を決めるのに、入場者は500人、賞品は36個として、エクセルで

A1:F6に

=RAND()*(500+1)-1

を入れたところ、何度かやっているうちに、同じ数字が出てきました。
0から1の間の小数を四捨五入しているらしいので当然ですが、同じ番号が有っては都合が悪いので、同じ番号が出たら文字の色を変えるとか、セルの色を変えるとかして警告したいのですが、簡単な方法があれば教えてください。

投稿日時 - 2010-07-15 00:05:31

QNo.6039132

すぐに回答ほしいです

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

添付図参照

F2: =RAND()
G2: =RANK(F2,$F$2:$F$501)
A2: =SMALL($G$2:$G$37,(ROW(A1)-1)*4+COLUMN(A1))

投稿日時 - 2010-07-15 03:03:23

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

お考えの方法では表示された数値を整数に変換しているのでしょう。その場合には当然同じ数値となって表示されますね。本来RAND関数で求められる数値で同じ数値が得られることは皆無といっても良いでしょう。
つぎのようにすればよいでしょう。
初めに作業列としてH1セルには =RAND() と入力し、I1セルには =RANK(H1,H$1:H$500) を入力してそれぞれのセルの式をH500、I500セルまでオートフィルドラッグします。
これによってRAND関数で得られた数値にランクが付けられ1から500までの数値がI列にランダムに表示されます。
当選番号を決めるにあたって、I列で1から36までの数値のある行を表示させることにすればよいでしょう。
A1セルには次の式を入力してF1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(OR(ROW(A1)>6,COLUMN(A1)>6),"",MATCH((ROW(A1)-1)*6+COLUMN(A1),$I:$I,0))

F9キーを押すことで抽選を繰り返すこともできますね。

投稿日時 - 2010-07-15 06:48:00

お礼

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

投稿日時 - 2010-07-16 10:17:49

あなたにオススメの質問