2014/02/10

[excel]マクロを使用せずにランダムに並び替えるには

カテゴリー:

Excelでは昇順や降順で並び替えるのはさくっとできるんですが、ランダムに並び替えるというのはそんなに簡単にはできません。ここでは、「ランダムに並び替え」というのをさくっとできる方法を見ていきたいと思います。もちろん、マクロなんて使いませんよ。

ランダムと言えば、rand関数

例えばですね、B1セルからB10セルに適当に名前を書いていきましょう。これをランダムに並び替えるのが目標です。

まず、その隣のA列に、「=rand()」と式を入れます。このrand関数は、0から1までの乱数を返すという関数です。カッコの中には何も入れません。また、再計算するたびに値が変わっていきます。

大きい順に値を取得する、large関数

C1セルからC10セルまで、1から10の数字を入れましょう。そして、D1セルに「=large($A$1:$A$10,C1)」と入れて、下にコピーしていきます。このlarge関数は、引数の一つ目で指定した範囲から、二つ目で指定した順位の数字をとってくるという関数です。二つ目の引数を1と指定すれば、一番大きな数字が取得できます。もし小さい方からとりたければ、small関数を使えばいいのですが、今回はどちらでも構いません。

そして、E1セルに次のように入力します。

=vlookup(D1,$A$1:$B$10,2,false)

これをE10セルまでコピーすれば、E列にランダムに並び替えたものが表示されます。F9キーを使って再計算するたびに並び替えが行われます。

【追記】
「=large($A$1:$A$10,C1)」と書いていたところは、以前「=large($B$1:$B$10,C1)」と記述していました。間違っていましたので、訂正しました。

前の記事:
次の記事: