アットウィキロゴ
 1から10までの数字をランダムに並べたいときがあります。例えば、百ます計算では、0~9の数字をランダムに並べてやると問題が完成ですし、また10人の生徒をランダムに並べかえたいなんていう場合もあります。
 ランダムに・・・ということは、RAND()関数が使えるのかな?と考えた人は鋭いです!では、問題。セルのA1~A10に数字の1~10をランダムに1回ずつ表示させてみてください。

 1~10ということは・・・「=INT(RAND()*10)+1」だから・・・A1~A10に全部そう書いてみると・・・

 というようにやってみると、同じ数字が何回も出てしまいますね。
 そうならないように工夫するには???もしかして、IFとかでチェックして、同じだったらもう一度やり直すとかするのかな???・・・でも、複雑すぎて、1行の関数では難しすぎます。じゃあ、VBAか?

いえいえ、工夫次第でうまく出来てしまいます。RANK()を使います。(RANDではありません)
RANK()関数は、順位を求める関数です。

(1) 準備

 B1~B10のセルに乱数を発生させる関数のRAND()と記述しましょう。
 INTとか*10などの余分な物は付けなくて良いです。

 すると、B1~B10には小数が表示されたと思います。

(2)RANK()で1から10を表示

 (1)で表示させた10個の乱数に順位を付けます。
 まずA1に、B1がB1~B10の中で何位なのかを表示させてみてください。
   =RANK(B1,$B$1:$B$10)
 続いて、A2、A3・・・A10と、同じように順位を付けていきましょう。
 これで完成です。
 A1~A10に1から10がランダムに並んだと思います。[F9]を押すと、ランダムに並び変わりますね。




最終更新:2007年07月29日 23:10
添付ファイル