🕒 2014/02/10
🔄 2023/04/22
[excel]マクロを使用せずにランダムに並び替えるには
Category:
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)」と記述していました。間違っていましたので、訂正しました。