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